#4216. 信息素养大赛C++初赛模拟题(二)
信息素养大赛C++初赛模拟题(二)
一.单选题
- 如果 a、b 和 c 都是 int 类型的变量,下列哪个语句不符合 C++语法?
{{ select(1) }}
- c = a + b;
- c += a + b;
- c = a = b;
- c = a ++ b;
- C++表达式 2 - 1 && 2 % 10 的值是( )。 {{ select(2) }}
- 0
- 1
- 2
- 3
- 执行C++语句 cin >> a 时如果输入5+2,下述说法正确的是( )。
{{ select(3) }}
- 变量a将被赋值为整数7
- 变量a将被赋值为字符串,字符串内容为5+2
- 语句执行将报错,不能输入表达式
- 依赖于变量a的类型。如果没有定义,会有编译错误
- 下面关于 C++语言的叙述,不正确的是( )。
{{ select(4) }}
- double 类型的变量占用内存的大小是浮动的
- bool 类型的变量占用 1 字节内存
- int 类型变量的取值范围不是无限的
- char 类型的变量有 256 种取值
-
以下不可以做为C++变量的是( )
{{ select(5) }}
- FiveStar
- fiveStar
- 5Star
- Star5
-
如果字符串定义为 char str[] = "Hello";,则字符数组 str 的长度为( )。
{{ select(6) }}
- 0
- 5
- 6
- 7
- 一个数组定义为 double array[3]; ,则可合理访问这个数组的元素的下标最大为()。
{{ select(7) }}
- 2
- 3
- 23
- 24
- 下面C++代码执行后的输出是( )。

{{ select(8) }}
- 4
- 2
- 5
- 3
- 在下列代码的横线处填写( ),可以使得输出是“147”。
{{ select(9) }}
- i % 2 == 1
- i % 3 == 1
- i = i + 3
- i + 3
- 在下列代码的横线处填写( ),使得输出是 9.
{{ select(10) }}
- (a + b)
- (a + b - '0')
- (char)(a + b)
- (char)(a + b - '0')
- 一个数的所有数字倒序排列后这个数的大小保持不变,这个数就是回文数,比如 101 与 6886 都是回文数,而 100 不是回文数。以下程序代码用于判断一个数是否为回文数,横线处应填写?( )。
{{ select(11) }}
- 10 * a + n % 10
- a + n % 10
- 10 * a + n / 10
- a + n / 10
- 下面C++程序执行的结果是( )。
{{ select(12) }}
- 20
- 19
- 1
- 不确定
- 下列关于函数的叙述,正确的是( )。
{{ select(13) }}
- 函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值不变。
- 函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值将随子函数一样改变而改变。
- 函数参数传递时,主函数如果将参数的地址传递给子函数,若子函数将参数值改变,主函数当中的参数值将不改变。
- 函数参数传递可以不满足子函数的参数个数要求。
- 排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排 序数据中有两个相等记录的关键字 R 和 S(R 出现在 S 之前),在排序后的列表 中 R 也一定在 S 前。下面关于排序稳定性的描述,正确的是( )。
{{ select(14) }}
- 冒泡排序是不稳定的。
- 插入排序是不稳定的。
- 选择排序是不稳定的。
- 以上都不正确。
- 下面函数中采用的算法是( )。
{{ select(15) }}
- 递推
- 递归
- 迭代
- 循环
- 执行以下C++语言程序后,输出结果()
{{ select(16) }}
- 0
- 5
- 55
- 不确定
- 下面的C++代码以递归方式实现字符串反序,横线处应填上代码是( )。
{{ select(17) }}
- A
- B
- C
- D
18.归并排序算法的基本思想( )
{{ select(18) }}
- 将数组分成两个子数组,分别排序后再合并。
- 随机选择一个元素作为枢轴,将数组划分为两个部分。
- 从数组的最后一个元素开始,依次与前一个元素比较并交换位置。
- 比较相邻的两个元素,如果顺序错误就交换位置。
- 下面的代码片段用于计算阶乘。请在横线处填入(),实现正确的阶乘计算
{{ select(19) }}
- return n*factorial(n-1);
- return factorial(n-1)/n;
- return n*factorial(n);
- return factorial(n/2)*factorial(n/2);
- 给定一个空栈,执行以下操作序列: 操作序列: push(1), push(2), push(3), pop(), pop(), push(4), push(5), pop() 最终栈中的元素是( )
{{ select(20) }}
- 1,2
- 1,4,5
- 1,2,5
- 1,4
二.判断题
- C++表达式int(3.14) 的值为 3。
{{ select(21) }}
- 正确
- 错误
- do ... while 语句的循环体至少会执行一次。
{{ select(22) }}
- 正确
- 错误
- if 语句可以没有 else 子句。
{{ select(23) }}
- 正确
- 错误
- 如果 a 是 int 类型的变量,而且值为 1,则表达式'a'的值为'1'。
{{ select(24) }}
- 正确
- 错误
- 表达式 sqrt(9.0)的计算结果为 3,且结果类型为 int。
{{ select(25) }}
- 正确
- 错误
- 字符常量'\0'常用来表示字符串结束,它和字符常量'0'是不同的。
{{ select(26) }}
- 正确
- 错误
- 在C++语言中,定义数组时, [] 中必须指定元素个数。
{{ select(27) }}
- 正确
- 错误
- 在C++中,通过恰当的实现,可以将链表首尾相接,形成循环链表。
{{ select(28) }}
- 正确
- 错误
- 对 int a[]={2,0,2,4,3,1,6} ,执行第一趟选择排序处理后 a 中数据变为 {0,2,2,4,3,1,6}。
{{ select(29) }}
- 正确
- 错误
- C++的内置函数 sort() 支持数组的局部排序。例如 int a={10,9,8,7,6,5,4,3,2,1} ,可以用 sort(a,a+5) ,排序成 {6,7,8,9,10,5,4,3,2,1}。
{{ select(30) }}
- 正确
- 错误