GESP 2024年12月_C++六级试卷

从PDF导入:GESP 2024年12月_C++六级试卷

C++ 180分钟 总分 75.0 26 题
试卷题目预览
第1题 中级 2.0分 单选
面向对象编程(OOP)是一种特殊的程序设计方法。下面( )不是重要的OOP特性。
A. 抽象
B. 封装
C. 继承
D. 模块化
第2题 中级 2.0分 单选
以下关于C++中类的说法,哪一项是正确的?
A. 类中定义的所有成员变量和成员函数默认是public访问权限。
B. 类的构造函数必须显式声明返回类型为void。
C. 在C++中,类的数据一般设置为私有,其公有成员函数提供访问私有数据的唯一途径。
D. 同一个类的实例有各自的成员数据和成员函数。
第3题 中级 2.0分 单选
以下C++代码段中存在语法错误或逻辑错误,( )是正确的。

A. NULL在C++中无法用于指针初始化,应使用nullptr。
B. obj的定义应该是MyClass obj;而不是指针类型。
C. obj->display()语句存在空指针访问错误,obj应该初始化为一个有效的对象。
D. obj->display()语句会调用display()函数,但它没有输出任何内容。
第4题 中级 2.0分 单选
阅读以下代码,下面哪一项是正确的?

A. 栈s的输出顺序是1 2 3 4 5,队列q的输出顺序是5 4 3 2 1。
B. 栈s的输出顺序是5 4 3 2 1,队列q的输出顺序是1 2 3 4 5。
C. 栈s的输出顺序是1 2 3 4 5,队列q的输出顺序是1 2 3 4 5。
D. 栈s的输出顺序是1 2 3 4 5,队列q的输出顺序是1 2 3 4 5,程序不会正常执行。
第5题 中级 2.0分 单选
n个节点的双向循环链,在其中查找某个节点的平均时间复杂度是( )。
A. O(1)
B. O(n)
C. O(log n)
D. O(n^2)
第6题 中级 2.0分 单选
以下关于树的说法,( )是正确的。
A. 在一棵二叉树中,叶子结点的度一定是2。
B. 满二叉树中每一层的结点数等于2^(层数-1)。
C. 在一棵树中,所有结点的度之和等于所有叶子结点的度之和。
D. 一棵二叉树的先序遍历结果和中序遍历结果一定相同。
第7题 中级 2.0分 单选
已知字符集{A,B,C,D}的出现频率为:A:8, B:3, C:1, D:6。根据哈夫曼编码法,下面( )是正确的哈夫曼树。
A. A为根,左孩子A,右孩子BCD树
B. A为根,左孩子A,右孩子BCD树(不同结构)
C. D为根,左孩子D,右孩子ABC树
D. C为根
第8题 中级 2.0分 单选
上一题中各字符的哈夫曼编码是( )。
A. A:0, B:10, C:110, D:111
B. A:0, B:10, C:11, D:10
C. A:0, B:101, C:100, D:11
D. A:11, B:10, C:01, D:00
第9题 中级 2.0分 单选
( )是3位格雷编码。
A. 000 001 011 010 110 111 101 100
B. 000 001 010 011 100 101 110 111
C. 000 001 100 101 011 010 111 110
D. 000 010 001 011 100 110 101 111
第10题 中级 2.0分 单选
根据下面二叉搜索树和给定代码,调用函数search(root,7)时,输出的结果是( )。(二叉搜索树:根5,左子树3(孩子2,4),右子树7(孩子6,8))

A. 5
B. 5 7
C. 5 3 7
D. 5 7 6
第11题 中级 2.0分 单选
阅读以下二叉树的深度优先搜索算法,横线上应填写( )。

A. TreeNode* node = s.top();
B. TreeNode* node = s.top(); s.pop();
C. TreeNode* node = s.front();
D. TreeNode* node = s.front(); s.pop();
第12题 中级 2.0分 单选
阅读以下二叉树的广度优先搜索的代码,横线上应填写( )。

A. TreeNode* node = q.top();
B. TreeNode* node = q.top(); q.pop();
C. TreeNode* node = q.front();
D. TreeNode* node = q.front(); q.pop();
第13题 中级 2.0分 单选
使用上题中的宽度优先搜索算法遍历以下这棵树,可能的输出是( )。(树结构:根1,左子树2(孩子8,9),右子树3(右孩子6(孩子4,右7)))
A. 1 2 3 8 9 6 4 7
B. 1 2 3 6 8 9 4 7
C. 1 2 8 9 3 6 4 7
D. 以上都不对
第14题 中级 2.0分 单选
以下关于动态规划的描述,( )是正确的。
A. 动态规划适用于没有重叠子问题的优化问题。
B. 动态规划要求问题具有最优子结构和无后效性。
C. 动态规划通常通过递归来实现。
D. 动态规划与贪心算法不同,贪心算法不适用于有重叠子问题的问题。
第15题 中级 2.0分 单选
假设背包的最大容量W=10,共有4个物品可供选择,4个物品的重量分别为2,3,5,7,对应的价值分别为10,25,30,40,则该0/1背包问题中,背包的最大价
A. 70
B. 90
C. 100
D. 120
第16题 中级 2.0分 判断
构造函数是一种特殊的类成员函数,构造函数的名称和类名相同。但通过函数重载,可以创建多个同名的构造函数,条件是每个构造函数的参数列表不同。
T. 正确
F. 错误
第17题 中级 2.0分 判断
类的静态成员函数既能访问类的静态数据成员,也能访问非静态数据成员。
T. 正确
F. 错误
第18题 中级 2.0分 判断
栈中元素的插入和删除操作都在栈的顶端进行,所以方便用单向链表实现。
T. 正确
F. 错误
第19题 中级 2.0分 判断
下面代码构建的树一定是完全二叉树:

T. 正确
F. 错误
第20题 中级 2.0分 判断
在二叉排序树中,左子树所有节点的值都大于根节点的值,右子树所有节点的值都小于根节点的值。
T. 正确
F. 错误
第21题 中级 2.0分 判断
在生成一个派生类的对象时,只调用派生类的构造函数。
T. 正确
F. 错误
第22题 中级 2.0分 判断
下面的代码实现了二叉树的前序遍历,它通过递归方法访问每个节点并打印节点值。

T. 正确
F. 错误
第23题 中级 2.0分 判断
在二叉树中,宽度优先搜索算法(BFS)保证从起点到每个节点的访问路径是边数最少的路径(即最短路径)。
T. 正确
F. 错误
第24题 中级 2.0分 判断
在解决简单背包问题时,动态规划的状态转移方程如下:dp[i][w] = max(dp[i-1][w], dp[i-1][w - weights[i-1]] +
T. 正确
F. 错误
第25题 中级 2.0分 判断
栈中元素的插入和删除操作都在栈的顶端进行,所以方便用双向链表比单向链表更合适表实现。
T. 正确
F. 错误
第26题 中级 25.0分 编程
树上游走

小杨有一棵包含无穷节点的二叉树(即每个节点都有左儿子节点和右儿子节点;除根节点外,每个节点都有父节点),其中根节点的编号为1,对于节点i,其左儿子的编号为2i,右儿子的编号为2i+1。小杨会从节点s开始在二叉树上移动,每次移动为以下三种移动方式的任意一种:第1种移动方式:如果当前节点存在父亲节点,向上移动到当前节点的父亲节点,否则不移动;第2种移动方式:移动到当前节点的左儿子;第3种移动方式:移动到当前节点的右儿子。小杨想知道移动n次后自己所处的节点编号。数据保证最后的所处的节点编号不超过10^12。 小杨管理着m辆货车,每辆货车每天需要向A市和B市运送若干次物资。小杨同时拥有n个运输站点,这些站点位于A市和B市之间。每次运送物资时,货车从初始运输站点出发,前往A市或B市,之后返回初始运输站点。A市、B市和运输站点的位置可以视作数轴上的三个点,其中A市的坐标为0,B市的坐标为x,运输站点的坐标为p且有0

【输入格式】
第一行包含一个正整数n和s,代表移动次数和初始节点编号。
第二行包含一个长度为n且仅包含大写字母U、L、R的字符串,代表每次移动的方式,其中U代表第1种移动方式,L代表第2种移动方式,R代表第3种移动方式。
第一行包含三个正整数n, m, x,代表运输站点数量,货车数量和两市距离。
之后n行,每行包含两个正整数p_i, c_i,代表第i个运输站点的位置和最多容纳车辆数。
之后m行,每行包含两个正整数a_i, b_i,代表第i辆货车每天需要向A市运送a_i次物资,向B市运送b_i次物资。
【输出格式】
输出一个正整数,代表最后所处的节点编号。
输出一个正整数,代表所有货车每天的最短总行驶路程。
【样例输入】

3 2
URR
【样例输出】

7
【样例解释】

小杨的移动路线为2-1-3-7。
对于全部数据,保证有1≤n≤10^5,1≤s≤10^12。
【样例输入】

3 4 10
1 1
2 1
8 3
5 3
7 2
9 0
1 10000
【样例输出】

40186
【样例解释】

第1辆车的初始运输站点为站点2,第2辆车的初始运输站点为站点1。第3辆车的初始运输站点为站点3,第4辆车的初始运输站点为站点3。此时总行驶路程最短,为40186。
对于全部数据,保证有1≤n,m≤10^5,1≤x≤10^9。数据保证所有运输站点可容纳车辆总数≥m。
💬