小高组复赛模拟题3:C++基础综合客观题
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
小高组复赛模拟题 3:C++ 基础综合客观题
本题包含判断题、多选题和单选题。请按题目要求作答。
一、判断题
- 计算两个超长整数(如 200 位)的乘积,可以使用双重循环模拟手算乘法的过程来实现。()
{{ select(1) }}
- 正确
- 错误
- 递归函数中,如果漏掉了终止条件,程序编译时会报错。()
{{ select(2) }}
- 正确
- 错误
- 归并排序的时间复杂度在平均和最坏情况下都是 O(NlogN)。()
{{ select(3) }}
- 正确
- 错误
- 结构体和类在 C++ 中完全一样,没有任何区别。()
{{ select(4) }}
- 正确
- 错误
- 表达式
(10 >> 1)的值是 5。()
{{ select(5) }}
- 正确
- 错误
二、多选题
- 关于“模拟法”编程,下列说法合理的有?
{{ multiselect(6) }}
- 模拟法适用于题目过程清晰、逻辑规则明确的问题
- 编写模拟程序时,不需要考虑优化,只要逻辑对即可
- 模拟“时钟走动”时,要注意秒、分、时之间的进位关系
- 模拟“掷骰子”统计概率时,可能需要用到随机数函数 rand()
- 在解决高精度减法问题时(假设大数减小数),我们需要注意的关键点包括?
{{ multiselect(7) }}
- 对齐数位
- 处理借位操作
- 处理前导零
- 直接使用 cin >> 读入两个 int 变量进行减法
- 想要将十进制数 20 转换为二进制,下列计算过程或结果正确的有?
{{ multiselect(8) }}
- 结果为 10100
- 结果为 10101
- 计算过程包含短除法,不断除以 2 取余
- 计算过程包含不断乘以 2 取整
- 下列属于不稳定排序算法的有?
{{ multiselect(9) }}
- 冒泡排序
- 快速排序
- 选择排序
- 归并排序
- 下列关于指针和引用的描述,正确的有?
{{ multiselect(10) }}
- 指针可以不初始化,但引用定义时必须初始化
- 指针存放的是地址,引用是变量的别名
- 指针可以改变指向,引用一旦绑定就不能改变指向
- 空指针 NULL 可以赋值给引用
三、单选题
- 定义一个类
class Box { public: int width; };,若要创建一个对象并将其成员width初始化为 5,下列代码正确的是?
{{ select(11) }}
- Box.width = 5;
- Box b; b.width = 5;
- Box b; Box::width = 5;
- b.width = 5;
- 下列关于“枚举法”的描述,最准确的是?
{{ select(12) }}
- 枚举法是一种根据数学公式直接求解的算法
- 枚举法通过尝试所有可能的情况,来验证哪一种情况符合问题的条件
- 枚举法的时间复杂度永远是 O(1)
- 枚举法只能用于解决几何问题
- 进行高精度加法运算时(例如两个 1000 位的正整数相加),通常采用的存储方式是?
{{ select(13) }}
- 使用 long long 类型直接存储
- 使用 double 类型直接存储
- 使用数组或字符串,逆序存储每一位数字
- 使用队列存储每一位数字
- 关于函数的递归调用,下列说法正确的是?
{{ select(14) }}
- 递归必须要有明确的终止条件,否则会无限循环
- 递归函数的执行效率通常比非递归函数高
- 所有的循环都可以用递归实现,但递归不能替代所有的循环
- 递归层数过深会导致堆溢出
- 下列字符数组操作中,能够正确计算字符串实际长度(不包括结束符)的是?
{{ select(15) }}
- sizeof(str)
- strlen(str)
- str.length()
- str.size()
- 在 C++ 中,表达式
5 & 3的结果是?
{{ select(16) }}
- 8
- 2
- 1
- 7
- 定义结构体
struct Student { string name; int score; };后,若有Student s;,下列操作正确的是?
{{ select(17) }}
- Student.name = "Tom";
- s.name = "Tom";
- s->name = "Tom";
- s *name = "Tom";
- 下列关于排序算法的描述中,错误的是?
{{ select(18) }}
- 冒泡排序是通过相邻元素的比较和交换来实现的
- 选择排序每一趟都能将一个未排序部分的最小元素放到最终位置
- 快速排序是一种稳定的排序算法
- 归并排序需要消耗额外的内存空间
- 已知二进制数 1011,将其转换为十进制数,结果是?
{{ select(19) }}
- 9
- 10
- 11
- 12
- 在 C++ 中,若定义
int a = 10; int *p = &a;,则下列表达式中,值不为 10 的是?
{{ select(20) }}
- a
- *p
- P
- *&a