选择题 共15道

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15


判断题 共10道

16 17 18 19 20 21 22 23 24 25


编程题 共2道

26 27

485 | 202312GESP C++五级试卷-考试
选择题 共15道
01

下面C++代码用于求斐波那契数列,该数列第1、2项为1,以后各项均是前两项之和。下面有关说法错误的是( )。

2分
登录后查看选项
02

下面C++代码以递归方式实现合并排序,并假设 merge (int T[], int R[], int s, int m, int t) 函数将有序(同样排序规则)的T[s..m]和T[m+1..t]归并到R[s..t]中。横线处应填上代码是( )。

2分
登录后查看选项
03

阅读下面的C++代码,执行后其输出是( )。

image.png

2分
登录后查看选项
04

下面的C++用于对 lstA 排序,使得偶数在前奇数在后,横线处应填入( )。

image.png

2分
登录后查看选项
05

下面的C++代码用于将字符串保存到带头节点的双向链表中,并对重复的串计数,然后将最新访问的串的节点放在链头便于查找。横线处应填入代码是( )。

2分
登录后查看选项
06

有关下面C++代码说法正确的是( )。

image.png

2分
登录后查看选项
07

下面的C++代码实现对list的快速排序,有关说法,错误的是( )。

image.png

2分
登录后查看选项
08

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

2分
登录后查看选项
09

下面C++代码用于有序 list 的二分查找,有关说法错误的是( )。

image.png

2分
登录后查看选项
10

在上题的 _binarySearch 算法中,如果 lst 中有 N 个元素,其时间复杂度是( )。

2分
登录后查看选项
11

下面的C++代码使用数组模拟整数加法,可以处理超出大整数范围的加法运算。横线处应填入代码是()。

image.png

2分
登录后查看选项
12

有关下面C++代码的说法正确的是( )。

2分
登录后查看选项
13

通讯卫星在通信网络系统中主要起到()的作用。

2分
登录后查看选项
14

小杨想编写一个判断任意输入的整数N是否为素数的程序,下面哪个方法不合适?( )

2分
登录后查看选项
15

下面的排序算法都要处理多趟数据,哪种排序算法不能保证在下一趟处理时从待处理数据中选出最大或最小的数据?( )

2分
登录后查看选项
判断题 共10道
16

归并排序的时间复杂度是 。( )

2分
登录后查看选项
17

小杨在生日聚会时拿一块H*W的巧克力招待来的K个小朋友,保证每位小朋友至少能获得一块相同大小的巧克力。那么小杨想分出来最大边长的巧克力可以使用二分法。( )

2分
登录后查看选项
18

以下C++代码能以递归方式实现斐波那契数列,该数列第1、2项为1,以后各项均是前两项之和。( )

882187f5-738c-4e31-801c-6354ddf7bbf7.jpg

2分
登录后查看选项
19

贪心算法可以达到局部最优,但可能不是全局最优解。( )

2分
登录后查看选项
20

小杨设计了一个拆数程序,它能够将任意的非质数自然数N转换成若干个质数的乘积,这个程序是可以设计出来的。( )

2分
登录后查看选项
21

插入排序有时比快速排序时间复杂度更低。( )

2分
登录后查看选项
22

下面的C++代码能实现十进制正整数N转换为八进制并输出。( )

2分
登录后查看选项
23

对数组 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} 。( )

2分
登录后查看选项
24

小杨想写一个程序来算出正整数N有多少个因数,经过思考他写出了一个重复没有超过N/2次的循环就能够算出来了。( )

2分
登录后查看选项
25

同样的整数序列分别保存在单链表和双向链中,这两种链表上的简单冒泡排序的复杂度相同。( )

2分
登录后查看选项
编程题 共2道
26

小杨的幸运数


问题描述


小杨认为,所有大于等于 a的完全平方数都是他的超级幸运数。

小杨还认为,所有超级幸运数的倍数都是他的幸运数。自然地,小杨的所有超级幸运数也都是幸运数。

对于一个非幸运数,小杨规定,可以将它一直 +1,直到它变成一个幸运数。我们把这个过程叫做幸运化。例如,如果a=4 ,那么4 是最小的幸运数,而 1不是,但我们可以连续对 1做 3次 +1操作,使其变为4 ,所以我们可以说,1 幸运化后的结果是 4。

现在,小样给出 N个数,请你首先判断它们是不是幸运数;接着,对于非幸运数,请你将它们幸运化。


输入描述


第一行 2 个正整数 。

接下来 N行,每行一个正整数 x,表示需要判断(幸运化)的数。


输出描述

输出N 行,对于每个给定的 x,如果它是幸运数,请输出 lucky ,否则请输出将其幸运化后的结果。


特别提醒

在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任

何提示信息。


样例输入 1

样例输出 1


样例解释 1

样例输入 2

样例输出 2

数据规模

25分
登录后作答
27

烹饪问题


问题描述


有N 种食材,编号从0 至 N-1,其中第 i种食材的美味度为

不同食材之间的组合可能产生奇妙的化学反应。具体来说,如果两种食材的美味度分别为x 和 y,那么它们的契合度为 x and y。

其中,and 运算为按位与运算,需要先将两个运算数转换为二进制,然后在高位补足0 ,再逐位进行与运算。例如,12与6 的二进制表示分别为 1100 和 0110 ,将它们逐位进行与运算,得到 0100 ,转换为十进制得到 4,因此12 and 6 =4。在 C++ 或 Python 中,可以直接使用 & 运算符表示与运算。

现在,请你找到契合度最高的两种食材,并输出它们的契合度。


输入描述


第一行一个整数N ,表示食材的种数。

接下来一行 个用空格隔开的整数,依次为 ,表示各种食材的美味度。


输出描述


输出一行一个整数,表示最高的契合度。


特别提醒


在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。


样例输入 1

样例输出 1

样例解释 1


可以编号为 的食材之间的契合度为 2 and 3 = 2,是所有食材两两之间最高的契合度。


样例输入 2

样例输出 2

样例解释 1


可以编号为 的食材之间的契合度为 10 and 13 = 8,是所有食材两两之间最高的契合度。


数据规模

25分
登录后作答