【202609】Python六级

从PDF导入:【202609】Python六级

Python 120分钟 总分 99.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
下面代码执行后的输出结果是( )。

A. Animal
B. Cat
C. Animal Cat
D. 编译错误
第2题 中级 2.0分 单选
下面代码横线处填写哪一项,才可以正确调用父类的带参数构造函数?( )

A. Machine(s)
B. Machine.Machine(s)
C. super().init(s)
D. self.id = s
第3题 中级 2.0分 单选
下面代码执行后的输出顺序是( )。

A. B D ~D ~B
B. B D ~D
C. D B ~D ~B
D. B D
第4题 中级 2.0分 单选
下面代码执行后的输出结果是( )。

A. 4 4
B. 2 2
C. 6 6
D. 6 2
第5题 中级 2.0分 单选
下面循环队列采用牺牲一个存储单元(空出一个位置)的方法区分队空与队满,full() 函数判断队列是否已满,横线处应填写( )。

A. rear == front
B. (front + 1) % MAXN == rear
C. (rear + 1) % MAXN == front
D. rear == MAXN - 1
第6题 中级 2.0分 单选
下列函数属于二叉树哪一种遍历( )。

A. 前序遍历
B. 中序遍历
C. 后序遍历
D. 层序遍历
第7题 中级 2.0分 单选
已知一棵二叉树的先序遍历序列为 A B D E C F,中序遍历序列为 D B E A C F,则其后序遍历序列是( )。
A. D E B F C A
B. D B E F C A
C. E D B F C A
D. D E B C F A
第8题 中级 2.0分 单选
下面函数用来计算二叉树的高度,横线处应填写( )。

A. leftH + rightH
B. min(leftH, rightH) + 1
C. max(leftH, rightH)
D. max(leftH, rightH) + 1
第9题 中级 2.0分 单选
下面代码实现二叉树深度优先搜索(迭代版前序遍历),横线处应当填写( )。

A.
B.
C.
D.
第10题 中级 2.0分 单选
下面函数用于在二叉搜索树里查找数值 x,横线处应当填写( )。

A. searchBST(root.left, x)
B. searchBST(root.right, x)
C. searchBST(root, x + 1)
D. root.right
第11题 中级 2.0分 单选
有 5 个字符,其出现频率分别为 {2, 4, 5, 9, 12}。按哈夫曼算法构造编码树,其最小带权路径长度 WPL 为( )。
A. 68
B. 69
C. 71
D. 73
第12题 中级 1.0分 单选
下面代码使用反射法生成 n 位格雷编码,横线处应该填写( )。

A. "1" + ans[i]
B. ans[i]
C. "1" + str(i)
D. "0" + ans[i]
第13题 中级 2.0分 单选
下面代码计算爬到第 n 级台阶的方案数,每次可以跨 1 级或者 2 级台阶,横线处应填写( )。

A. dp[i - 1] + 1
B. dp[i - 1] + dp[i - 2]
C. dp[i - 2] + 2
D. 2 * dp[i - 1]
第14题 中级 2.0分 单选
代码求解决:从包含非负元素的数组选取若干互不相邻的元素,得到最大和,横线处填写( )。

A. dp[i - 1] + a[i]
B. dp[i - 2] + a[i]
C. max(dp[i - 1], dp[i - 2] + a[i])
D. max(dp[i - 1], a[i])
第15题 中级 2.0分 单选
下面是一维数组实现的 0/1 背包,内层循环必须从大到小枚举容量,主要原因是( )。

A. 保证每件物品最多被选择一次
B. 保证物品必须按照重量从大到小选择
C. 降低时间复杂度到 O(n)
D. 防止数组 dp 发生越界
第16题 中级 2.0分 判断
下面这段描述:代码可以运行时出错,编译器会自动为 Student 生成无参数构造函数。

T. 正确
F. 错误
第17题 中级 2.0分 判断
下面代码是合法的,派生类可以直接访问基类的私有成员 value。

T. 正确
F. 错误
第18题 中级 2.0分 判断
下面代码执行后,输出结果为 30。

T. 正确
F. 错误
第19题 中级 2.0分 判断
一棵完全二叉树按照从上到下、从左到右的顺序,将节点依次存储在数组 tree[1]、tree[2]、……中。若节点 tree[i] 存在左孩子,则其左孩子存储在 tree[2*i] 中。
T. 正确
F. 错误
第20题 中级 2.0分 判断
对任意一棵左节点更小的二叉搜索树执行中序遍历,得到的关键字序列一定是非递减的。

T. 正确
F. 错误
第21题 中级 2.0分 判断
从结点 start 出发运行下面代码访问一棵树:第一次抵达某个结点时经过的边数,一定是 start 到达该结点的最少边数。

T. 正确
F. 错误
第22题 中级 2.0分 判断
哈夫曼编码的生成过程基于贪心算法,出现频率越高的字符,其编码长度一定不会比出现频率更低的字符更长。
T. 正确
F. 错误
第23题 中级 2.0分 判断
在 n 位格雷码中,任意两个编码之间都只相差一个二进制位。
T. 正确
F. 错误
第24题 中级 2.0分 判断
下列一维 DP 代码实现的是完全背包问题。处理第 i 种物品时,同一物品有可能被重复选取。

T. 正确
F. 错误
第25题 中级 2.0分 判断
下面递归函数可以算出正确的斐波那契数值,该代码时间复杂度与空间复杂度均为 O(n)。

T. 正确
F. 错误
第26题 中级 25.0分 编程
数组划分

时间限制:1.0 s
内存限制:512.0 MB
题目描述
给定 n 个整数构成的数组 A = [a₁, a₂, …, aₙ]。
你需要将数组 A 划分为若干非空连续子段。对于划分得到的某个子段,它的偏差值定义为子段内整数和的平方。则划分方案的偏差值定义为所有子段偏差值之和。
你需要最小化划分方案的偏差值。
形式化地,你可以将 A 划分为若干非空连续子段 A₁, A₂, …, A_k,使得 A = A₁ + A₂ + … + A_k,这里的 + 代表数组的连接。对于 1 ≤ i ≤ k,设数组 Aᵢ = [a₁⁽ⁱ⁾, …, a_m⁽ⁱ⁾] 包含 mᵢ 个整数。你需要最小化 ∑ᵢ₌₁ᵏ (∑ⱼ₌₁^{mᵢ} a_j⁽ⁱ⁾)²。

【输入格式】
第一行,一个正整数 n,表示数组 A 的长度。
第二行,n 个整数 a₁, a₂, …, aₙ,表示数组 A。
【输出格式】
一行,一个整数,表示划分方案偏差值的最小值。
输入样例 1:<img src="/static/uploads/images/934c07592b40.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
输出样例 1:6
输入样例 2:<img src="/static/uploads/images/878552ba09a4.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
输出样例 2:0

数据范围
对于 40% 的测试点,保证 0 ≤ aᵢ ≤ 50。
对于所有测试点,保证 1 ≤ n ≤ 2000,-100 ≤ aᵢ ≤ 100。
第27题 中级 25.0分 编程
分树规划

时间限制:1.0 s
内存限制:512.0 MB
题目描述
老师有一棵有 n 个结点的树,结点依次以 1, 2, …, n 编号。
老师想将棵操作为奖品分给两位同学。具体而言,老师会选择一条边并从树上删去它,从而将这棵树分为两个连通块。两位同学分别可以得到其中一个连通块。
如果有同学拿到的连通块结点数量明显小于另一位同学,那么这位同学会不太高兴。为了避免这种情况出现,老师想知道两个连通块结点数之差的绝对值最小是多少。

【输入格式】
第一行,一个正整数 n,表示结点数量。
接下来 n − 1 行,每行两个正整数 uᵢ, vᵢ,表示一条连接结点 uᵢ 和结点 vᵢ 的边。
【输出格式】
输出一行,一个整数,表示答案。
输入样例 1:<img src="/static/uploads/images/2a4f75e96c4e.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
输出样例 1:0
输入样例 2:<img src="/static/uploads/images/a3a12e5b1fbb.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
输出样例 2:2

数据范围
对于 40% 的测试点,保证 2 ≤ n ≤ 500。
对于所有测试点,保证 2 ≤ n ≤ 2 × 10⁴。
💬