GESP_2026年06月_Python七级试卷
从PDF导入:GESP_2026年06月_Python七级试卷
试卷题目预览
下列 Python 代码的输出结果是( )。
import math
print(int(math.sqrt(50) + math.log2(8)))
在 Python 中,已导入 math 模块。下列关于数学库函数的说法,正确的是( )。
在 Python 中,关于函数参数传递的说法,正确的是( )。
有 5 个字符,它们出现的次数分别为 3、4、5、6、7。使用哈夫曼编码时,最小 WPL 为( )。
有 5 个字符,它们出现的次数分别为 3、4、5、7、10。使用哈夫曼编码时,最小 WPL 为( )。
有 5 个字符,它们出现的次数分别为 3、4、_、_、_(原文部分数据缺失)。使用哈夫曼编码时,最小 WPL 为( )。
若 dp[i][j] 表示从网格 a[i][j] 左上角走到第 i 行第 j 列时能取得的最大数字和,且每次只能向右或向下移动。对于 i > 1 且 j > 1
已知 f[0] = 0,f[1] = 2,并且对 i ≥ 2 有 f[i] = max(f[i-1], f[i-2] + a[i])。若数组 a = [0, 2
下面代码是一维数组优化 0/1 背包的核心片段,横线处应填入( )。
for i in range(1, n + 1):
for c in range(W, w[i] - 1, -1):
__________
下面程序片段主要体现的算法思想是( )。
def dfs(x, y):
vis[x][y] = True
for k in range(4):
nx = x + dx[k]
ny = y + dy[k]
if inside(nx, ny) and a[nx][ny] == 1 and not vis[nx][ny]:
dfs(nx, ny)
下列关于排序稳定性的说法,正确的是( )。
无向图的边为 (1,2), (1,3), (2,4), (3,4), (4,5)。从顶点 1 开始进行 BFS,每次根据出队顶点,将与其相邻顶点按编号从小到大入
一个长度为 11、下标为 0 到 10 的哈希表采用线性探测法处理冲突,哈希函数为 h(x) = x % 11。依次插入 22、33、4、15、26,则 26
关于哈希表处理冲突的方法,下列说法正确的是( )。
某算法需要枚举 n 个对象;对每个对象,还需要进行一次二分查找。若二分查找的对象规模也是 n,则该算法的时间复杂度通常为( )。
在升序数组中用二分查找第一个大于等于 x 的位置。若当前中点 mid 满足 a[mid] < x,下一步应( )。
在如下网格中,从左上角走到右下角,每次只能向右或向下移动,# 表示不能经过的格子。不同路径共有( )条。
. . . . .
. # . # .
. . . . .
# . # . .
. . . . .
使用 cmath 中的三角函数时,角度参数默认采用弧度制。
0/1 背包使用一维数组优化时,容量从小到大枚举也能保证每件物品最多被选一次。
哈希表采用开放定址法时,即使哈希函数设计合理,也仍然可能发生冲突。
同一个图从同一个起点进行深度优先搜索,访问序列一定与邻接点的枚举顺序无关。
泛洪算法可以用递归 DFS 实现,但地图很大时递归层数过深可能导致运行时错误。
哈夫曼树中不存在度为 1 的结点。
冒泡排序在只交换相邻逆序元素的常见实现中是稳定排序,而选择排序通常不是稳定排序。
在无权图中从起点执行 BFS 时,某个顶点第一次被访问到的层数等于起点到该顶点经过的最少边数。
在二维动态规划中,状态 dp[i][j] 的计算通常可以依赖已经计算过的其他状态。
使用 math 模块中的 math.pow(2, 10) 计算 2¹⁰ 时,返回值类型为 int 而不是浮点型。
. 染色
小杨同学有一张包含 n 个结点的无向图 G,G 中的结点依次以 1, 2, …, n 编号。
小杨同学发现 G 中每个结点的度数都是 2。显然 G 中恰好有 n 条边。
小杨同学想为 G 中的结点染色,使得任意一条边两端的结点都有不同的颜色。
小杨同学想知道最少需要多少种颜色才能在满足条件的前提下为 G 染色。
对于 40% 的测试点,保证 n ≤ 500,n 指每个输入中多组数据的 n 的总和。
对于所有测试点,保证 1 ≤ T ≤ 100,3 ≤ n ≤ 10⁵,∑n ≤ 10⁵。保证 G 中没有重边与自环。
本题包含多组数据。 第一行,一个正整数 T,表示数据组数。 对于每组数据: 第一行,一个正整数 n,表示无向图 G 中的结点数。 接下来 n 行,每行两个正整数 uᵢ, vᵢ,表示一条连接结点 uᵢ 与 vᵢ 的无向边,整数之间以空格分隔。 保证 G 中没有重边与自环。
对于每组数据:输出一行,一个整数,表示在满足条件的前提下为 G 染色需要的最少颜色数。
2 6 1 2 2 3 3 4 4 5 5 6 6 1 5 1 2 2 3 3 4 4 5 5 1
2 3
. 消消乐
给定一个由 n 个整数构成的数组 a = [a₁, …, aₙ]。每次你可以对数组 a 进行以下操作,直到数组 a 变为空:
指定 a 中的一个元素,获得该元素两侧相邻元素之和的分数,并将该元素从 a 中删去。
特别地,如果相邻元素不存在则该元素的值视为 0。例如,对于 a = [1, 2, 3] 可以进行以下操作:
指定元素 2,获得分数 1 + 3,删去 2 后 a = [1, 3];
指定元素 1,获得分数 0 + 3,删去 1 后 a = [3];
指定元素 3,获得分数 0 + 0,删去 3 后 a 变为空。
请问你能获得的分数总和最大是多少?
对于 40% 的测试点,保证 1 ≤ n ≤ 5,0 ≤ aᵢ ≤ 10³。
对于所有测试点,保证 1 ≤ n ≤ 10³,0 ≤ aᵢ ≤ 10⁹。
第一行,一个正整数 n,表示数组长度。 第二行,n 个非负整数 a₁, …, aₙ,表示数组 a 中的整数。
输出一行,一个整数,表示能获得的最大分数总和。
6 1 6 3 2 9 1 5 3 1415 926 53 58
55 5771