#J5000. CCF-GESP编程能力等级认证【五级样题】
CCF-GESP编程能力等级认证【五级样题】
一、选择题。(15题,每题2分,共30分)
1. 以下不属于计算机输出设备的有? {{ select(1) }}
- 麦克风
- 音箱
- 打印机
- 显示器
2. 小明想了一个 1 到 100 之间的整数。你可以做多次猜测,每次猜测之后,如果你没有猜中,小明会告诉你,你猜的数比他想的数大还是小。你希望你在运气最坏的情况下花费最少的次数猜中,请问你运气最坏的情况下会猜( )次?
(包括最后猜中的那次)
{{ select(2) }}
- 5
- 5
- 7
- 100
3. 关于分治算法,下列说法错误的是? {{ select(3) }}
- 分治算法的核心思想是分而治之,即把问题转化为多个规模更小的子问题求解。
- 分治算法可以不使用递归实现。
- 分治算法的时间复杂度是 ,其中 表示问题的规模。
- 分治算法通常较容易在多核处理器上实现加速。
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++代码的注释,两个横线处应分别填入?
{{ select(7) }}
- 输入
- 输出
- 控制
- 记录
8. 有关下⾯代码正确的是?
{{ select(8) }}
- 输入
- 输出
- 控制
- 记录
9. 有关下⾯C++代码正确的是?
{{ select(9) }}
- 输入
- 输出
- 控制
- 记录
10. 下⾯代码执⾏后的输出是?
{{ 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. 【巧夺大奖】