2023年12月 GESP C++ 5级认证考试真题(含编程操作题部分)
选 单选题(共 15 题,每题 2 分)
下面C++代码用于求斐波那契数列,该数列第1、2项为1,以后各项均是前两项之和。下面有关说法错误的
是( )。
下面C++代码以递归方式实现合并排序,并假设merge (int T[], int R[], int s, int m, int t)函
数将有序(同样排序规则)的T[s..m]和T[m+1..t]归并到R[s..t]中。横线处应填上代码是( )。
阅读下面的C++代码,执行后其输出是( )。
下面的C++用于对lstA排序,使得偶数在前奇数在后,横线处应填入( )。
下面的C++代码用于将字符串保存到带头节点的双向链表中,并对重复的串计数,然后将最新访问的串的节
点放在链头便于查找。横线处应填入代码是( )。
有关下面C++代码说法正确的是( )。
下面的C++代码实现对list的快速排序,有关说法,错误的是( )。
下面C++代码中的 isPrimeA() 和 isPrimeB() 都用于判断参数N是否素数,有关其时间复杂度的正确说
法是( )。
下面C++代码用于有序list的二分查找,有关说法错误的是( )。
在上题的_binarySearch算法中,如果lst中有N个元素,其时间复杂度是( )。
下面的C++代码使用数组模拟整数加法,可以处理超出大整数范围的加法运算。横线处应填入代码是(
)。
有关下面C++代码的说法正确的是( )。
通讯卫星在通信网络系统中主要起到()的作用。
小杨想编写一个判断任意输入的整数N是否为素数的程序,下面哪个方法不合适?( )
下面的排序算法都要处理多趟数据,哪种排序算法不能保证在下一趟处理时从待处理数据中选出最大或最
小的数据?( )
判 判断题(共 10 题,每题 2 分)
归并排序的时间复杂度是 。( )
小杨在生⽇聚会时拿一块H*W的巧克⼒招待来的K个小朋友,保证每位小朋友至少能获得一块相同大小的巧
克⼒。那么小杨想分出来最大边长的巧克⼒可以使用二分法。( )
以下C++代码能以递归方式实现斐波那契数列,该数列第1、2项为1,以后各项均是前两项之和。( )
贪心算法可以达到局部最优,但可能不是全局最优解。( )
小杨设计了一个拆数程序,它能够将任意的非质数自然数N转换成若⼲个质数的乘积,这个程序是可以设计
出来的。( )
插入排序有时比快速排序时间复杂度更低。( )
下面的C++代码能实现十进制正整数N转换为八进制并输出。( )
对数组int arr[] = {2, 6, 3, 5, 4, 8, 1, 0, 9, 10}执行sort(arr, arr+10),则执行后arr
中的数据调整为{0, 1, 2, 3, 4, 5, 6, 8,9, 10}。( )
小杨想写一个程序来算出正整数N有多少个因数,经过思考他写出了一个重复没有超过N/2次的循环就能够算
出来了。( )
同样的整数序列分别保存在单链表和双向链中,这两种链表上的简单冒泡排序的复杂度相同。( )
编 编程操作题(共 2 题,共 50 分)
试题名称:⼩杨的幸运数
时间限制:1.0 s | 内存限制:128.0 MB
样例解释
虽然是完全平⽅数,但它⼩于 ,因此它并不是超级幸运数,也不是幸运数。将其进⾏ 次 操作后,最终得到
幸运数 。
是幸运数,因此直接输出 lucky。
不是幸运数,将其进⾏ 次 操作后,最终得到幸运数 。
是幸运数,因此直接输出 lucky。
3.1.8 样例输入 2
1 16 11
2 1
3 2
4 4
5 8
6 16
7 32
8 64
9 128
10 256
11 512
12 1024
3.1.9 样例输出 2
1 16
2 16
3 16
4 16
5 lucky
6 lucky
7 lucky
8 lucky
9 lucky
10 lucky
11 lucky
3.1.10 数据规模
对于30%的测试点,保证 , 。
对于60%的测试点,保证 。
对于所有测试点,保证 ;保证 ;保证 。
试题名称:烹饪问题
时间限制:1.0 s | 内存限制:128.0 MB
样例解释
可以编号为 的⾷材之间的契合度为 ,是所有⾷材两两之间最⾼的契合度。
3.2.11 数据规模
对于40%的测试点,保证 ;
对于所有测试点,保证 , 。