2026年9月CCF—GESP(C++五级)编程能力等级认证试卷
剩余时间 --:--:--
单选题 共 15 题
1.

小杨用单链表保存任务序列,并同时维护头指针 和尾指针 。在链表非空且已知 的情况 下,在表尾插入新结点的时间复杂度是( )。

2.

在不带哨兵结点的双向链表中,结点 既不是头结点也不是尾结点。删除 的正确代码是( )。

3.

下面函数使用快慢指针查找单链表的中间结点。横线处应填写( )。

fast = fast->next;

4.

函数 定义如下,则 的结果是( )。

3

5.

下面函数用于判断正整数 是否为质数。横线处的最佳写法是( )。

i < n

6.

下面代码实现线性筛法。为了保证每个合数只被其最小质因子筛去一次,横线处应填写( )。

p % i == 0

7.

根据唯一分解定理,整数的正确质因数分解是( )。

8.

函数 定义如下,则 的结果是( )。

4

9.

在升序数组中查找第一个严格大于 的元素位置,下面代码中的横线应填写( )。

a[mid] < x

10.

小杨需要把若干箱货物按原顺序分配到 天中,每天运输连续的若干箱,求能够完成任务的最小载重check(cap)cap 量。函数 判断载重量为 时能否在规定天数内运完。横线处应填写( )。

l = mid + 1;r = mid;

11.

下面是归并排序中合并两个有序区间(升序排序)的部分代码。若希望排序保持稳定,横线处应填写 ( )。

a[i] < a[j]

12.

下面快速排序的划分函数以 为枢轴,并把不大于枢轴的元素移动到左侧。横线处应填写 ( )。

a[j] <= pivot

13.

小杨要在一个教室安排尽可能多场活动,每场活动具有开始时间 和结束时间 。采用贪心算法 时,正确的选择策略是( )。

14.

下面函数使用迭代方法求最大连续子段和。对于数组 ,函数返回值是 ( )。

5

15.

数组 和 按低位在前的顺序保存两个非负大整数。下面代码实现高精度加法,横线处应填写 ( )。

carry = sum % 10;

判断题 共 10 题
1.

下面代码在已知结点 的情况下,能够以 的时间在单链表的 结点之后插入新结点 。

head

2.

下面代码可以安全地删除单链表的头结点,并使 指向删除后的新头结点。

a > ba < bab

3.

下面欧几里得算法既适用于 ,也适用于 ,只要 、 是正整数。

i * ii * ii

4.

下面埃氏筛从 开始标记,是因为 之前的 的合数倍数已经被更小的质因子标记过。

5.

下面程序的时间复杂度为

ax

6.

若数组 已按升序排列,下面函数能够返回最后一个小于等于 的元素下标;如果不存在,则返回-1 。

7.

快速排序中如果选取区间第一个元素作为枢轴。当输入数组已经升序排列时,其最坏时间复杂度仍为

8.

归并排序的递推式为,对应的时间复杂度为coinsmoney

9.

下面的贪心代码一定能对任意硬币面值集合 求出 所需的最少硬币数。

ab

10.

假设两个非负高精度整数分别存储在数组 和 中,且。数组采用低位在前的方式存储,即a[0]ca - b 表示个位。下面代码中的 可以正确保存 的各位数字。

分,共 分) 3 25 50 1

编程题 共 2 题
1.

哥德巴赫猜想

以下为官方试卷题面(与 PDF 一致)

哥德巴赫猜想

2.

饮品调制

以下为官方试卷题面(与 PDF 一致)

饮品调制

饮品调制

C++ 编辑器
输入
输出