试卷总分:100分


选择题 15题 30分

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15


判断题 10题 20分

16 17 18 19 20 21 22 23 24 25


编程题 2题 50分

26 27

E1108 CCF-GESP编程能力等级认证-Python -2026-06 CCF-GESP Python三级真题-考试

选择题 共15道

01

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

2分
登录后查看选项
02

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

2分
登录后查看选项
03

在 Python 中, -1 的 位补码用十六进制表示是?

2分
登录后查看选项
04

执行 print(bin(0o15)) 的输出结果是?

2分
登录后查看选项
05

下列哪个表达式可以将整数 x 的二进制表示中从右往左数第 位(最低位为第 位)强制设置为 1 ,而其他位保持不变?

2分
登录后查看选项
06

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

lst = [1, 2, 3, 4, 5]
print(lst.pop(-2))
print(lst)
2分
登录后查看选项
07

t = (2, 4, 6, 2) ,执行 t.count(2) 的结果是?

2分
登录后查看选项
08

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

dict_a = {'a': 1, 'b': 2, 'c': 3}
dict_b = {'b': 4, 'd': 5}
dict_a.update(dict_b)
print(dict_a['b'])
2分
登录后查看选项
09

执行 s = "a,b,c,d"; print(s.split(',', 2)) 的结果是?

2分
登录后查看选项
10

已知 set1 = {1, 2} , set2 = {3} 。现要求在不修改 set1 的前提下,获得一个包含 set1 和 set2 所有元素的新集合,以下哪个操作是正确的?

2分
登录后查看选项
11

从字典 d = {'a': 1, 'b': 2} 中,如何得到一个只包含键的列表?

2分
登录后查看选项
12

用 元、 元、 元硬币凑出 元,且硬币总数不超过 枚。以下程序计算符合要求的组合个数,横线处应填写的代码是?

count = 0
for one in range(0, 11):
  for two in range(0, 6):
    for five in range(0, 3):
      total_money = one + two * 2 + five * 5
      total_coins = one + two + five
      if ________:
        count += 1
print(count)
2分
登录后查看选项
13

下列程序能够将列表中的偶数筛选出来,并组成新列表。横线处填写的代码是?

nums = [1, 2, 3, 4, 5, 6]
result = [x for x in nums if ________]
print(result) # 期望输出 [2, 4, 6]
2分
登录后查看选项
14

某电商平台有 M 种商品类别,平台记录了 N 条销售记录,每条记录包含商品类别编号和销售数量。需要找出每个类别中单次销售数量最多的那一笔(即该类别的最大销售数量),并输出这些最大数量中的最小值。以下程序试图实现此功能,横线处填写的代码是?

M, N = map(int, input().split())
max_sale = [None] * (M + 1) # 用 None 初始化,表示暂无记录
for _ in range(N):
	cate, amount = map(int, input().split())
	____________
		max_sale[cate] = amount
valid_max = [v for v in max_sale[1:] if v is not None]
result = min(valid_max)
print(result)
2分
登录后查看选项
15

以下程序实现了一种简单的“翻转”加密:将大写字母表中的每个字母替换为与其对称的字母( A ↔ Z 、B ↔ Y 、 C ↔ X 、……)。横线处填写的代码是?

text = "HELLO"
result = []
for ch in text:
	if 'A' <= ch <= 'Z':
		_________
		result.append(new_ch)
	else:
		result.append(ch)
encrypted = ''.join(result)
print(encrypted)
2分
登录后查看选项

判断题 共10道

16

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

2分
登录后查看选项
17

bin() 、 oct() 、 hex() 这三个函数的返回值类型是整数( int )。

2分
登录后查看选项
18

表达式 (x & (x-1)) 可以用来判断正整数 x 是否为 2 的幂次方。

2分
登录后查看选项
19

切片操作 mylist[2:5:-1] 会返回索引 2 到索引 4 (包含)的元素,但顺序是反向的。

2分
登录后查看选项
20

创建只包含一个元素的元组时,必须在元素后加一个逗号,例如 (1,) 。

2分
登录后查看选项
21

执行 d1 = {x: x for x in [1, 1, 2]} 后, d1 为 {1: 1, 2: 2} 。

2分
登录后查看选项
22

使用 in 运算符检查子字符串是否存在时,如果字符串为空, "" in "abc" 将返回 False 。

2分
登录后查看选项
23

执行下面 Python 代码后,输出的结果为 2 。

s = {10, 20, 30}
s.remove(20)
s.discard(40)
print(len(s))
2分
登录后查看选项
24

执行下面 Python 代码后,输出的结果为 7 。

my_str = "hello world"
my_set = set(my_str)
result = len(''.join(my_set))
print(len)
2分
登录后查看选项
25

下列 Python 代码能够正确统计出所有能被 3 整除且至少包含一个数字 5 的四位数的个数。

count = 0
for num in range(1000, 10000):
	if num % 3 == 0:
		digits = [int(d) for d in str(num)]
		if 5 in digits:
			count += 1
print(count)
2分
登录后查看选项

编程题 共2道

26

加密

题目描述

小杨同学有一串数字,想把它们变成另一串数字,这个过程叫做加密。

他有一本密码本,密码本告诉你,每个数字应该变成哪个数字。

数字一共有 10 个:0 、 1 、 2 、 3 、 4 、 5 、 6 、 7 、 8 、 9

密码本会依次告诉你:

0 要变成什么

1 要变成什么

2 要变成什么

……

9 要变成什么

请你按照密码本,把原来的每个数字都换成新的数字,然后输出。

输入

输入共有 3 行。

第一行:一个整数,表示有多少个数字需要加密;

第二行:这些需要加密的数字;

第三行:密码本,一共 10 个数字。

这10个数字的意思是:

第 1 个数字:表示 0 加密后变成什么;

第 2 个数字:表示 1 加密后变成什么;

第 3 个数字:表示 2 加密后变成什么;

……

第 10 个数字:表示 9 加密后变成什么。

输出

输出加密后的数字。

也就是:把输入第二行里的每个数字,都按照输入第三行的密码本换掉后输出。

数据范围

需要加密的数字个数不超过 20000 个,且均为 0 到 9;密码本中的数字不重复,且均为 0 到 9。

输入样例1

7

0 2 0 3 4 1 9

9 0 1 2 3 4 5 6 7 8

输出样例1

9 1 9 2 3 0 8

25分
登录后作答
27

字符转换

题目描述

小杨同学有一串字符,里面可能有:

  • 大写字母,比如 A 、 B 、 C
  • 小写字母,比如 a 、 b 、 c
  • 数字,比如 0 、 1 、 2

现在小杨同学想把这串字符变一变,规则如下:

1. 如果是大写字母,就变成对应的小写字母;

2. 如果是小写字母,就变成对应的大写字母;

3. 如果是数字,就变成 * 。

请你按照这个规则,帮小杨把整串字符转换好。

输入

输入一共有 2 行。

第一行:一个整数,表示这串字符一共有多少个字符。

第二行:一串连续的字符,中间没有空格。

输出

输出转换后的字符。

注意:输出时字符之间不要加空格。

数据范围

字符个数不会超过 1000 个。

每个字符只会是大写字母、小写字母或数字。

输入样例1

5

aBc98

输出样例1

AbC**

25分
登录后作答