GESP_C++_六级[2024.3]

题目总数:27
总分数:135
时间:不限时
第 1 题    单选题

 阅读以下广度优先搜索的代码:

使用以上算法遍历以下这棵树,可能的输出是( )。

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

D.

 1 2 3 8 9 4 5 6 7 10 11

第 2 题    单选题

 以下动态规划算法的含义与目的是( )。

A.

  计算数组 nums 中的所有元素的和

B.

 计算数组 nums 中相邻元素的最大和

C.

 计算数组 nums 中不相邻元素的最大和

D.

 计算数组 nums 中的最小元素

第 3 题    单选题

 3 位格雷编码的正确顺序是( )。

A.

 000, 001, 010, 011, 100, 101, 110, 111

B.

 000, 001, 011, 010, 110, 111, 101, 100

C.

  000, 010, 001, 011, 100, 110, 101, 111

D.

 000, 010, 110, 100, 111, 101, 011, 001

第 4 题    单选题

 以下代码希望能在一棵二叉排序树中搜索特定的值,请在横线处填入( ),使其能正确实现相应功能。

A.

 target < root->left

B.

 target < root->val

C.

 target > root->val

D.

 target > root->left

第 5 题    单选题

 给定一个简单的类定义如下,( )语句在类的外部正确地创建了一个 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();

第 6 题    单选题

 在队列中,元素的添加和删除是按照( )原则进行的。

A.

 先进先出

B.

 先进后出

C.

 最小值先出

D.

 . 随机进出

第 7 题    单选题

 面向对象的编程思想主要包括以下哪些原则( )?

A.

 贪心、动态规划、回溯

B.

 并发、并行、异步

C.

 递归、循环、分治

D.

 封装、继承、多态

第 8 题    单选题

 在构建哈夫曼树时,每次应该选择( )合并。

A.

 最小权值的节点

B.

 最大权值的节点

C.

 随机节点

D.

 深度最深的节点

第 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

第 10 题    单选题

 一个有 124 个叶子节点的完全二叉树,最多有( )个结点。

A.

 247

B.

  248

C.

 249

D.

 250

第 11 题    单选题

 在求解最优化问题时,动态规划常常涉及到两个重要性质,即最优子结构和( 

A.

 重叠子问题

B.

 分治法

C.

 贪心策略

D.

 回溯算法

第 12 题    单选题

 若一棵二叉树的先序遍历为:A, B, D, E, C, F、中序遍历为:D, B, E, A, F, C,它的后序遍历为

A.

  D, E, B, F, C, A

B.

  E, D, B, F, C, A

C.

  D, E, B, C, F, A

D.

  E, D, B, C, F, A

第 13 题    单选题

 线性筛法与埃氏筛法相比的优势是( )。

A.

 更容易实现

B.

  更节省内存

C.

 更快速

D.

 更准确

第 14 题    单选题

 以下代码使用了辗转相除法求解最大公因数,请在横线处填入( ),使其能正确实现相应功能。

A.

 int temp = b; b = a / b; a = temp;

B.

 int temp = a; a = b / a; b = temp;

C.

 int temp = b; b = a % b; a = temp;

D.

  b = a % b; a = b;

第 15 题    单选题

 下面的代码片段用于反转单链表,请进行( )修改,使其能正确实现相应功能。

A.

 current->next = next; 应该改为 current->next = prev;

B.

 ListNode* next = current->next; 应该改为 ListNode* next = prev->next;

C.

 current != nullptr 应该改为 current->next != nullptr

D.

  ListNode* prev = nullptr; 应该改为 ListNode* prev = head;

第 16 题    判断题

 使用哈夫曼编码对一些字符进行编码,如果两个字符的频率差异最大,则它们的编码可能出现相同的前 缀。

A.
正确
B.
错误
第 17 题    判断题

 栈的基本操作包括入栈(push)和出栈(pop)。

A.
正确
B.
错误
第 18 题    判断题

 二叉搜索树的查找操作的时间复杂度是O(N) 。

A.
正确
B.
错误
第 19 题    判断题

  哈夫曼编码的主要应用领域是有损数据压缩。

A.
正确
B.
错误
第 20 题    判断题

 在宽度优先搜索中,通常使用队列来辅助实现。

A.
正确
B.
错误
第 21 题    判断题

 删除单向链表中的节点,只需知道待删除节点的地址即可,无需访问前一个节点。

A.
正确
B.
错误
第 22 题    判断题


  • 完全二叉树的任意一层都可以不满。

A.
正确
B.
错误
第 23 题    判断题

 继承是将已有类的属性和方法引入新类的过程。

A.
正确
B.
错误
第 24 题    判断题

 在动态规划中,状态转移方程的作用是定义状态之间的关系。

A.
正确
B.
错误
第 25 题    判断题

 哈夫曼树是一种二叉树。

A.
正确
B.
错误
第 26 题    问答题

 试题名称:好斗的牛

3.2.1 问题描述
你有 10⁹个牛棚,从左到右一字排开。你希望把 N头牛安置到牛棚里。麻烦的是,你的牛很好斗,如果他们附近有其他的牛,他们就会不安分地去挑事。其中,第i头牛的攻击范围是 (aᵢ,bᵢ),这意味着,如果他的左边 aᵢ个牛棚或右边 bᵢ个牛棚里有其他牛,他就会去挑事。
你想留下连续的一段牛棚,并把其他牛棚都卖掉。请问你最少需要留下多少牛棚,才能保证至少存在一种方案能够把所有的 N头牛都安置进剩余的牛棚里,且没有牛会挑事?
3.2.2 输入描述
第一行 1 个正整数 。
接下来一行 N个用空格隔开的正整数a₁,.....,aₙ 。
接下来一行 N个用空格隔开的正整数 b₁,....,bₙ。
3.2.3 输出描述
输出一行一个整数,表示你最少需要留下多少牛棚。
3.2.4 特别提醒
在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。
3.2.5 样例输入 1
2

第 27 题    问答题

 试题名称:游戏

3.1.1 题面描述
你有四个正整数n,a,b,c ,并准备用它们玩一个简单的小游戏。
在一轮游戏操作中,你可以选择将 n减去a ,或是将 n减去b 。游戏将会进行多轮操作,直到当n≤c 时游戏结束。
你想知道游戏结束时有多少种不同的游戏操作序列。两种游戏操作序列不同,当且仅当游戏操作轮数不同,或是某一轮游戏操作中,一种操作序列选择将n 减去a ,而另一种操作序列选择将 n减去b 。如果a=b ,也认为将b 减去a与将 n减去 b是不同的操作。
查看答案