GESP 2025年6月_C++七级试卷

从PDF导入:GESP 2025年6月_C++七级试卷

C++ 180分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
已知小写字母b的ASCII码为98,下列C++代码的输出结果是( )。

#include
using namespace std;
int main() {
char a = 'b' ^ 4;
cout << a;
return 0;
}

A. b
B. bbbb
C. f
D. 102
第2题 中级 2.0分 单选
已知a为int类型变量,p为int*类型变量,下列赋值语句不符合语法的是( )。
A. *(p+a)=*p;
B. *(p-a)=a;
C. p+a=p;
D. p=p+a;
第3题 中级 2.0分 单选
下列关于C++类的说法,错误的是( )。
A. 如需要使用基类的指针释放派生类对象,基类的析构函数应声明为虚析构函数。
B. 构造派生类对象时,只调用派生类的构造函数,不会调用基类的构造函数。
C. 基类和派生类分别实现了同一个虚函数,派生类对象仍能够调用基类的该方法。
D. 如果函数形参为基类指针,调用时可以传入派生类指针作为实参。
第4题 中级 2.0分 单选
下列C++代码的输出是( )。

#include
using namespace std;
int main() {
int arr[5] = {2, 4, 6, 8, 10};
int *p = arr + 2;
cout << p[3] << endl;
return 0;
}

A. 6
B. 8
C. 编译出错,无法运行。
D. 不确定,可能发生运行时异常。
第5题 中级 2.0分 单选
假定只有一个根节点的树的深度为1,则一棵有N个节点的完全二叉树,则树的深度为( )。
A. ⌊log₂N⌋+1
B. ⌊log₂N⌋
C. ⌈log₂N⌉
D. 不能确定。
第6题 中级 2.0分 单选
对于如下图的二叉树,说法正确的是( )。

A. 先序遍历是ABDEC。
B. 中序遍历是BDACE。
C. 后序遍历是DBCEA。
D. 广度优先遍历是ABCDE。
第7题 中级 2.0分 单选
图的存储和遍历算法,下面说法错误的是( )。
A. 图的深度优先遍历须要借助队列来完成。
B. 图的深度优先遍历和广度优先遍历对有向图和无向图都适用。
C. 使用邻接矩阵存储一个包含v个顶点的有向图,统计其边数的时间复杂度为O(v²)。
D. 同一个图分别使用出边邻接表和入边邻接表存储,其边结点个数相同。
第8题 中级 2.0分 单选
一个连通的简单有向图,共有28条边,则该图至少有( )个顶点。
A. 5
B. 6
C. 7
D. 8
第9题 中级 2.0分 单选
以下哪个方案不能合理解决或缓解哈希表冲突( )。
A. 在每个哈希表项处,使用不同的哈希函数再建立一个哈希表。
B. 在每个哈希表项处,建立二叉排序树。
C. 使用不同的哈希函数建立额外的哈希表。
D. 覆盖发生冲突的旧元素。
第10题 中级 2.0分 单选
以下关于动态规划的说法中,错误的是( )。
A. 动态规划方法通常能够列出递推公式。
B. 动态规划方法的时间复杂度通常为状态的个数。
C. 动态规划方法有递推和递归两种实现形式。
D. 对很多问题,递推实现和递归实现动态规划方法的时间复杂度相当。
第11题 中级 2.0分 单选
下面程序的输出为( )。

#include
using namespace std;
int rec_fib[100];
int fib(int n) {
if (n <= 1)
return n;
if (rec_fib[n] == 0)
rec_fib[n] = fib(n - 1) + fib(n - 2);
return rec_fib[n];
}
int main() {
cout << fib(6) << endl;
return 0;
}

A. 8
B. 13
C. 64
D. 结果是随机的。
第12题 中级 2.0分 单选
下面程序的时间复杂度为( )。

A. O(2^n)
B. O(n)
C. O(n²)
D. O(n)
第13题 中级 2.0分 单选
下面search函数的平均时间复杂度为( )。

A. O(nlogn)
B. O(n)
C. O(logn)
D. O(1)
第14题 中级 2.0分 单选
下面程序的时间复杂度为( )。

A. O(n)
B. O(n×logn)
C. O(n×loglogn)
D. O(n²)
第15题 中级 2.0分 单选
下列选项中,哪个不可能是下图的广度优先遍历序列( )。

A. 1,2,4,5,3,7,6,8,9
B. 1,2,5,4,3,7,8,6,9
C. 1,4,5,2,7,3,8,6,9
D. 1,5,4,2,7,3,8,6,9
第16题 中级 2.0分 判断
C++语言中,表达式9&12的结果类型为int、值为8。
T. 正确
F. 错误
第17题 中级 2.0分 判断
C++语言中,指针变量指向的内存地址不一定都能够合法访问。
T. 正确
F. 错误
第18题 中级 2.0分 判断
对n个元素的数组进行快速排序,最差情况的时间复杂度为O(nlogn)。
T. 正确
F. 错误
第19题 中级 2.0分 判断
一般情况下,long long类型占用的字节数比float类型多。
T. 正确
F. 错误
第20题 中级 2.0分 判断
使用math.h或cmath头文件中的函数,表达式pow(10,3)的结果的值为1000、类型为int。
T. 正确
F. 错误
第21题 中级 2.0分 判断
二叉排序树的中序遍历序列一定是有序的。
T. 正确
F. 错误
第22题 中级 2.0分 判断
无论哈希表采用何种方式解决冲突,只要管理的元素足够多,都无法避免冲突。
T. 正确
F. 错误
第23题 中级 2.0分 判断
在C++语言中,类的构造函数和析构函数均可以声明为虚函数。
T. 正确
F. 错误
第24题 中级 2.0分 判断
动态规划方法将原问题分解为一个或多个相似的子问题,因此必须使用递归实现。
T. 正确
F. 错误
第25题 中级 2.0分 判断
如果将城市视作顶点,公路视作边,将城际公路网络抽象为简单图,可以满足城市间的车道级导航需求。
T. 正确
F. 错误
第26题 中级 25.0分 编程
线图

时间限制:1.0s 内存限制:512.0MB
给定由n个结点与m条边构成的简单无向图G,结点依次以1,2,...,n编号。简单无向图意味着G中不包含重边与自环。
G的线图L(G)通过以下方式构建:
初始时线图L(G)为空。
对于无向图G中的一条边,在线图L(G)中加入与之对应的一个结点。
对于无向图G中两条不同的边(u1,v1),(u2,v2),若存在G中的结点同时连接这两条边,则在线图L(G)中加入一条无向边。
请你求出线图L(G)中所包含的无向边的数量。

【输入格式】
第一行,两个正整数n,m。接下来m行,每行两个正整数ui,vi,表示G中的一条边。
【输出格式】
输出共一行,一个整数,表示线图L(G)中所包含的无向边的数量。
【样例输入1】
4 5
1 2
1 3
2 3
2 4
3 4
【样例输出1】
8
对于所有测试点,保证1≤n≤10⁵,1≤m≤10⁵。
第27题 中级 25.0分 编程
调味平衡

时间限制:1.0s 内存限制:512.0MB
小A准备了n种食材用来制作料理,这些食材依次以1,2,...,n编号,第i种食材的酸度为ai,甜度为bi。
对于每种食材,小A可以选择将其放入料理,或者不放入料理。
料理的酸度A为放入食材的酸度之和,甜度B为放入食材的甜度之和。
如果料理的酸度与甜度相等,那么料理的调味是平衡的。
小A想在满足料理调味平衡的前提下,合理选择食材,最大化料理的酸度与甜度之和。

【输入格式】
第一行,一个正整数n。接下来n行,每行两个正整数ai,bi。
【输出格式】
输出共一行,一个整数,表示在调味平衡的前提下,料理酸度与甜度之和的最大值。
【样例输入1】
3
1 2
2 3
3 4
【样例输出1】
18
对于所有测试点,保证1≤n≤100,1≤ai,bi≤500。
💬