202412 CCF-GESP编程能力等级认证Python六级真题 建议答题时长:60min
1. 单选题

关于哈夫曼树,下面说法正确的是( )。

A

不可能是满二叉树

B

哈夫曼树是一种用于数据压缩的二叉树

C

权值较大的结点离根较远

D

构建哈夫曼树的时间复杂度为O(logn)

2. 单选题

给定一组权值{3, 4, 7, 14, 15, 20},计算带其权路径长度(WPL)为( )。

A

147

B

146

C

142

D

145

3. 单选题

二叉树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. 单选题

 

一棵二叉树的前序遍历序列是 ABCDEFG,后序遍历序列是 CBFEGDA,则根结点的左子树的结点个数可能是( )。

A

2

B

3

C

4

D

5

5. 单选题

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

A

2k

B

2k+1

C

⌊k/2⌋

D

⌊(k+1)/2⌋

6. 单选题

如果根结点的深度记为 1,则一棵恰有 2011 个叶结点的二叉树的深度最少是( )。

A

10

B

11

C

12

D

13

7. 单选题

广度优先搜索时,需要用到的数据结构是( )。

A

链表

B

队列

C

D

散列表

8. 单选题

如果一个栈初始时为空,且当前栈中的元素从栈底到栈顶依次为 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. 单选题

在程序运行过程中,如果递归调用的层数过多,会因为( )引发错误。

A

系统分配的栈空间溢出

B

系统分配的堆空间溢出

C

系统分配的队列空间溢出

D

系统分配的链表空间溢出

10. 单选题

一棵具有 5 层的满二叉树中结点数为( )。

A

31

B

32

C

33

D

16

11. 单选题

今有一空栈

A

f

B

c

C

a

D

b

12. 单选题

如果根的高度为 1,具有 61 个结点的完全二叉树的高度为( )

A

5

B

6

C

7

D

8

13. 编程题

面向对象程序设计将对象作为程序的基本单元,将数据和程序封装在对象中,以提高软件的重用性、灵活性和扩展性。下面关于面向对象程序设计的说法中,不正确的是( )。

A

C:当前较为流行的面向对象的编程语言有 C++、JAVC# 等。

B

面向对象程序设计方法具有继承性、封装性和多态性等特点。

D

面向对象程序设计中对对象的成员属性的改变通常通过对象的成员函数实现。

查看答案
14. 单选题

前序遍历序列与中序遍历序列相同的二叉树为( )。

A

根结点无左子树

B

根结点无右子树

C

只有根结点的二叉树或非叶子结点只有左子树的二叉树

D

只有根结点的二叉树或非叶子结点只有右子树的二叉树

15. 单选题

下面程序是一个二叉排序树的,横线处应该填入的是( )。

 

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

 

   def search(self, key):

       current = self.root

       while current:

           if current.key == key:

               return current.value

           elif current.key > key:

               current = current.left

           else:

               current = current.right

       return None

   def inorder_traversal(self, node):

       if node:

           self.inorder_traversal(node.left)

           print(node.key, node.value)

           self.inorder_traversal(node.right)

A

if current.left is None:

   current.right = node

   return

B

if current.right is None:

   current.right = node

   return

C

if current.right is None:

   current.left = node

   return

D

if current.left is None:

   current.left = node

   return

16. 判断题

在哈夫曼树中,从树中一个结点到另一个结点之间的分支构成这两个结点间的路径。

A

B

17. 判断题

满二叉树每一层的结点个数都达到了最大值。

A

B

18. 判断题

如果一棵二叉树是满二叉树, 但是它不一定是完全二叉树。

A

B

19. 判断题

栈中元素的插入和删除操作都在栈的顶端进行,所以方便用双向链表比单向链表更合适表实现。

A

B

20. 判断题

格雷码是一种变权码,每一位码没有固定的大小。

A

B

21. 判断题

格雷码的基本特点就是任意两个相邻的代码只有一位二进制数不同。

A

B

22. 判断题

栈是一种只能在一端进行插入和删除操作的特殊线性表。

A

B

23. 判断题

最后进入队列的元素才能最先从队列中删除。

A

B

24. 判断题

当队列为满时,做出队运算产生的溢出现象,常用作程序控制转移的条件。

A

B

25. 判断题

 

在循环队列的上下文中,rear指针通常用于指示队列尾部元素的下一个位置,而不是直接指示队列尾部的元素。因此,rear的计算通常与入队操作相关。

A

B

26. 编程题

试题名称:树上游走

查看答案
27. 编程题

试题名称:运送物资

查看答案
试题目录
单选题
1 2 3 4 5 6 7 8 9 10 11 12
编程题
13
单选题
14 15
判断题
16 17 18 19 20 21 22 23 24 25
编程题
26 27
赣ICP备20007335号-2