#J5000. CCF-GESP编程能力等级认证【五级样题】

CCF-GESP编程能力等级认证【五级样题】

一、选择题。(15题,每题2分,共30分)

1. 以下不属于计算机输出设备的有? {{ select(1) }}

  • 麦克风
  • 音箱
  • 打印机
  • 显示器

2. 小明想了一个 1 到 100 之间的整数。你可以做多次猜测,每次猜测之后,如果你没有猜中,小明会告诉你,你猜的数比他想的数大还是小。你希望你在运气最坏的情况下花费最少的次数猜中,请问你运气最坏的情况下会猜( )次?

(包括最后猜中的那次)

{{ select(2) }}

  • 5
  • 5
  • 7
  • 100

3. 关于分治算法,下列说法错误的是? {{ select(3) }}

  • 分治算法的核心思想是分而治之,即把问题转化为多个规模更小的子问题求解。
  • 分治算法可以不使用递归实现。
  • 分治算法的时间复杂度是 O(logN)O(\log N),其中 NN 表示问题的规模。
  • 分治算法通常较容易在多核处理器上实现加速。

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

{{ select(4) }}

  • factA()采用循环方式求 n 的阶乘,factB()采用递归方式求 n 的阶乘。
  • 程序执行时如果输入 5,能实现求其阶乘,程序输出结果为 120 120。
  • 任何递归程序都可以使用循环改写。
  • 程序执行时如果输入 100,不能正确求出 100 的阶乘。

5. 下面 C++ 代码意在实现字符串反序的功能。关于这段代码,以下说法正确的是?

{{ select(5) }}

  • 这段代码可以正确实现字符串反序的功能,其输出为 olleH
  • 这段代码不能正确实现字符串反序的功能,其输出为 Hello
  • 这段代码不能正确实现字符串反序的功能,其输出为 HHHHH
  • 这段代码不能正确实现字符串反序的功能,其输出为 ooooo

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

![image](file://-X2KTN5n4ruJR-7xpL7o_.png)

{{ select(6) }}

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

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

image

{{ select(7) }}

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

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

image

{{ select(8) }}

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

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

image

{{ select(9) }}

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

10. 下⾯代码执⾏后的输出是?

image

{{ select(10) }}

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

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

![image](file://NseDEqVnuVL5_25ZZNF6n.png)

{{ select(11) }}

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

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

![image](file://Vr4NacuP4pf-D26qAWr_E.jpeg)

{{ select(12) }}

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

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

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

14. 归并排序算法的基本思想是? {{ select(14) }}

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

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

![image](file://dWMAgiLj9HLPQ3_o0uT7b.png)

{{ select(15) }}

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

二、判断题​。(10题,每题2分,共20分)

16. TCP/IP的传输层的两个不同的协议分别是UDP和TCP。 {{ select(16) }}


17. 在特殊情况下流程图中可以出现三角框和圆形框。 {{ select(17) }}


18. 找出⾃然数 N 以内的所有质数,常⽤算法有埃⽒筛法和线性筛法,其中埃⽒筛法效率更⾼。 {{ select(18) }}


19. 在C++中,可以使⽤⼆分法查找链表中的元素。 {{ select(19) }}


20. 在C++中,通过恰当的实现,可以将链表⾸尾相接,形成循环链表。 {{ select(20) }}


21. 贪⼼算法的解可能不是最优解。 {{ select(21) }}


22. ⼀般说来,冒泡排序算法优于归并排序。 {{ select(22) }}


23. C++语⾔中的 qsort 库函数是不稳定排序。 {{ select(23) }}


24. 质数的判定和筛法的⽬的并不相同,质数判定旨在判断特定的正整数是否为质数,⽽质数筛法意在筛选出范围内的所有质数。 {{ select(24) }}


25. 下⾯的C++代码执⾏后将输出 0 5 1 6 2 3 4。

![image](file://nWy59WHTqugqZ52b1ezhj.png)

{{ select(25) }}


三、​编程题。(2题,每题25分,共50分)

26. 【因数分解】

27. 【巧夺大奖】