当前位置:首页>python>2026年GESP06月认证Python四级试卷

2026年GESP06月认证Python四级试卷

  • 2026-09-10 14:09:36
2026年GESP06月认证Python四级试卷

跟老马一起“升级打怪”学编程!

旨在为小朋友们提供全面的学习材料,共同为等级考试做好准备。

添加小助手微信,回复【GESP 2026.06Python四级】,获取本套试题答案。

2026年GESP06月认证Python四级试卷分数:100 题数:27

一、单选题(共15题,每题2分,共30分)

1、学校组织同学们到未来农场参观,小明听讲解员介绍。在智能温室中,湿度传感器可以连续检测土壤的湿度,并将检测到的湿度数据实时发送给中央控制器。中央控制器根据这些数据判断是否开启灌溉系统。请问,这里的湿度传感器所发挥的作用,类似于计算机系统中的哪一类组件?( )

  • A. 处理器
  • B. 存储器
  • C. 输入设备
  • D. 输出设备

2、小明同学去郊外农场参观回来后,在自己的电脑中安装了一个 3D 农场仿真模拟系统。因为他今年买的这台二手电脑有点老旧,3D 农场仿真模拟系统运行时经常弹出“系统内存不足”的警告,导致系统卡顿严重。他计划通过增加物理内存来解决问题。请问他应该购买以下哪种硬件组件?( )

  • A. 机械硬盘
  • B. 内存条
  • C. 图形显卡
  • D. 移动硬盘

3、执行下面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、如果想要将一个二维列表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、执行下面Python代码后,输出的结果是?( )

deffunc(x, lst=[]):    lst.append(x)return lstprint(func(1), func(2), func(3))
  • A. [1] [2] [3]
  • B. [1] [1, 2] [1, 2, 3]
  • C. [3] [3] [3]
  • D. [1, 2, 3] [1, 2, 3] [1, 2, 3]

6、执行下面Python代码后,输出的结果是?( )

deffunc(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. 程序会报错

7、与列表推导式[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))

8、以下代码的功能是读取一个二进制图片文件pic.jpg并复制到pic_copy.jpg,空白处应填入?( )

with open('pic.jpg', '__①__') as src, open('pic_copy.jpg', '__②__') as dst:    dst.write(src.read())
  • A. ①'r' ②'w'
  • B. ①'rb' ②'wb'
  • C. ①'r+' ②'w+'
  • D. ①'a' ②'wb'

9、以下函数的时间复杂度是?( )

defexample(n):    matrix = [[0] * n for _ in range(n)]for i in range(n):for j in range(n):            matrix[i][j] = i * jreturn matrix
  • A. 
  • B. 
  • C. 
  • D. 

10、执行下面Python代码后,输出的结果是?( )

deftest_function():try:return"From try"finally:        print("From finally", end="#")print(test_function(), end="#")
  • A. From try#
  • B. From finally#
  • C. From try#From finally#
  • D. From finally#From try#

11、若输入 5,以下程序的输出结果是?( )

n = int(input())f = [0] * (n + 1)f[0] = 1for i in range(1, n + 1):    f[i] = f[i - 1] * iprint(f[n])
  • A. 24
  • B. 120
  • C. 125
  • D. 720

12、关于以下代码,说法正确的是?()

words = ["apple", "Cherry", "Banana"]sorted_words = sorted(words, key=lambda s: s.lower())
  • A. 排序结果中"Banana"会排在"apple"前面,因为大写字母ASCII码小于小写字母。
  • B. key=lambda s: s.lower()可以替换为key=str.lower,效果相同。
  • C. 此排序会修改原始列表words中的元素顺序。
  • D. sorted函数不能直接对字符串列表进行排序。

13、某电商平台根据用户的会员等级计算商品最终价格。等级与折扣率的对应关系存储在字典discounts中。为了保证程序在面对未知等级时不会报错,而是按原价(即不打折)处理,以下哪个选项是正确的?( )

defcalculate_price(price, level):    discounts = {"VIP": 0.8, "SVIP": 0.6}# 请补全代码    discount_rate = ______①______return ______②______final_price = calculate_price(100, "VIP")print(final_price)
  • 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)

14、有一个名为 score.txt的文本文件,内容如下(第一行为标题行,后面每行包含姓名和分数,用空格分隔):

姓名 分数张三 85李四 42王五 90赵六 78

编写一段 Python 代码,读取该文件,统计及格人数(分数 ≥ 60 分),并在最后输出统计结果,以下哪个选项是正确的?( )

count = 0with open("score.txt", "r") as f:    lines = f.readlines()for i in range(1, len(lines)):        data = lines[i].______ # 此处需要填入适当的方法        score = int(data[1])if score >= 60:            count += 1print("及格人数:", count)
  • A. split()
  • B. strip()
  • C. read()
  • D. splitlines()

15、商品列表已按特定规则排序,每个商品包含三个信息:编号、价格、库存量,对应三元组 (id, price, stock)。现有预算 M元,按排好的顺序依次购买,只要当前商品的价格不超过剩余预算就购买并扣款,否则立即停止。以下哪个选项是正确的?( )

budget = Mproducts.sort(key=lambda x: (x[1], x[2], x[0]))  # 按规则排序bought = []for item in products:if ________ : # 此处需要填入适当的代码        budget -= item[1]         bought.append(item[0]) else:break
  • 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

二、判断题(共10题,每题2分,共20分)

1、⼜到期末考试周, ⼩明发现这次许多闭卷考试不仅禁⽌携带⼿机、 平板电脑, 还有最近⽐较时髦的各类 AI 眼镜(也有叫智能眼镜) 也同样不允许带⼊考场。 这些 AI 眼镜应该也是内置了操作系统并可能⽀持 Wi-Fi 或蓝⽛连接。

  • 正确();
  • 错误();

2、执行 [[j for j in range(i)] for i in range(3)] 解析式的结果是[[0], [0,1]]。

  • 正确();
  • 错误();

3、使用global关键字在函数内部创建的变量,在函数执行结束后依然存在。

  • 正确();
  • 错误();

4、执行以下代码后,输出结果为 (1, 'a')。

pairs = [(2, 'b'), (1, 'a'), (3, 'c')]result = min(pairs, key=lambda p: p[0])print(result)
  • 正确();
  • 错误();

5、在Python中,read()方法会一次性读取整个文件内容,返回字符串;readlines()方法会一次性读取所有行,返回行列表。

  • 正确();
  • 错误();

6、以下函数的空间复杂度为。

deffunc(n):return [i ** 2for i in range(n)]
  • 正确();
  • 错误();

7、在Python的异常处理结构中,try块后面可以只跟随finally块,而不需要包含任何except块。

  • 正确();
  • 错误();

8、已知递推关系式为 (其中 ),为了保证对所有  的计算都不出现负数下标,必须提供的初始值至少包括  这五个值。

  • 正确();
  • 错误();

9、选择排序是稳定的排序算法,因为它在每次选择最小元素时不会改变相等元素的相对顺序。

  • 正确();
  • 错误();

10、执行以下代码后,输出结果为 2。

n, m = 3, 4grid = [[1, 3, 2, 4],        [5, 7, 6, 8],        [9, 0, 1, 2]]dx = [-1, -1, -1, 0, 0, 1, 1, 1]dy = [-1, 0, 1, -1, 1, -1, 0, 1]count = 0for i in range(n):for j in range(m):        lower_neighbors = 0for k in range(8):            x, y = i + dx[k], j + dy[k]if0 <= x < n and0 <= y < m and grid[x][y] < grid[i][j]:                lower_neighbors += 1if lower_neighbors >= 5:            count += 1print(count)
  • 正确();
  • 错误();

三、编程题(共2题,共50分)

1、扫雷

【提交】

https://www.luogu.com.cn/problem/B4557

【问题描述】

小杨同学正在游玩经典游戏「扫雷」,他想自己生成一个「扫雷」的地图。

小杨同学希望生成的地图大小为  行  列,一共  个区块。

区块行号为 ,列号为 。 其中一些区块为雷区,其它区块不为雷区。

小杨同学指定了  个区块为雷区,而其它区块均不为雷区。小杨同学希望你帮忙计算非雷区的区块,每个区块与多少个雷区相邻?

我们定义区块相邻,当且仅当两个区块至少有一个公共顶点(也就是说对于不在地图边缘的区块,周围  个区块均与其相邻)。

【输入描述】

输入包含  行。第一行,三个正整数 , 和 ,分别表示地图行数和列数,以及雷区数量。接下来的  行,每行有  个整数,分别表示第  个雷区的行号和列号。

保证输入的雷区不重复。

【输出描述】

输出  行,每行  个 字符(使用空格分割),对于第  行第  列,输出地图对应区块的信息:

  1. 如果为雷区,输出 *;
  2. 如果不是雷区,输出其相邻雷区数量(输出  到  中的一个数字)。

【样例输入1】

3 4 41 11 32 43 2

【样例输出1】

* 2 * 22 3 3 *1 * 2 1

【样例解释1】

根据输入,在  的地图上有  个雷区,分别是 ,, 和 ,如输出样例中 * 所示,其它非雷区区块的相邻雷区数量可以直观看出。

【数据范围】

。

输入的雷区必定在地图内且不重复,注意行号和列号均从  开始。

2、身高体重指数

【提交】

https://www.luogu.com.cn/problem/B4558

【问题描述】

一个人的身高体重指数(BMI)等于其体重(千克为单位)除以其身高(米为单位)的平方。 例如,一个体重为 ,身高为  的人的身高体重指数为 。

现在有  个小朋友,第  个小朋友的编号为 ,体重为 ,身高为 。 请按照身高体重指数从高到低为小朋友们排序,数据保证不存在两个小朋友的身高体重指数完全相同。输出排序后小朋友的编号。

【输入描述】

输入  行,第一行为一个正整数 ,表示小朋友的个数;第二行为  个整数  表示小朋友们的体重,单位为 ;第三行为  个浮点数  表示小朋友们的身高,单位为 。

【输出描述】

输出一行  个数,表示按照身高体重指数从高到低排序后的编号。

【样例输入1】

345 33 391.55 1.33 1.44

【样例输出1】

3 1 2

【样例解释1】

三个小朋友(编号依次为 1,2,3)的身高体重指数分别为(保留两位小数的结果):,,,故排序后输出的编号为 3 1 2。

【数据范围】

,,, 均恰有两位小数。


青少年编程竞赛交流

「青少年编程竞赛交流群」已成立(适合6至18周岁的青少年),添加小助手微信,让他邀请大家进入学习群。进群之后大家可以参与定期组织的 #21天刷题打卡、 #GESP编程能力测评、 #青少年编程等级考试、 #教育部白名单比赛辅导 以及 #青少年编程组队竞赛 等活动。

最新文章

随机文章