题号 1 2 3 4 5 6 7 8 9 10 11 1 2 13 14 15
答 案 A D A D B B C C D B A A C C A
C ++ 六级
2024 年 0 3 ⽉
1 单选题(每题 2 分,共 30 分)
第 1 题 在 构建哈夫曼树时,每次应该选择( )合并。
A. 最 ⼩权值的节点
B. 最 ⼤权值的节点
C. 随 机节点
D. 深 度最深的节点
第 2 题 ⾯ 向对象的编程思想主要包括以下哪些原则( )?
A. 贪 ⼼、动态规划、回溯
B. 并 发、并⾏、异步
C. 递 归、循环、分治
D. 封 装、继承、多态
第 3 题 在 队列中,元素的添加和删除是按照( )原则 进⾏的。
A. 先 进先出
B. 先 进后出
C. 最 ⼩值先出
D. 随 机进出
第 4 题 给 定⼀个简单的类定义如下,( )语句在类的 外部正确地创建了⼀个 Circle 对 象并调⽤了 getArea 函
数 ?
A. Circle c = Circle(5.0); c.getArea(c);
B . Circle c(5.0); getArea(c);
C . Circle c = new Circle(5.0); c.getArea();
D . Circle c(5.0); c.getArea();
第 5 题 以 下代码希望能在⼀棵⼆叉排序树中搜索特定的 值,请在横线处填⼊( ),使其能正确实现相应功能。
A. target < root->left
B . target < root->val
C . target > root->val
D . target > root->left
第 6 题 3 位格雷编码的正确顺序是( )。
A. 0 00, 0 01, 0 10, 0 11 , 1 00, 1 01, 1 1 0, 1 11
B . 0 00, 0 01, 0 11 , 0 10, 1 1 0, 1 11 , 1 01, 1 00
C . 0 00, 0 10, 0 01, 0 11 , 1 00, 1 1 0, 1 01, 1 11
D . 0 00, 0 10, 1 1 0, 1 00, 1 11 , 1 01, 0 11 , 0 01
第 7 题 以 下动态规划算法的含义与⽬的是( )。
class Circle {
private :
double radius ;
public :
Circle (double r) : radius (r) {}
double getArea () {
return 3.14 * radius * radius ;
}
};
1
2
3
4
5
6
7
8
9
TreeNode * search (TreeNode * root , int target ) {
if ( root == NULL || root -> val == target ) {
return root ;
}
if ( _______________ ) {
return search (root -> left , target );
} else {
return search (root -> right , target );
}
}
1
2
3
4
5
6
7
8
9
1 0
int function (vector <int >& nums ) {
int n = nums .size ();
if ( n == 0)
return 0;
if ( n == 1)
return nums [0];
1
2
3
4
5
6
A. 计 算数组 nums 中 的所有元素的和
B. 计 算数组 nums 中 相邻元素的最⼤和
C. 计 算数组 nums 中 不相邻元素的最⼤和
D. 计 算数组 nums 中 的最⼩元素
第 8 题 阅 读以下⼴度优先搜索的代码:
使⽤以上算法遍历以下这棵树,可能的输出是( )。
A. 1 2 8 9 4 5 3 6 7 10 11
B . 1 2 3 4 5 6 7 8 9 10 11
C . 1 2 3 8 9 6 4 5 7 10 11
vector <int > dp (n, 0);
dp [0] = nums [0];
dp [1] = max (nums [0], nums [1]);
for ( int i = 2; i < n; ++ i) {
dp [i] = max (dp [i - 1], nums [i] + dp [i - 2]);
}
return dp [n - 1];
}
7
8
9
1 0
11
12
13
14
void bfs (TreeNode * root ) {
if ( root == NULL ) {
return ;
}
queue <TreeNode *> q;
q.push (root );
while ( !q.empty ()) {
TreeNode * current = q.front ();
q.pop ();
cout << current -> val << " " ;
if ( current -> left ) {
q.push (current -> left );
}
if ( current -> right ) {
q.push (current -> right );
}
}
}
1
2
3
4
5
6
7
8
9
1 0
11
12
13
14
15
16
17
18
1
/ \
2 3
/ \ \
8 9 6
/ \ \
4 5 7
/ \
10 11
1
2
3
4
5
6
7
8
9
D. 1 2 3 8 9 4 5 6 7 10 11
第 9 题 给 定⼀个空栈,执⾏以下操作序列:
操作序列: push(1), push(2), push(3), pop(), pop(), push(4), push(5), pop()
最 终栈中的元素是( )。
A. 1 , 2
B . 1 , 4 , 5
C . 1 , 2 , 5
D . 1 , 4
第 1 0 题 ⼀ 个有 1 24 个叶⼦节点的完全⼆叉树,最多有( )个结点。
A. 2 47
B . 2 48
C . 2 49
D . 2 50
第 1 1 题 在 求解最优化问题时,动态规划常常涉及到两个 重要性质,即最优⼦结构和( )。
A. 重 叠⼦问题
B. 分 治法
C. 贪 ⼼策略
D. 回 溯算法
第 1 2 题 若 ⼀棵⼆叉树的先序遍历为: A, B , D , E , C , F 、中序遍历为: D, B , E , A , F , C ,它的后序遍历为( )。
A. D , E ,
GESP 3月认证C++六级真题,2024年3月GESP等级认证C++编程6级真题及答案