#4216. 信息素养大赛C++初赛模拟题(二)

信息素养大赛C++初赛模拟题(二)

一.单选题

  1. 如果 a、b 和 c 都是 int 类型的变量,下列哪个语句不符合 C++语法?

{{ select(1) }}

  • c = a + b;
  • c += a + b;
  • c = a = b;
  • c = a ++ b;
  1. C++表达式 2 - 1 && 2 % 10 的值是( )。 {{ select(2) }}
  • 0
  • 1
  • 2
  • 3
  1. 执行C++语句 cin >> a 时如果输入5+2,下述说法正确的是( )。

{{ select(3) }}

  • 变量a将被赋值为整数7
  • 变量a将被赋值为字符串,字符串内容为5+2
  • 语句执行将报错,不能输入表达式
  • 依赖于变量a的类型。如果没有定义,会有编译错误
  1. 下面关于 C++语言的叙述,不正确的是( )。

{{ select(4) }}

  • double 类型的变量占用内存的大小是浮动的
  • bool 类型的变量占用 1 字节内存
  • int 类型变量的取值范围不是无限的
  • char 类型的变量有 256 种取值
  1. 以下不可以做为C++变量的是( )

    {{ select(5) }}

  • FiveStar
  • fiveStar
  • 5Star
  • Star5
  1. 如果字符串定义为 char str[] = "Hello";,则字符数组 str 的长度为( )。

    {{ select(6) }}

  • 0
  • 5
  • 6
  • 7
  1. 一个数组定义为 double array[3]; ,则可合理访问这个数组的元素的下标最大为()。

{{ select(7) }}

  • 2
  • 3
  • 23
  • 24
  1. 下面C++代码执行后的输出是( )。

{{ select(8) }}

  • 4
  • 2
  • 5
  • 3
  1. 在下列代码的横线处填写( ),可以使得输出是“147”。

image

{{ select(9) }}

  • i % 2 == 1
  • i % 3 == 1
  • i = i + 3
  • i + 3
  1. 在下列代码的横线处填写( ),使得输出是 9.

image

{{ select(10) }}

  • (a + b)
  • (a + b - '0')
  • (char)(a + b)
  • (char)(a + b - '0')
  1. 一个数的所有数字倒序排列后这个数的大小保持不变,这个数就是回文数,比如 101 与 6886 都是回文数,而 100 不是回文数。以下程序代码用于判断一个数是否为回文数,横线处应填写?( )。

image

{{ select(11) }}

  • 10 * a + n % 10
  • a + n % 10
  • 10 * a + n / 10
  • a + n / 10
  1. 下面C++程序执行的结果是( )。

image

{{ select(12) }}

  • 20
  • 19
  • 1
  • 不确定
  1. 下列关于函数的叙述,正确的是( )。

{{ select(13) }}

  • 函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值不变。
  • 函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值将随子函数一样改变而改变。
  • 函数参数传递时,主函数如果将参数的地址传递给子函数,若子函数将参数值改变,主函数当中的参数值将不改变。
  • 函数参数传递可以不满足子函数的参数个数要求。
  1. 排序算法是稳定的(Stable Sorting),就是指排序算法可以保证,在待排 序数据中有两个相等记录的关键字 R 和 S(R 出现在 S 之前),在排序后的列表 中 R 也一定在 S 前。下面关于排序稳定性的描述,正确的是( )。

{{ select(14) }}

  • 冒泡排序是不稳定的。
  • 插入排序是不稳定的。
  • 选择排序是不稳定的。
  • 以上都不正确。
  1. 下面函数中采用的算法是( )。 image

{{ select(15) }}

  • 递推
  • 递归
  • 迭代
  • 循环
  1. 执行以下C++语言程序后,输出结果() image

{{ select(16) }}

  • 0
  • 5
  • 55
  • 不确定
  1. 下面的C++代码以递归方式实现字符串反序,横线处应填上代码是( )。

image image

{{ select(17) }}

  • A
  • B
  • C
  • D

18.归并排序算法的基本思想( )

{{ select(18) }}

  • 将数组分成两个子数组,分别排序后再合并。
  • 随机选择一个元素作为枢轴,将数组划分为两个部分。
  • 从数组的最后一个元素开始,依次与前一个元素比较并交换位置。
  • 比较相邻的两个元素,如果顺序错误就交换位置。
  1. 下面的代码片段用于计算阶乘。请在横线处填入(),实现正确的阶乘计算 image

{{ select(19) }}

  • return n*factorial(n-1);
  • return factorial(n-1)/n;
  • return n*factorial(n);
  • return factorial(n/2)*factorial(n/2);
  1. 给定一个空栈,执行以下操作序列: 操作序列: 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

二.判断题

  1. C++表达式int(3.14) 的值为 3。

{{ select(21) }}

  • 正确
  • 错误
  1. do ... while 语句的循环体至少会执行一次。

{{ select(22) }}

  • 正确
  • 错误
  1. if 语句可以没有 else 子句。

{{ select(23) }}

  • 正确
  • 错误
  1. 如果 a 是 int 类型的变量,而且值为 1,则表达式'a'的值为'1'。

{{ select(24) }}

  • 正确
  • 错误
  1. 表达式 sqrt(9.0)的计算结果为 3,且结果类型为 int。

{{ select(25) }}

  • 正确
  • 错误
  1. 字符常量'\0'常用来表示字符串结束,它和字符常量'0'是不同的。

{{ select(26) }}

  • 正确
  • 错误
  1. 在C++语言中,定义数组时, [] 中必须指定元素个数。

{{ select(27) }}

  • 正确
  • 错误
  1. 在C++中,通过恰当的实现,可以将链表首尾相接,形成循环链表。

{{ select(28) }}

  • 正确
  • 错误
  1. 对 int a[]={2,0,2,4,3,1,6} ,执行第一趟选择排序处理后 a 中数据变为 {0,2,2,4,3,1,6}。

{{ select(29) }}

  • 正确
  • 错误
  1. 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) }}

  • 正确
  • 错误