GESP 2026年3月_C++七级试卷

从PDF导入:GESP 2026年3月_C++七级试卷

C++ 180分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
假设一个算法时间复杂度的递推式是T(n)=2T(n-1)+1(n为正整数),且T(0)=1,那么这个算法的时间复杂度是( )。
A. O(n)
B. O(nlogn)
C. O(n²)
D. O(2^n)
第2题 中级 2.0分 单选
下面关于"唯一分解定理"和"素数筛法"的说法中,错误的是( )。
A. 如果预处理出n以内每个数的最小质因子,那么可以在O(logn)时间内完成任意一个不超过n的整数的质因数分解。
B. 线性筛(欧拉筛)能够保证每个合数只被其最小质因子筛掉一次,这一性质依赖于唯一分解定理。
C. 唯一分解定理保证:若一个数未被任何不超过其平方根的质数筛去,则它一定是质数。
D. 唯一分解定理是埃氏筛时间复杂度为O(nloglogn)的根本原因。
第3题 中级 2.0分 单选
若字符串A与字符串B的最长公共子序列(LCS)长度为5,则( )。
A. 它们的编辑距离为5
B. 它们至少有5个公共字符
C. 它们最长公共子串长度为5
D. 它们一定长度相等
第4题 中级 2.0分 单选
对于一棵包含n个顶点(n≥2)的树,其所有顶点的度数之和必定等于( )。
A. n-1
B. 2n-2
C. 2n
D.
第5题 中级 2.0分 单选
关于哈希表(Hash Table)在不考虑扩容且采用简单均匀哈希函数的前提下,下列说法中错误的是( )。
A. 装载因子越大,发生冲突的概率通常越高
B. 开放定址法在删除元素时实现相对复杂
C. 链地址法在最坏情况下查找时间复杂度为O(n)
D. 查找哈希表的时间复杂度总是O(1)
第6题 中级 2.0分 单选
深度优先搜索(DFS)在遍历图时,每当访问到某个顶点后,选择一个相邻的未访问顶点继续搜索,直到某个顶点的所有相邻顶点均已被访问,则退回到前一顶点继续搜索。该算法主要运用了( )
A. 分治
B. 贪心
C. 动态规划
D. 回溯
第7题 中级 2.0分 单选
下面程序的运行结果为( )。

bool check(int n, int a[], int k, int dist) {
int cnt = 1;
int last = a[0];
for (int i = 1; i < n; i++) {
if (a[i] - last >= dist) {
cnt++;
last = a[i];
}
}
return cnt >= k;
}
int main() {
int a[] = {1, 2, 4, 8, 9};
cout << check(5, a, 3, 3) << endl;
return 0;
}

A. 2
B. 3
C. 4
D. 5
第8题 中级 2.0分 单选
下面程序的时间复杂度是( ),假设数组a的值域范围是D。

void process(int n, int a[]) {
sort(a, a + n);
for (int i = 0; i < n; i++) {
// 二分查找
int l = 0, r = D;
while (l < r) {
int mid = (l + r) / 2;
if (check(mid)) r = mid;
else l = mid + 1;
}
}
}

A. O(nlogn+nlogD)
B. O(nlognlogD)
C. O(nlogn)
D. O(nlogD)
第9题 中级 2.0分 单选
某二叉树共有10个结点,记为A~J,已知它的先序遍历序列为:ABDHIECFJG,中序遍历序列为:HDIBEAFJCG,则该二叉树的后序遍历序列是( )。
A. HIDEBJFGCA
B. HIDBEJFGCA
C. IHDEBJFGCA
D. HIDBFJGCA
第10题 中级 2.0分 单选
下面哪一个可能是下图的深度优先遍历序列?( )
A. 1,5,4,8,7,9,6,3,2
B. 1,5,8,4,7,9,6,3,2
C. 2,5,8,7,9,6,3,4,1
D. 8,9,6,3,2,5,1,4,7
第11题 中级 2.0分 单选
下面这个有向图的强连通分量的个数是( )。
A. 1
B. 2
C. 3
D. 4
第12题 中级 2.0分 单选
关于泛洪算法(Flood Fill)的说法,正确的是( )。
A. 泛洪算法只适用于二维网格中的四连通或八连通问题。
B. 泛洪算法必须使用递归方式实现。
C. 泛洪算法本质上是对图进行一次从起点出发的搜索。
D. 泛洪算法只能用于统计连通块个数,不能用于计算面积或周长。
第13题 中级 2.0分 单选
有6个字符,它们出现的次数分别为:{2,3,3,4,6,8},现在用哈夫曼编码为这些字符编码,最小加权路径长度WPL的值为( )。
A. 58
B. 60
C. 62
D. 64
第14题 中级 2.0分 单选
关于单链表、双链表和循环链表,下列说法正确的是( )。
A. 在单链表中,若已知某结点的指针,则可以在O(1)时间内删除该结点。
B. 循环链表中一定不存在空指针。
C. 在循环双链表中,尾结点的next指针一定为NULL。
D. 在带头结点的循环单链表中,判定链表是否为空只需判断头结点的next是否指向自身。
第15题 中级 2.0分 单选
下列关于树的遍历的说法中,正确的一项是( )。
A. 对任意一棵树进行深度优先遍历,所得序列一定唯一。
B. 已知一棵二叉树的先序遍历和后序遍历序列,可以唯一确定这棵二叉树。
C. 已知一棵二叉树的先序遍历和中序遍历序列,可以唯一确定这棵二叉树。
D. 一棵二叉树的中序遍历序列是单调递增的,则该二叉树一定是二叉平衡树。
第16题 中级 2.0分 判断
C++语言中,表达式4^2的结果类型为int,值为6。
T. 正确
F. 错误
第17题 中级 2.0分 判断
C++中引用可以重新绑定。
T. 正确
F. 错误
第18题 中级 2.0分 判断
在C++中,若函数形参为引用类型,则在函数内部对该形参的修改会影响对应的实参。
T. 正确
F. 错误
第19题 中级 2.0分 判断
如果一个最值问题可以用动态规划在多项式时间内求解,那么也一定存在一种贪心策略,可以在多项式时间内求得最优解。
T. 正确
F. 错误
第20题 中级 2.0分 判断
使用归并排序对n个元素进行排序时,无论最好、最坏还是平均情况,时间复杂度均为O(nlogn)。
T. 正确
F. 错误
第21题 中级 2.0分 判断
在无向连通图中删除一条边,该图就一定变成非连通图。
T. 正确
F. 错误
第22题 中级 2.0分 判断
在一个无向图中,每个顶点有不同的编号,在执行深度优先遍历过程中选择下一个顶点时总是优先选择编号更小的相邻顶点,则从指定顶点开始的遍历序列是唯一的。
T. 正确
F. 错误
第23题 中级 2.0分 判断
若所有字符出现频率相同,则哈夫曼编码一定会得到完全二叉树。
T. 正确
F. 错误
第24题 中级 2.0分 判断
使用math.h或cmath头文件中的函数,表达式sin(90)的结果为1。
T. 正确
F. 错误
第25题 中级 2.0分 判断
在一个无向连通图中,从任意顶点开始进行深度优先遍历,最终得到的DFS生成树一定包含图中的所有顶点。
T. 正确
F. 错误
第26题 中级 25.0分 编程
拆分

时间限制:1.0s 内存限制:512.0MB
小A想将正整数n拆分成若干个正整数之和,并最大化拆分后的正整数之积。
小A希望你帮他计算出拆分后正整数之积的最大值。由于答案可能很大,你只需要求出答案对10^9取模的结果。
形式化地,n的拆分是满足a₁+...+aₖ=n的若干个正整数a₁,...,aₖ,其中1≤k≤n。
你需要求出n的所有拆分中a₁×...×aₙ的最大值对10^9取模的结果。

【输入格式】
第一行,一个正整数t,表示数据组数。对于每组数据:一行,一个整数n。
【输出格式】
对于每组数据:输出一行,一个整数,表示n拆分后正整数之积的最大值对10^9取模的结果。
【样例输入】
3
1
2
10
【样例输出】
1
1
36
对于所有测试点,保证1≤t≤10⁴,1≤n≤10⁸。
第27题 中级 25.0分 编程
物流网络

时间限制:1.0s 内存限制:512.0MB
一个物流网络由n个城市和m条双向公路组成。每条公路都有两个属性:运输费用wᵢ、景观评分bᵢ。
当一辆运输车从城市1运送货物到城市n时,需要支付经过道路的运输费用之和。
为了推广旅游线路,物流公司推出了一项优惠政策:在运输路径上,可以免除景观评分最高的那条公路的运输费用。
如果有多条公路的景观评分同为最大值,则只免除其中一条的费用。
请你计算,从城市1到城市n的最小运输费用。

【数据范围】
对于所有测试点,保证1≤n≤5000,1≤m≤5000,1≤w,b≤10⁹。

【输入格式】
第一行两个整数n,m。接下来m行,每行四个整数u,v,w,b,表示一条双向公路。
【输出格式】
输出一个整数,表示从城市1到城市n的最小费用。
对于所有测试点,保证1≤n≤5000,1≤m≤5000,1≤w,b≤10⁹。
💬