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

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

C++ 180分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
下列哪一项不是面向对象编程的基本特征?
A. 继承
B. 封装
C. 多态
D. 链接
第2题 中级 2.0分 单选
为了让Dog类的构造函数能正确地调用其父类Animal的构造方法,横线处应填入( )。

A. Animal(name)
B. super(name)
C. Animal::Animal(name)
D. Animal()
第3题 中级 2.0分 单选
代码同上一题,代码执行结果是( )。
A. 输出Animal speaks
B. 输出Dog barks
C. 编译错误
D. 程序崩溃
第4题 中级 2.0分 单选
以下关于栈和队列的代码,执行后输出是( )。

A. 1 3
B. 3 1
C. 3 3
D. 1 1
第5题 中级 2.0分 单选
在一个循环队列中,front是指向队头的指针,rear指向队尾的指针,队列最大容量为maxSize。判断队列已满的条件是( )。
A. rear == front
B. (rear + 1) % maxSize == front
C. (rear - 1 + maxSize) % maxSize == front
D. (rear - 1) == front
第6题 中级 2.0分 单选
( )只有最底层的节点未被填满,且最底层节点尽量靠左填充。
A. 完美二叉树
B. 完全二叉树
C. 完满二叉树
D. 平衡二叉树
第7题 中级 2.0分 单选
在使用数组表示完全二叉树时,如果一个节点的索引为i(从1开始计数),那么其左子节点的索引通常是( )。
A. i
B. 2i
C. 2i+1
D. i/2
第8题 中级 2.0分 单选
已知一棵二叉树的前序遍历序列为GDAFEMHZ,中序遍历序列为ADFGEHMZ,则其后序遍历序列为( )。
A. ADFGEHMZ
B. ADFGHMEZ
C. AFDGEMZH
D. AFDHZMEG
第9题 中级 2.0分 单选
设有字符集{a,b,c,d,e},其出现频率分别为{5,8,12,15,20},得到的哈夫曼编码为( )。

第10题 中级 2.0分 单选
3位格雷编码中,编码101之后的下一个编码不可能是( )。
A. 100
B. 111
C. 110
D. 001
第11题 中级 2.0分 单选
请将下列C++实现的深度优先搜索(DFS)代码补充完整,横线处应填入( )。

A. result.push_back(root->val); dfs(root->left, result); dfs(root->right, result);
B. result.push_back(root->left->val); dfs(root->right, result); dfs(root->left, result);
C. result.push_back(root->left->val); dfs(root->left, result); dfs(root->right, result);
D. result.push_back(root->right->val); dfs(root->right, result); dfs(root->left, result);
第12题 中级 2.0分 单选
给定一个二叉树,返回每一层中最大的节点值,结果以数组形式返回,横线处应填入( )。

A. node = q.end();
B. node = q.front();
C. q.pop(); node = q.front();
D. node = q.front(); q.pop();
第13题 中级 2.0分 单选
下面代码实现一个二叉排序树的插入函数(没有相同的数值),横线处应填入( )。

A. if (key < root->val) insert(root->left, key); else if (key > root->val) insert(root->right, key);
B. if (key < root->val) insert(root->right, key); else if (key > root->val) insert(root->left, key);
C. insert(root->left, key); insert(root->right, key);
D. insert(root->right, key); insert(root->left, key);
第14题 中级 2.0分 单选
以下关于动态规划算法特性的描述,正确的是( )。
A. 子问题相互独立,不重叠
B. 问题包含重叠子问题和最优子结构
C. 只能从底至顶迭代求解
D. 必须使用递归实现,不能使用迭代
第15题 中级 2.0分 单选
给定n个物品和一个最大承重为W的背包,每个物品有一个重量和价值,每个物品只能选择放或不放。目标是选择若干个物品放入背包,使得总价值最大,且总重量不超过W。关于下

A. 该算法不能处理背包容量为0的情况
B. 外层循环i遍历背包容量,内层遍历物品
C. 从大到小遍历w是为了避免重复使用同一物品
D. 这段代码计算的是最小重量而非最大价值
第16题 中级 2.0分 判断
构造函数可以被声明为virtual。
T. 正确
F. 错误
第17题 中级 2.0分 判断
给定一组字符及其出现的频率,构造出的哈夫曼树是唯一的。
T. 正确
F. 错误
第18题 中级 2.0分 判断
为了实现一个队列,使其出队操作(pop)的时间复杂度为O(1)并且避免数组删除首元素的O(n)问题,一种常见且有效的方法是使用环形数组,通过调整队首和队尾指针来
T. 正确
F. 错误
第19题 中级 2.0分 判断
对一棵二叉排序树进行中序遍历,可以得到一个递增的有序序列。
T. 正确
F. 错误
第20题 中级 2.0分 判断
如果二叉搜索树在连续的插入和删除操作后,所有节点都偏向一侧,导致其退化为类似于链表的结构,这时其查找、插入、删除操作的时间复杂度会从理想情况下的O(log n)
T. 正确
F. 错误
第21题 中级 2.0分 判断
执行下列代码,my_dog.name的最终值是Charlie。

T. 正确
F. 错误
第22题 中级 2.0分 判断
下列C++代码可以成功编译,并且子类Child的实例能通过其成员函数访问父类Parent的属性value。

T. 正确
F. 错误
第23题 中级 2.0分 判断
下列代码中的tree向量,表示的是一棵完全二叉树(-1代表空节点)按照层序遍历的结果。
T. 正确
F. 错误
第24题 中级 2.0分 判断
在树的深度优先搜索(DFS)中,使用栈作为辅助数据结构以实现"先进后出"的访问顺序。
T. 正确
F. 错误
第25题 中级 2.0分 判断
下面代码采用动态规划求解零钱兑换问题:给定n种硬币,第i种硬币的面值为coins[i-1],目标金额为amt,每种硬币可以重复选取,求能够凑出目标金额的最少硬币

T. 正确
F. 错误
第26题 中级 25.0分 编程
学习小组

班主任计划将班级里的n名同学划分为若干个学习小组,每名同学都需要分入某一个学习小组中。观察发现,如果一个学习小组中恰好包含k名同学,则该学习小组的讨论积极度为a_k。给定讨论积极度a_1~a_n,请你计算将这n名同学划分为学习小组的所有可能方案中,讨论积极度之和的最大值。

【输入格式】
第一行,一个正整数n,表示班级人数。
第二行,n个非负整数a_1~a_n,表示不同人数学习小组的讨论积极度。
【输出格式】
输出共一行,一个整数,表示所有划分方案中,学习小组讨论积极度之和的最大值。
【样例输入1】

4
1 5 6 3
【样例输出1】

10
【样例输入2】

8
0 2 5 6 4 3 3 4
【样例输出2】

12
对于所有测试点,保证1≤n≤1000,0≤a_i≤10^9。
第27题 中级 25.0分 编程
最大因数

给定一棵有n个结点的有根树,这些结点依次以1~n编号,根结点的编号为1。对于编号为i(i>1)的结点,其父结点的编号为i的因数中除1以外最大的因数。现在有q组询问,第j组询问给定u_j,v_j,请你求出编号分别为u_j和v_j的两个结点在这棵树上的距离。两个结点之间的距离是连接这两个结点的简单路径所包含的边数。

【输入格式】
第一行,一个正整数q,表示询问组数。
接下来q行,每行两个正整数u_j,v_j,表示询问结点的编号。
【输出格式】
输出共q行,每行一个整数,表示结点u_j和v_j之间的距离。
【样例输入1】

3
1 3
2 5
4 8
【样例输出1】

1
2
1
【样例输入2】

1
120 650
【样例输出2】

9
对于所有测试点,保证1≤q≤10^5,1≤u_j,v_j≤10^9。
💬