#GESP202403C6T1. 单选题(每题 2 分,共 30 分)
单选题(每题 2 分,共 30 分)
第 1 题 在构建哈夫曼树时,每次应该选择( )合并。
{{ select(1) }}
- 最小权值的节点
- 最大权值的节点
- 随机节点
- 深度最深的节点
第 2 题 面向对象的编程思想主要包括以下哪些原则( )?
{{ select(2) }}
- 贪心、动态规划、回溯
- 并发、并行、异步
- 递归、循环、分治
- 封装、继承、多态
第 3 题 在队列中,元素的添加和删除是按照( )原则进行的。
{{ select(3) }}
- 先进先出
- 先进后出
- 最小值先出
- 随机进出
第 4 题 给定一个简单的类定义如下,( )语句在类的外部正确地创建了一个Circle
对象并调用了 getArea 函数?
{{ select(4) }}
Circle c = Circle(5.0); c.getArea(c);
Circle c(5.0); getArea(c);
Circle c = new Circle(5.0); c.getArea();
Circle c(5.0); c.getArea();
第 5 题 已知字符 0
的ASCII编码的十进制表示为48,则执行下面C++代码后,输出是( )
{{ select(5) }}
target < root->left
target < root->val
target > root->val
target > root->left
第 6 题 3 位格雷编码的正确顺序是( )。
{{ select(6) }}
- 000, 001, 010, 011, 100, 101, 110, 111
- 000, 001, 011, 010, 110, 111, 101, 100
- 000, 010, 001, 011, 100, 110, 101, 111
- 000, 010, 110, 100, 111, 101, 011, 001
第 7 题 以下动态规划算法的含义与目的是( )。
{{ select(7) }}
- 计算数组
nums
中的所有元素的和 - 计算数组
nums
中相邻元素的最大和 - 计算数组
nums
中不相邻元素的最大和 - 计算数组
nums
中的最小元素
第 8 题 阅读以下广度优先搜索的代码:
使用以上算法遍历以下这棵树,可能的输出是( )。
{{ select(8) }}
1 2 8 9 4 5 3 6 7 10 11
1 2 3 4 5 6 7 8 9 10 11
1 2 3 8 9 6 4 5 7 10 11
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()
最终栈中的元素是( )。
{{ select(9) }}
1, 2
1, 4, 5
1, 2, 5
1, 4
第 10 题 一个有 124 个叶子节点的完全二叉树,最多有( )个结点。
{{ select(10) }}
- 247
- 248
- 249
- 250
第 11 题 在求解最优化问题时,动态规划常常涉及到两个重要性质,即最优子结构和( )。
{{ select(11) }}
- 重叠子问题
- 分治法
- 贪心策略
- 回溯算法
第 12 题 若一棵二叉树的先序遍历为:A, B, D, E, C, F、中序遍历为:D, B, E, A, F, C,它的后序遍历为( )。
{{ select(12) }}
- D, E, B, F, C, A
- E, D, B, F, C, A
- D, E, B, C, F, A
- E, D, B, C, F, A
第 13 题 线性筛法与埃氏筛法相比的优势是( )。
{{ select(13) }}
- 更容易实现
- 更节省内存
- 更快速
- 更准确
第 14 题 以下代码使用了辗转相除法求解最大公因数,请在横线处填入( ),使其能正确实现相应功能。
{{ select(14) }}
int temp = b; b = a / b; a = temp;
int temp = a; a = b / a; b = temp;
int temp = b; b = a % b; a = temp;
b = a % b; a = b;
第 15 题 下面的代码片段用于反转单链表,请进行( )修改,使其能正确实现相应功能。
{{ select(15) }}
current->next = next;
应该改为current->next = prev;
ListNode* next = current->next;
应该改为ListNode* next = prev->next;
current != nullptr
应该改为current->next != nullptr
ListNode* prev = nullptr;
应该改为ListNode* prev = head;