GESP2024年12月Python六级试卷

从PDF导入:GESP2024年12月Python六级试卷

Python 180分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
关于哈夫曼树,下面说法正确的是( )。
A. 不可能是满二叉树
B. 哈夫曼树是一种用于数据压缩的二叉树
C. 权值较大的结点离根较远
D. 构建哈夫曼树的时间复杂度为O(n²)
第2题 中级 2.0分 单选
给定一组权值{3, 4, 7, 14, 15, 20},计算其带权路径长度(WPL)为( )。
A. 147
B. 146
C. 142
D. 145
第3题 中级 2.0分 单选
二叉树T,已知其先根遍历是1 2 4 3 5 7 6(数字为结点的编号,以下同),中根遍历是2 4 1 5 7 3 6,则该二叉树的后根遍历是( )。
A. 4 2 5 7 6 3 1
B. 4 2 7 5 6 3 1
C. 7 4 2 5 6 3 1
D. 4 2 7 6 5 3 1
第4题 中级 2.0分 单选
一棵二叉树的前序遍历序列是ABCDEFG,后序遍历序列是CBFEGDA,则根结点的左子树的结点个数可能是( )。
A. 2
B. 3
C. 4
D. 5
第5题 中级 2.0分 单选

完全二叉树的顺序存储方案,是指将完全二叉树的结点从上至下、从左至右依次存放到一个顺序结构的数组中。假定根结点存放在数组的 1 号位置,则第 k 号结点的父结点如果存在的话,应当存放在数组的( )号位置。

A. 2k
B. 2k+1
C. ⌊k/2⌋
D. ⌊(k+1)/2⌋
第6题 中级 2.0分 单选
如果根结点的深度记为1,则一棵恰有2011个叶结点的二叉树的深度最少是( )。
A. 10
B. 11
C. 12
D. 13
第7题 中级 2.0分 单选
广度优先搜索时,需要用到的数据结构是( )。
A. 链表
B. 队列
C.
D. 散列表
第8题 中级 2.0分 单选
如果一个栈初始时为空,且当前栈中的元素从栈底到栈顶依次为a,b,c,另有元素d已经出栈,则可能的入栈顺序是( )。
A. a,d,c,b
B. b,a,c,d
C. a,c,b,d
D. d,a,b,c
第9题 中级 2.0分 单选
在程序运行过程中,如果递归调用的层数过多,会因为( )引发错误。
A. 系统分配的栈空间溢出
B. 系统分配的堆空间溢出
C. 系统分配的队列空间溢出
D. 系统分配的链表空间溢出
第10题 中级 2.0分 单选
一棵具有5层的满二叉树中结点数为( )。
A. 31
B. 32
C. 33
D. 16
第11题 中级 2.0分 单选
今有一空栈S,对下列待进栈的数据元素序列a,b,c,d,e,f依次进行进栈,进栈,出栈,进栈,进栈,出栈的操作,则此操作完成后,栈S的栈顶元素为( )。
A. f
B. c
C. a
D. b
第12题 中级 2.0分 单选
如果根的高度为1,具有61个结点的完全二叉树的高度为( )。
A. 5
B. 6
C. 7
D. 8
第13题 中级 2.0分 单选
面向对象程序设计将对象作为程序的基本单元,将数据和程序封装在对象中,以提高软件的重用性、灵活性和扩展性。下面关于面向对象程序设计的说法中,不正确的是( )
A. 面向对象程序设计一般不采用自顶向下设计方法进行设计
B. 面向对象程序设计方法具有继承性、封装性和多态性等特点
C. 当前较为流行的面向对象的编程语言有C++、JAVA、C#等
D. 面向对象程序设计中对对象的成员属性的改变通常通过对象的成员函数实现
第14题 中级 2.0分 单选
前序遍历序列与中序遍历序列相同的二叉树为( )。
A. 根结点无左子树
B. 根结点无右子树
C. 只有根结点的二叉树或非叶子结点只有左子树的二叉树
D. 只有根结点的二叉树或非叶子结点只有右子树的二叉树
第15题 中级 2.0分 单选
下面程序是一个二叉排序树的插入操作,横线处应该填入的是( )。

class BinarySortTree:
def __init__(self):
self.root = None
def insert(self, key, value):
node = TreeNode(key, value)
if self.root is None:
self.root = node
return
current = self.root
while True:
if key < current.key:
___________________________
current = current.left
else:
if current.right is None:
current.right = node
return
current = current.right
if current.left is None:
current.right = node
return
if current.right is None:
current.right = node
return
if current.right is None:
current.left = node
return
if current.left is None:
current.left = node
return

第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分 判断
最后进入队列的元素才能最先从队列中删除。( )
T. 正确
F. 错误
第24题 中级 2.0分 判断
当队列为满时,做出队运算产生的溢出现象,常用作程序控制转移的条件。( )
T. 正确
F. 错误
第25题 中级 2.0分 判断
在循环队列的上下文中,rear指针通常用于指示队列尾部元素的下一个位置,而不是直接指示队列尾部的元素。因此,rear的计算通常与入队操作相关。( )
T. 正确
F. 错误
第26题 中级 25.0分 编程
树上游走

时间限制:1.0 s 内存限制:512.0 MB
题面描述:小杨有一棵包含无穷节点的二叉树(即每个节点都有左儿子节点和右儿子节点;除根节点外,每个节点都有父节点),其中根节点的编号为1,对于节点i,其左儿子的编号为2i,右儿子的编号为2i+1。
小杨会从节点s开始在二叉树上移动,每次移动为以下三种移动方式的任意一种:
第1种移动方式:如果当前节点存在父亲节点,向上移动到当前节点的父亲节点,否则不移动;
第2种移动方式:移动到当前节点的左儿子;
第3种移动方式:移动到当前节点的右儿子。
小杨想知道移动n次后自己所处的节点编号。数据保证最后的所处的节点编号不超过10^12。

【输入格式】
第一行包含一个正整数n和s,代表移动次数和初始节点编号。第二行包含一个长度为n且仅包含大写字母U、L、R的字符串,代表每次移动的方式,其中U代表第1种移动方式,L代表第2种移动方式,R代表第3种移动方式。
【输出格式】
输出一个正整数,代表最后所处的节点编号。
【样例】
样例输入:
3 2
URR
样例输出:
7
样例解释:小杨的移动路线为2-1-3-7。
第27题 中级 25.0分 编程
运送物资

时间限制:2.0 s 内存限制:512.0 MB
题面描述:小杨管理着m辆货车,每辆货车每天需要向A市和B市运送若干次物资。小杨同时拥有n个运输站点,这些站点位于A市和B市之间。
每次运送物资时,货车从初始运输站点出发,前往A市或B市,之后返回初始运输站点。A市、B市和运输站点的位置可以视作数轴上的三个点,其中A市的坐标为0,B市的坐标为x,运输站点的坐标为p且有0对于第i个运输站点,其位置为p_i且至多作为c_i辆车的初始运输站点。小杨想知道,在最优分配每辆货车的初始运输站点的情况下,所有货车每天的最短总行驶路程是多少。

【输入格式】
第一行包含三个正整数n, m, x,代表运输站点数量,货车数量和两市距离。之后n行,每行包含两个正整数p_i, c_i,代表第i个运输站点的位置和最多容纳车辆数。之后m行,每行包含两个正整数a_i, b_i,代表第i辆货车每天需要向A市运送a_i次物资,向B市运送b_i次物资。
【输出格式】
输出一个正整数,代表所有货车每天的最短总行驶路程。
【样例】
样例输入:
3 4 10
1 1
2 1
8 3
5 3
7 2
9 0
1 10000
样例输出:
40186
💬