← 返回历年试卷

GESP C++ 5级 2026年9月真题

单选题

第1题
小杨用单链表保存任务序列,并同时维护头指针 head 和尾指针 tail。在链表非空且已知 tail 的情况
2 分
第2题
在不带哨兵结点的双向链表中,结点 p 既不是头结点也不是尾结点。删除 p 的正确代码是( )。
2 分
第3题
下面函数使用快慢指针查找单链表的中间结点。横线处应填写( )。
2 分
第4题
函数 gcd(int a, int b) 定义如下,则 gcd(105, 45) 的结果是( )。
2 分
第5题
下面函数用于判断正整数 n 是否为质数。横线处的最佳写法是( )。
2 分
第6题
下面代码实现线性筛法。为了保证每个合数只被其最小质因子筛去一次,横线处应填写( )。
2 分
第7题
根据唯一分解定理,整数 756756 的正确质因数分解是( )。
2 分
第8题
函数 f(int n) 定义如下,则 f(4) 的结果是( )。
2 分
第9题
在升序数组中查找第一个严格大于 x 的元素位置,下面代码中的横线应填写( )。
2 分
第10题
小杨需要把若干箱货物按原顺序分配到 days 天中,每天运输连续的若干箱,求能够完成任务的最小载重
2 分
第11题
下面是归并排序中合并两个有序区间(升序排序)的部分代码。若希望排序保持稳定,横线处应填写
2 分
第12题
下面快速排序的划分函数以 a[right] 为枢轴,并把不大于枢轴的元素移动到左侧。横线处应填写
2 分
第13题
小杨要在一个教室安排尽可能多场活动,每场活动具有开始时间 start 和结束时间 end。采用贪心算法
2 分
第14题
下面函数使用迭代方法求最大连续子段和。对于数组 {-2, 3, -1, 5, -6, 2},函数返回值是
2 分
第15题
数组 a 和 b 按低位在前的顺序保存两个非负大整数。下面代码实现高精度加法,横线处应填写
2 分

判断题

第1题
下面代码在已知结点 p 的情况下,能够以 O(1)O(1) 的时间在单链表的 p 结点之后插入新结点 s。
2 分
第2题
下面代码可以安全地删除单链表的头结点,并使 head 指向删除后的新头结点。
2 分
第3题
下面欧几里得算法既适用于 a > b,也适用于 a < b,只要 a、b 是正整数。
2 分
第4题
下面埃氏筛从 i * i 开始标记,是因为 i * i 之前的 i 的合数倍数已经被更小的质因子标记过。
2 分
第5题
下面程序的时间复杂度为 O(n)O(n)。
2 分
第6题
若数组 a 已按升序排列,下面函数能够返回最后一个小于等于 x 的元素下标;如果不存在,则返回
2 分
第7题
快速排序中如果选取区间第一个元素作为枢轴。当输入数组已经升序排列时,其最坏时间复杂度仍为 O(nlog⁡n)O(n\log n)。
2 分
第8题
归并排序的递推式为 T(n)=2T(n/2)+O(n)T(n)=2T(n/2)+O(n),对应的时间复杂度为 O(nlog⁡n)O(n\log n)。
2 分
第9题
下面的贪心代码一定能对任意硬币面值集合 coins 求出 money 所需的最少硬币数。
2 分
第10题
假设两个非负高精度整数分别存储在数组 a 和 b 中,且 a≥ba\ge b。数组采用低位在前的方式存储,即
2 分

编程题

未做
第1题哥德巴赫猜想
25 分
未做
第2题饮品调制
25 分