2025年12月CCF—GESP(Python七级)编程能力等级认证试卷
剩余时间 --:--:--
单选题 共 15 题
1.

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

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)
3.

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

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

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

5.

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

6.

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

7.

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

8.

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

9.

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

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} 。以下哪个序列是它们的最长公共子序列( )。

11.

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

12.

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

13.

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

14.

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

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))
判断题 共 10 题
1.

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

2.

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

3.

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

4.

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

5.

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

6.

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

7.

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

8.

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

9.

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

10.

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

填空题 共 1 题
1.

城市规划

编程题 共 1 题
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

C++ 编辑器
输入
输出