小高组复赛模拟题2:C++基础综合客观题
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
小高组复赛模拟题 2:C++ 基础综合客观题
本题包含判断题、多选题和单选题。请按题目要求作答。
一、判断题
- 选择排序的核心思想是每次从待排序序列中选择最小(大)的元素,放到已排序序列的末尾。()
{{ select(1) }}
- 正确
- 错误
- 执行下列代码,输出结果为
10 5,该说法正确吗?
#include <iostream>
using namespace std;
int main() {
int x=5, y=10;
int *p=&x, *q=&y;
int temp = *p;
*p = *q;
*q = temp;
cout << x << " " << y;
return 0;
}
{{ select(2) }}
- 正确
- 错误
- 八进制数 10 转换为十进制数的结果是 8。()
{{ select(3) }}
- 正确
- 错误
- C++ 中,结构体和类的唯一区别是结构体没有成员函数。()
{{ select(4) }}
- 正确
- 错误
- 递归函数中,终止条件可以设置多个。()
{{ select(5) }}
- 正确
- 错误
二、多选题
- 下列关于高精度运算的说法,正确的有()
{{ multiselect(6) }}
- 高精度运算需将数字存储在数组中
- 高精度乘法的计算复杂度高于高精度加法
- 高精度运算的数组通常从低位开始存储数字
- 高精度运算可以处理任意长度的数字
- 下列排序算法中,属于高级排序算法的有()
{{ multiselect(7) }}
- 快速排序
- 归并排序
- 插入排序
- 冒泡排序
- 下列关于枚举法的实现步骤,正确的有()
{{ multiselect(8) }}
- 确定枚举对象与范围
- 明确判断条件
- 逐一枚举范围内的元素并验证条件
- 收集符合条件的结果
- 下列关于 C++ 函数参数传递的说法,正确的有()
{{ multiselect(9) }}
- 值传递中,形参是实参的副本,修改形参不影响实参
- 数组作为函数参数时,传递的是数组首元素的地址
- 指针作为函数参数时,修改指针指向的内容会影响实参
- 函数参数的个数必须与函数定义时的形参个数一致
- 执行下列代码,关于函数调用和参数传递的说法,正确的有()
#include <iostream>
using namespace std;
void swap(int &x, int &y) {
int temp = x;
x = y;
y = temp;
}
int main() {
int a=5, b=10;
swap(a, b);
cout << a << " " << b;
return 0;
}
{{ multiselect(10) }}
- 该函数采用的是值传递方式
- 函数调用后,变量 a 和 b 的值会交换
- 形参 x、y 是实参 a、b 的引用,修改形参会影响实参
- 函数返回值类型为 void,因此不能有 return 语句
三、单选题
- 快速排序的核心是选择“基准数”,下列关于基准数的说法,正确的是()
{{ select(11) }}
- 基准数只能选择数组的第一个元素
- 基准数的作用是将数组划分为两部分
- 基准数的选择不影响快速排序的效率
- 基准数必须是数组中的最大值
- 下列关于 C++ 类的成员访问权限,说法正确的是()
{{ select(12) }}
- public 成员只能在类内部访问
- private 成员可以在类外部直接访问
- public 成员可以在类外部直接访问
- 类的成员默认访问权限是 public
- 关于高精度减法的实现,下列说法错误的是()
{{ select(13) }}
- 需先比较两个数的位数,位数多的数更大
- 位数相同时,从高位到低位比较数字大小
- 计算时从低位开始,不够减时向前一位借 1
- 借位后,前一位的数字不需要做任何处理
- 下列问题最适合用模拟法解决的是()
{{ select(14) }}
- 找出 1000 以内的素数
- 模拟掷骰子 100 次统计各点数出现次数
- 计算两个大整数的乘积
- 对一组数进行快速排序
- 执行下列代码,输出结果是()
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char s[] = "zhihui";
cout << strlen(s) << " " << sizeof(s);
return 0;
}
{{ select(15) }}
- 6 6
- 6 7
- 7 6
- 7 7
- 关于 C++ 结构体对象的定义,正确的是()
struct Book {
int id;
char name[20];
float price;
};
{{ select(16) }}
- Book b1;
- struct b1;
- Book = b1;
- struct Book b1[];
- 下列关于桶排序的说法,正确的是()
{{ select(17) }}
- 桶排序需要比较元素大小
- 桶排序的数组下标代表待排序的数字
- 桶排序适合处理小数排序
- 桶排序的时间复杂度与数据位数相关
- 将二进制数 1010 转换为十进制数,结果是()
{{ select(18) }}
- 8
- 9
- 10
- 11
- 执行下列递归代码,输出结果是()
#include <iostream>
using namespace std;
int f(int n) {
if(n<=2) return 2;
return f(n-1) + f(n-2);
}
int main() {
cout << f(5);
return 0;
}
{{ select(19) }}
- 8
- 10
- 12
- 14
- 下列关于 C++ 位运算的说法,错误的是()
{{ select(20) }}
- 按位或运算(|)的规则是对应位有 1 则为 1
- 按位异或运算(^)的规则是对应位相同则为 1
- 左移运算(<<)相当于将数字乘以 2
- 位运算的操作数必须是整数