#1189. GESP C++ 五 级 2023年9月真题 · 单选题

GESP C++ 五 级 2023年9月真题 · 单选题

GESP C++ 五 级 2023年9月真题(180 分钟,总分 100 分)

单选题(共 15 题,每题 2 分,共 30 分)

1. 近年来,线上授课变得普遍,很多有助于改善教学效果的设备也逐渐流行,其中包括比较常用的手写板,那么它属于哪类设备?

{{ select(1) }}

  • 输入
  • 输出
  • 控制
  • 记录

2. 如果a和b均为int类型的变量,且b的值不为0,那么下列能正确判断“a是b的3倍”的表达式是?

{{ select(2) }}

  • (a>>3==b)
  • (a - b)%3==0
  • (a / b==3)
  • (a==3*b)

3. 如果变量a和b分别为double类型和int类型,则表达式(a = 6,b = 3*(7 + 8)/2,b += a)的计算结果为?

{{ select(3) }}

  • 6
  • 21
  • 28
  • 不确定

4. 有关下面C++代码说法错误的是?

{{ select(4) }}

  • sumA()用循环方式求从1到N之和,sumB()用递归方式求从1到N之和。
  • 默认情况下,如果输入正整数1000,能实现求从1到1000之和。
  • 默认情况下,如果输入正整数100000,能实现求从1到100000之和。
  • 一般说来,sumA()的效率高于sumB()。

5. 下面C++代码以递归方式实现字符串反序,横线处应填上代码是?

{{ select(5) }}

  • sIn[sIn.length() - 1] + sReverse(sIn.substr(0,sIn.length() - 1));
  • sIn[0] + sReverse(sIn.substr(1,sIn.length() - 1));
  • sReverse(sIn.substr(0,sIn.length() - 1)) + sIn[sIn.length() - 1];
  • sReverse(sIn.substr(1,sIn.length() - 1)) + sIn[sIn.length() - 1];

6. 印度古老的汉诺塔传说:创世时有三根金刚柱,其中一柱从下往上按照大小顺序摞着64片黄金圆盘,当圆盘逐一从一柱借助另外一柱全部移动到另外一柱时,宇宙毁灭。移动规则:在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。下面的C++代码以递归方式实现汉诺塔,横线处应填入代码是?

{{ select(6) }}

  • Hanoi(B,C,A,N - 2)
  • Hanoi(B,A,C,N - 1)
  • Hanoi(A,B,C,N - 2)
  • Hanoi(C,B,A,N - 1)

7. 根据下面C++代码的注释,两个横线处应分别填入?

{{ select(7) }}

  • compare 和 isOdd(lstA[i])
  • compare(x1,y1) 和 isOdd
  • compare 和 isOdd
  • compare(x1,y1) 和 isOdd(lstA[i])

8. 有关下面代码正确的是?

{{ select(8) }}

  • checkNum()函数定义错误。
  • 将isEven作为checkNum()参数将导致错误。
  • 执行后将输出1。
  • 运行时触发异常。

9. 有关下面C++代码正确的是?

{{ select(9) }}

  • checkNum()函数定义错误。
  • 输出行A的语句将导致编译错误。
  • 输出行B的语句将导致编译错误。
  • 该代码没有编译错误。

10. 下面代码执行后的输出是?

{{ select(10) }}

  • 4#3#2#2#4
  • 4#3#2#2#1#5
  • 4#3#2#1#2#4
  • 4#3#2#1#2#5

11. 下面代码中的isPrimeA()和isPrimeB()都用于判断参数N是否素数,有关其时间复杂度的正确说法是?

{{ select(11) }}

  • isPrimeA()的最坏时间复杂度是O(N),isPrimeB()的最坏时间复杂度是O(logN),isPrimeB()优于isPrimeA()。
  • isPrimeA()的最坏时间复杂度是O(N),isPrimeB()的最坏时间复杂度是O(N½),isPrimeB()优于isPrimeA()。
  • isPrimeA()的最坏时间复杂度是O(N½),isPrimeB()的最坏时间复杂度是O(N),isPrimeA()优于isPrimeB()。
  • isPrimeA()的最坏时间复杂度是O(logN),isPrimeB()的最坏时间复杂度是O(N),isPrimeA()优于isPrimeB()。

12. 下面代码用于归并排序,其中merge()函数被调用次数为?

{{ select(12) }}

  • 0
  • 1
  • 6
  • 7

13. 在上题的归并排序算法中,mergeSort(listData,start,middle); 和 mergeSort(listData,middle + 1,end);涉及到的算法为?

{{ select(13) }}

  • 搜索算法
  • 分治算法
  • 贪心算法
  • 递推算法

14. 归并排序算法的基本思想是?

{{ select(14) }}

  • 将数组分成两个子数组,分别排序后再合并。
  • 随机选择一个元素作为枢轴,将数组划分为两个部分。
  • 从数组的最后一个元素开始,依次与前一个元素比较并交换位置。
  • 比较相邻的两个元素,如果顺序错误就交换位置。

15. 有关下面代码的说法正确的是?

{{ select(15) }}

  • 上述代码构成单向链表。
  • 上述代码构成双向链表。
  • 上述代码构成循环链表。
  • 上述代码构成指针链表。