问题描述:
python计算机二级易错选择题汇总3
问题解答:
难点主要是数据结构方面,这方面知识没有学过。
——————————————————————————————————————
3、设表的长度为n。在下列结构所对应的算法中,最坏情况下时间复杂度最低的是( )。
A.循环链表中寻找最大项
B.有序链表查找
C堆排序
D希尔排序
本题的考查知识点是时间复杂度。最坏情况下,希尔排序的时间复杂度为O(n1.5), 堆排序的时间复杂度是O(nlog2);有序链表查找的时间复杂度为O(n);循环链表中寻找 最大项的时间复杂度为O(n-1)。所以本题答案是A。
_____________________________________________________________________
5、下列叙述中正确的是( )。
A.算法的时间复杂度是指算法在执行过程中基本运算的次数
B.算法的时间复杂度是指算法执行所需要的时间
C.算法的时间复杂度是指算法护行的速度
D.算法复杂度是指算法控制结沟的复杂程度
算法的复杂度主要包括时间复杂度和空间复杂度:算法在运行过程中需辅助存储空间的大小称为算法的空间复杂度;算法的时间复杂度是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数。所以本题答案是A。
_________________________________________________________________
6、设二叉树中有20个叶子结点,5个度为1的结点,则该二叉树中总的结点数为( )。
A.44
B.46
C.45
D,不可能有这样的二叉树
二叉树的性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。本题中度为2的结点数为20-1=19,该二叉树的总结点数为20+5+19=44。所以本题答案是A。
_________________________________________________________________
10、设二叉树的中序序列为BCDA,前序序列为ABCD,则后序序列为( )。
A.DCBA
B.CBDA
C.BCDA
D.ACDB
要确定二叉树的后序序列,给定中序序列和前序序列,我们可以一步步构造二叉树并找到后序序列。我们有以下序列:
- 中序序列(Inorder):BCDA
- 前序序列(Preorder):ABCD
前序序列中的第一个节点是根节点。在这种情况下,前序序列的第一个节点是 A
。
步骤1:确定根节点
- 根节点是
A
。
步骤2:根据根节点分割中序序列
- 中序序列是 BCDA。
- 根节点
A
在中序序列中的位置是最后一个位置。因此,左子树的中序序列是 BCD,没有右子树。
步骤3:确定左子树的前序序列
- 左子树的前序序列在根节点
A
后面紧跟着的部分:BCD
。
步骤4:递归构造左子树
- 对于左子树,前序序列是
BCD
,中序序列是BCD
。 - 在前序序列中,
B
是根节点。 - 根节点
B
在中序序列中的位置是第一个位置。 B
后面的部分CD
构成右子树的中序序列,没有左子树。
步骤5:确定右子树的前序序列
- 对于右子树,前序序列是
CD
,中序序列是CD
。 - 在前序序列中,
C
是根节点。 - 根节点
C
在中序序列中的位置是第一个位置。 C
后面的部分D
构成右子树的中序序列,没有左子树。
步骤6:构造右子树的右子树
- 对于右子树的右子树,前序序列是
D
,中序序列是D
。 - 在前序序列中,
D
是根节点。
步骤7:确定后序序列
- 对于节点
D
,没有子树,所以后序序列是D
。 - 对于节点
C
,左子树为空,右子树后序序列是D
,所以后序序列是DC
。 - 对于节点
B
,左子树为空,右子树后序序列是DC
,所以后序序列是DCB
。 - 对于根节点
A
,左子树后序序列是DCB
,没有右子树,所以后序序列是DCBA
。
因此,后序序列为 DCBA
。
正确答案是: A. DCBA
____________________________________________________________________________
20、键盘输入数字5,以下代码的输出结果是( )。怀疑pow()函数可以处理字符串。
try:
n=input("请输入一个整数:")
print(type(n))
def pow2(n):
return n*n
except:
print("程序执行错误")
A.程序没有任何输出
B.25
C.出程序执行错误
D.5
————————————————————————————————————