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

2025年12月CCF—GESP(Python七级)编程能力等级认证试卷
七级 2025 2026-07-17 18:33:01 104

一、单选题

1.

下面这个有向图的强连通分量的个数是(  )。

A.

3

B.

4

C.

5

D.

6

2.

下面程序的运行结果为( )。

def query(n, a, x): 
    left = 0 
    right = n 
    while left < right: 
        mid = left + (right - left) // 2 
        if a[mid] >= x: 
            right = mid 
        else: 
            left = mid + left 
    if left == n: 
        return -1 
    return left 
if __name__ == "__main__": 
    n = 10 
    x = 3 
    num = [1, 2, 2, 3, 3, 4, 5, 5, 6, 7] 
    result = query(n, num, x) 
    print(result)
A.

2

B.

3

C.

4

D.

5

3.

下面程序的运行结果为( )。

def f(n): 
    if n &lt;= 2: 
        return n * 2 
    return f(n - 1) + f(n - 2) 
if __name__ == "__main__": 
        print(f(5))
A.

10

B.

16

C.

26

D.

30

4.

有5个字符,它们出现的次数分别为2次、2次、3次、3次、5次。现在要用哈夫曼编码的方式来为这些字符进行编码,最小加权路径长度WPL(每个字符的出现次数 它的编码长度,再把每个字符结果加起来)的值为( )。

A.

30

B.

34

C.

43

D.

47

5.

下面关于二叉树的说法正确的是( )。

A.

任意二叉树的中序遍历与后序遍历必定不相同。

B.

对任意二叉树,若已知先序遍历与后序遍历,则该二叉树唯一确定。

C.

若二叉树有 n个结点,根节点高度为 1,则其高度满足:

D.

在二叉树的先序遍历中,根后紧跟的结点一定是根的左孩子。

6.

下面哪一个可能是下图的深度优先遍历序列( )。

A.

1, 5, 6, 3, 2, 8, 9, 4, 7

B.

1, 5, 8, 9, 7, 4, 6, 3, 2

C.

3, 2, 1, 4, 7, 6, 9, 5, 8

D.

2, 5, 6, 3, 8, 7, 9, 4, 1

7.

下面关于Python中形参、实参和作用域的说法中,错误的一项是( )。

A.

形参是函数定义时声明的参数,仅在函数内部的作用域中有效

B.

实参是调用函数时传递给函数的实际值,会按对应关系绑定到形参

C.

函数内部修改形参的值,一定会影响外部实参的取值(无论实参类型)

D.

若函数内要修改全局作用域的变量,需通过 global 关键字声明

8.

现有一个地址区间为0~10 的哈希表,当出现冲突情况,会往后找第一个空的地址存储(到 10 冲突了就从 0开始往后),现在要依次存储(1,3,5,7,9) ,哈希函数为h(x)=(x²+x)mod 11 。其中 9 存储在哈希表哪个地址中( )。

A.

1

B.

2

C.

3

D.

4

9.

一个简单无向图 G 有36条边,且每个顶点的度数都为4,则图 G 的顶点个数为( )。

A.

9

B.

12

C.

18

D.

36

10.

已知三个序列: s1 = {3, 1, 8, 2, 5, 6, 7, 4} , s2 = {1, 5, 1, 8, 6, 4, 7, 5, 6} , s3 ={1, 8, 3, 5, 7, 6, 2, 4} 。以下哪个序列是它们的最长公共子序列( )。

A.

{1, 8, 5, 6}

B.

{1, 5, 6, 7}

C.

{1, 8, 6}

D.

{1, 5, 7, 4}

11.

假设一个算法时间复杂度的递推式是(n为正整数),和T(0)=1,那么这个算法的时间复杂度是( )。

A.

B.

C.

D.

12.

在0/1背包问题中,给定一组物品,每个物品有一个重量和价值,背包的容量有限。假设背包的最大容量为 W,物品的数量为 n,其中第 i个物品的重量为 w[i],价值为 v[i]。以下关于0/1背包问题的描述,正确的是( )。

A.

在解决0/1背包问题时,使用贪心算法可以保证找到最优解,因为物品只能放入一次。

B.

0/1背包是P问题(多项式时间可解问题),它可以在 O(nW)的时间复杂度内解决。

C.

0/1背包问题中,动态规划解法的空间复杂度为O(nW),但可以通过滚动数组技巧将空间复复杂优化到 O(W)。

D.

0/1背包问题中,每个物品只能选择一次,并且子问题之间是独立的,无法重用计算结果。

13.

一棵深度为 6(根节点深度为1)的完全二叉树,节点总数最少有( )。

A.

31

B.

32

C.

63

D.

64

14.

对于如下二叉树,下面关于访问的顺序说法错误的是( )。

A.

D E B F H J I G C A 是它的后序遍历序列。

B.

A B C D E F G H I J 是它的广度优先遍历序列。

C.

A B D E C F G H I J 是它的先序遍历序列。

D.

D B E A F C H G J I 是它的中序遍历序列。

15.

下面程序中,函数 query 的时间复杂度是( )。

def query(n, a, x): 
    left = 0 
    right = n 
    while left < right: 
        mid = left + (right - left) // 2 
        if a[mid] >= x: 
            right = mid 
        else: 
            left = mid + 1 
    if left == n: 
        return -1 
    return left 
if __name__ == "__main__": 
    n = 10 
    x = 3 
    num = [1, 2, 2, 3, 3, 4, 5, 5, 6, 7] 
    print(query(n, num, x))
A.

O(1)

B.

O(log n)

C.

O(n)

D.

O(n log n)

二、判断题

1.

Python语言中,表达式 3 ^ 2 的结果类型为 int ,值为 1 。

A.正确 B.错误
2.

一个包含 V 个顶点的连通无向图,其任何一棵生成树都恰好包含 V-1 条边。

A.正确 B.错误
3.

使用 math 模块中的正弦函数,表达式 math.sin(90) 的结果类型为 double ,值约为 1 。

A.正确 B.错误
4.

选择排序是一种不稳定的排序算法,而冒泡排序是一种稳定的排序算法。

A.正确 B.错误
5.

在无向图中,所有顶点的度数之和等于边数的两倍。

A.正确 B.错误
6.

使用Python的字符串比较方式对比 "10" 和 "9" ,表达式 "10" > "9" 的结果为 True

A.正确 B.错误
7.

在图像处理或游戏开发中,泛洪(flood fill)算法既可以用BFS实现,也可以用DFS实现。

A.正确 B.错误
8.

使用链地址法处理冲突的哈希表,当所有元素都映射到同一个槽位时,查找操作的最坏时间复杂度为O(n),其中 n 为元素个数。

A.正确 B.错误
9.

求两个长度为 n 序列的最长公共子序列(LCS)长度时,可以使用滚动数组将空间复杂度从 O(n²)优化到 O(n)。

A.正确 B.错误
10.

使用邻接矩阵存储一个有 V 个顶点、E 条边的图,对该图进行一次完整的BFS遍历,时间复杂度为 O(V+E)。

A.正确 B.错误

三、编程题

1.

学习小组

3.2.3 输出格式

输出一行,一个整数,表示所有划分方案中,学习小组综合讨论积极度之和的最大值。

3.2.4.1 输入样例 1

4
2 1 3 2
1 5 6 3

3.2.4.2 输出样例 1

12

3.2.4.3 输入样例 2

8
1 3 2 4 3 5 4 6
0 2 5 6 4 3 3 4

3.2.4.4 输出样例 2

21

2.

城市规划

公众号
客服 反馈
顶部