GESP_2026年06月_Python四级试卷

从PDF导入:GESP_2026年06月_Python四级试卷

Python 120分钟 总分 98.0 26 题
试卷题目预览
第1题 中级 2.0分 单选
学校组织同学们到未来农场参观,小明听讲解员介绍。在智能温室中,湿度传感器可以连续检测土壤的湿度,并将检测到的湿度数据实时发送给中央控制器。中央控制器根据这些数据
A. 处理器
B. 存储器
C. 输入设备
D. 输出设备
第2题 中级 2.0分 单选
小明同学去郊外农场参观回来后,在自己的电脑中安装了一个 3D 农场仿真模拟系统。因为他今年买的这台二手电脑有点老旧,3D 农场仿真模拟系统运行时经常弹出“系统内
A. 机械硬盘
B. 内存条
C. 图形显卡
D. 移动硬盘
第3题 中级 2.0分 单选
执行下面 Python 代码后,输出的结果是?

a = {1: [2], 3: [4]}
b = a.copy()
b[1].append(3)
print(a[1])

A. [2]
B. [2, 3]
C. {1: [2, 3]}
D. 报错
第4题 中级 2.0分 单选
如果想要将一个二维列表 matrix = [[1, 2], [3, 4], [5, 6]] 扁平化为 [1, 2, 3, 4, 5, 6],应使用下列哪个列表推
A. [item for item in matrix]
B. [item for row in matrix for item in row]
C. [row for row in matrix for item in row]
D. [row for item in matrix for item in row]
第5题 中级 2.0分 单选
执行下面 Python 代码后,输出的结果是?

def func(x, y, *args, z=10, **kwargs):
return x + y + z + sum(args) + kwargs.get("m", 0)
result = func(1, 2, 3, 4, z=5, m=6, n=7)
print(result)

A. 21
B. 28
C. 31
D. 程序会报错
第6题 中级 2.0分 单选
与列表推导式 [i**2 for i in range(10)] 功能等价的 map 函数调用是?
A. list(map(i : i ** 2, range(10)))
B. list(map(lambda i : i ** 2, range(10)))
C. map(lambda i: i ** 2, list(range(10)))
D. map(i ** 2 for i in range(10))
第7题 中级 2.0分 单选
以下代码的功能是读取一个二进制图片文件 pic.jpg 并复制到 pic_copy.jpg,空白处应填入?
第8题 中级 2.0分 单选
以下函数的时间复杂度是?
A. O(n)
B. O(n²)
C. O(n³)
D. O(1)
第9题 中级 2.0分 单选
执行下面 Python 代码后,输出的结果是?
A. From try#
B. From finally#
C. From try#From finally#
D. From finally#From try#
第10题 中级 2.0分 单选
若输入 5,以下程序的输出结果是?
A. 24
B. 120
C. 125
D. 720
第11题 中级 2.0分 单选
关于以下代码,说法正确的是?
A. 排序结果中 "Banana" 会排在 "apple" 前面,因为大写字母 ASCII 码小于小写字母。
B. key=lambda s: s.lower() 可以替换为 key=str.lower,效果相同。
C. 此排序会修改原始列表 words 中的元素顺序。
D. sorted 函数不能直接对字符串列表进行排序。
第12题 中级 2.0分 单选
某电商平台根据用户的会员等级计算商品最终价格。等级与折扣率的对应关系存储在字典 discounts 中。为了保证程序在面对未知等级时不会报错,而是按原价处理,以
A. ① discounts.get(level, 1.0) ② price * discount_rate
B. ① discounts[level] ② price * discount_rate
C. ① discounts.get(level) ② price / discount_rate
D. ① level in discounts ② price * (1 - discount_rate)
第13题 中级 2.0分 单选
有一个名为 score.txt 的文本文件,第一行为标题行,后面每行包含姓名和分数,用空格分隔。编写代码统计及格人数(分数 ≥ 60 分)。空白处应填入?
A. split()
B. strip()
C. read()
D. splitlines()
第14题 中级 2.0分 单选
商品列表已按特定规则排序,每个商品包含 (id, price, stock)。现有预算 M 元,按排好的顺序依次购买,只要当前商品的价格不超过剩余预算且尚有库存
A. budget > 0 and item[2] != 0
B. budget >= item[1] and item[2] != 0
C. budget > item[1] and item[2] > 0
D. budget <= item[1] and item[2] > 0
第15题 中级 2.0分 判断
又到期末考试周,小明发现这次许多闭卷考试不仅禁止携带手机、平板电脑,还有最近比较时髦的各类 AI 眼镜(也有叫智能眼镜)也同样不允许带入考场。这些 AI 眼镜应
T. 正确
F. 错误
第16题 中级 2.0分 判断
执行 [[j for j in range(i)] for i in range(3)] 解析式的结果是 [[0], [0, 1]]。
T. 正确
F. 错误
第17题 中级 2.0分 判断
使用 global 关键字在函数内部创建的变量,在函数执行结束后依然存在。
T. 正确
F. 错误
第18题 中级 2.0分 判断
执行以下代码后,输出结果为 (1, 'a')。
T. 正确
F. 错误
第19题 中级 2.0分 判断
在 Python 中,read() 方法会一次性读取整个文件内容,返回字符串;readlines() 方法会一次性读取所有行,返回行列表。
T. 正确
F. 错误
第20题 中级 2.0分 判断
以下函数的空间复杂度为 O(1)。
T. 正确
F. 错误
第21题 中级 2.0分 判断
在 Python 的异常处理结构中,try 块后面可以只跟随 finally 块,而不需要包含任何 except 块。
T. 正确
F. 错误
第22题 中级 2.0分 判断
已知递推关系式为 F(n) = F(n-3) + F(n-5)(其中 n ≥ 5),为了保证对所有 n ≥ 0 的计算都不出现负数下标,必须提供的初始值至少包括
T. 正确
F. 错误
第23题 中级 2.0分 判断
选择排序是稳定的排序算法,因为它在每次选择最小元素时不会改变相等元素的相对顺序。
T. 正确
F. 错误
第24题 中级 2.0分 判断
执行以下代码后,输出结果为 2。
T. 正确
F. 错误
第25题 中级 25.0分 编程
. 扫雷

小杨同学正在游玩经典游戏「扫雷」,他想自己生成一个「扫雷」的地图。地图大小为 n 行 m 列,其中一些区块为雷区,其它区块不为雷区。小杨指定了 q 个区块为雷区。请计算非雷区的每个区块与多少个雷区相邻。相邻定义为两个区块至少有一个公共顶点(即 8 个方向均算相邻)。
3 ≤ n, m ≤ 500,1 ≤ q ≤ n·m。输入的雷区必定在地图内且不重复。

【参考程序】
n, m, q = map(int, input().split())
# 地图,二维数组表示
mp = [[0 for _ in range(m)] for _ in range(n)]
# 将地图上 x 行 y 列的地方放上地雷
for _ in range(q):
x, y = map(int, input().split())
mp[x - 1][y - 1] = '*'
# 遍历整张地图
for i in range(n):
for j in range(m):
if mp[i][j] == '*':
continue
for di in [-1, 0, 1]:
for dj in [-1, 0, 1]:
ni, nj = i + di, j + dj
if 0 <= ni < n and 0 <= nj < m:
if mp[ni][nj] == '*':
mp[i][j] += 1
for i in range(n):
print(' '.join(map(str, mp[i])))

【输入格式】
输入包含 q+1 行。第一行:三个正整数 n,m 和 q。接下来的 q 行:每行两个整数,表示雷区的行号和列号。
【输出格式】
输出 n 行,每行 m 个字符(使用空格分割)。雷区输出 *,非雷区输出相邻雷区数量(0到 8)。
【样例】
3 4 4
1 1
1 3
2 4
3 2
【样例解释】
<pre class="inline-code">* 2 * 2
2 3 3 *
1 * 2 1
第26题 中级 25.0分 编程
. 身高体重指数

身高体重指数(BMI)等于体重(kg)除以身高(m)的平方。现有 n 个小朋友,请按 BMI 从高到低为小朋友们排序,输出排序后小朋友的编号。保证没有两个人的 BMI 完全相同。
1 ≤ n ≤ 1000,10 ≤ 体重 ≤ 100,0.8 ≤ 身高 ≤ 1.9,身高保留两位小数。

【输入格式】
第一行:正整数 n;第二行:n 个整数,表示体重;第三行:n 个浮点数,表示身高。
【输出格式】
输出一行 n 个数,表示按 BMI 从高到低排序后的编号。
【样例】
3
55 33 39
1.55 1.33 1.44
【样例解释】
3 1 2
💬