万卷网> GESP认证 >Python > 2025年6月CCF—GESP(Python六级)编程能力等级认证试卷

2025年6月CCF—GESP(Python六级)编程能力等级认证试卷
六级 2025 2026-07-13 14:52:04 46

一、单选题

1.

给定一个二叉树,返回每一层中最大的节点值,结果以数组形式返回,横线处应填入( )。

A.

node = queue.popright()

max_val = max(max_val, node.val)

B.

node = queue.popleft()

C.

max_val = max(max_val, node.val)

D.

node = queue.popleft()

max_val = max(max_val, node.val)

2.

以下Python代码执行后其输出是( )。

A.

1 3

B.

3 1

C.

3 3

D.

1 1

3.

下列哪一项不是面向对象编程(OOP)的基本特征

A.

继承 (Inheritance)

B.

封装 (Encapsulation)

C.

多态 (Polymorphism)

D.

链接 (Linking)

4.

在使用数组表示完全二叉树时,如果一个节点的索引为 (从 开始计数),那么其左子节点的索引通常是( )。

A.

B.

C.

D.

5.

下面代码实现一个二叉排序树的插入函数(没有相同的数值),横线处应填入( )。

A.

B.

C.

D.

6.

在二叉树中,只有最底层的节点未被填满,且最底层节点尽量靠左填充的是( )。

A.

完美二叉树

B.

完全二叉树

C.

完满二叉树

D.

平衡二叉树

7.

以下关于动态规划算法特性的描述,正确的是( )。

A.

子问题相互独立,不重叠

B.

问题包含重叠子问题和最优子结构

C.

只能从底至顶迭代求解

D.

必须使用递归实现,不能使用迭代

8.

在一个使用列表实现的循环队列中,front 表示队头元素的位置(索引),rear 表示队尾元素的下一个插入位置(索引),队列的最大容量为 maxSize。那么判断队列已满的条件是( )

A.

rear == front

B.

(rear + 1) % maxSize == front

C.

(rear - 1 + maxSize) % maxSize == front

D.

(rear - 1) == front

9.

为了让 Dog 类的构造函数能正确地调用其父类 Animal 的构造方法,横线线处应填入( )

A.

B.

C.

D.

10.

已知一棵二叉树的前序遍历序列为 GDAFEMHZ ,中序遍历序列为 ADFGEHMZ ,则其后序遍历序列为( )。

A.

ADFGEHMZ

B.

ADFGHMEZ

C.

AFDGEMZH

D.

AFDHZMEG

11.

给定"个物品和一个最大承重为w的背包 ,每个物品有一个重量wuti和价值oalli ,每个物品只能选择放或不放 。 目标是选择若干个物品放入背包 ,使得总价值最大 ,且总重量不超过 。关于下面代码 ,说法正确的是  ()  。

def knapsack1D(W: int, wt: list[int], val: list[int], n: int) -> int:
    dp = [0] * (W + 1)
    for i in range(n):
        for w in range(W, wt[i] - 1, -1):
            dp[w] = max(dp[w], dp[w - wt[i]] + val[i])
    return dp[W]
A.

该算法不能处理背包容量为 0 的情况

B.

外层循环 i 遍历背包容量, 内层遍历物品

C.

从大到小遍历 w 是为了避免重复使用同一物品

D.

这段代码计算的是最小重量而非最大价值

12.

请将下列 Python 实现的深度优先搜索(DFS)代码补充完整,横线处应填入( )

A.

result.append(root.val)

dfs_preorder(root.left, result)

dfs_preorder(root.right, result)

B.

result.append(root.val)

dfs_preorder(root.left, result)

C.

result.append(root.val)

dfs_preorder(root.right, result)

D.

dfs_preorder(root.left, result)

dfs_preorder(root.right, result)

13.

设有字符集 {a, b, c, d, e},其出现频率分别为 {5, 8, 12, 15, 20},得到的哈夫曼编码为( )。

A.

B.

C.

D.

14.

代码同上一题,代码animal.speak()执行后输出结果是( )。

A.

输出 Animal speaks

B.

输出 Dog barks

C.

编译错误

D.

程序崩溃

15.

3位格雷编码中,编码 101 之后的下一个编码是( )。

A.

100

B.

101

C.

001

D.

110

二、判断题

1.

构造函数只能自动不可以被手动调用。

A.正确 B.错误
2.

如果二叉搜索树在连续的插入和删除操作后,所有节点都偏向一侧,导致其退化为类似于链表的结构,这时其查找、插入、删除操作的时间复杂度会从理想情况下的

A.正确 B.错误
3.

对一棵从小到大的二叉排序树进行中序遍历,可以得到一个递增的有序序列。

A.正确 B.错误
4.

为了实现一个队列,使其出队操作( pop )的时间复杂度为O(1)并且避免数组删除首元素的O(n)问题,一 种常见且有效的方法是使用环形数组,通过调整队首和队尾指针来实现。

A.正确 B.错误
5.

下列 python 代码可以成功执行,并且子类 Child 的实例能通过其成员函数访问父类 Parent 的属性value

A.正确 B.错误
6.

下面代码采用动态规划求解零钱兑换问题:给定n种硬币,第i 种硬币的面值为coins[i-1] ,目标金额为amt,每种硬币可以重复选取,求能够凑出目标金额的最少硬币数量;如果不能凑出目标金额,返回 -1 。

A.正确 B.错误
7.

在树的深度优先搜索(DFS)中,可以使用栈作为辅助数据结构以实现“先进后出”的访问顺序。

A.正确 B.错误
8.

下列代码中的 tree 列表,表示的是一棵完全二叉树 ( -1 代表空节点)按照层序遍历的结果。

A.正确 B.错误
9.

执行下列代码, my_dog.name 的最终值是 Charlie

A.正确 B.错误
10.

给定一组字符及其出现的频率,构造出的哈夫曼树是唯一的。

A.正确 B.错误

三、编程题

1.

学习小组

2.

最大因数

公众号
客服 反馈
顶部