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

有10根长度分别为1,2,3,…,10的木棒,现需要从中选出3 根木棒组成一个三角形。三角形的成立条件是任意两边之和大于第三边。以下程序通过枚举顺序递增的三边长度组合来统计有效三角形的数量,请补全代码中缺失的条件判断部分。()

count = 0
for a in range(1, 11):
	for b in range(a, 11):
		for c in range(b, 11):
			if ________: # 填空处
				count += 1
2.

以下哪个操作可以返回两个集合中独有的元素(对称差集)?()

3.

要获取32位整数0x48B2D6F1 的最低字节(比特位0 -7),正确的表达式是?()

4.

对于列表data = [1 , 2 , 3 , 4 , 5],执行data[1:4] = [10 , 20] 后,data 的值是?()

5.

下列哪个表达式不能正确转换为十进制整数10?()

6.

执行以下代码后,输出结果是?()

result = [x if x > 2 else 0 for x in range(1 , 5)] 
print(result)
7.

执行以下代码后,输出结果是?()

s = "programming"
vowels = "aeiou"
count = 0
for char in s:
    if char not in vowels:
        count += 1
print(count)
8.

2026年春节联欢晚会上一个武术表演节目《武BOT》。节目中多个人形机器人会表演空翻,它们落地可能会有微微踉跄,但都会迅速调整姿态站稳,并适当移动来和前后左右的其他机器人保持原来队列。如果将机器人视作一个计算机系统,那么在该计算机系统中下面哪一项不能作为输入设备( )。

9.

下列关于元组解包的说法,哪一项是正确的?()

10.

在Python中,已知d = {'a ': 1 , 'b ': 2 }, 则d .keys() 的数据类型是?()

11.

执行以下代码后,输出结果是?()

set1 = {1, 2, 3}
set2 = set1
set2.add(4)
print(set1)
12.

执行以下代码后,输出结果是?()

my_zip = zip((1 , 2), ('a ', 'b ')) 
print(tuple(my_zip))
print(list(my_zip))
13.

下面代码用来找出输入的N个正整数中最大的一个。如果将代码段用流程图来表示,则L1标记的代码行应该使用的图形是()。

Max = 0
N = int(input())

while(N):
    val = int(input())
    if val > Max: #L1
        Max = val
    N -= 1

print(Max)
14.

执行以下代码后,输出结果是?()

data = {'Math': 90, 'Science': 85, 'English': 92}
subject = 'Science'
if subject in data:
    grade = data.get(subject, 0)
    if grade >= 90:
        level = 'A'
    elif grade >= 80:
        level = 'B'
    else:
        level = 'C'
print(level)
15.

执行以下代码后,输出结果是?()

lst = [10 , 20 , 30 , 20] 
lst .remove (20) 
print(lst)
判断题 共 10 题
1.

小明的妈妈最近刚刚给他买了一块电话手表,除了可以看时间,小明也可以用它和妈妈打电话、收发信息,那么可以推测这块手表中装有一款特定操作系统。()2026.3-3

2.

执行以下代码后,输出结果是True。

tuple1 = (1, 2)
tuple2 = (3, 4)
result = tuple1 + tuple2
print(result is (1, 2, 3, 4))
3.

str() 函数可以将任何列表转换为一个字符串,该字符串是只由列表中的所有元素直接拼接而成的字符串。

4.

表达式(x << 3) - (x << 1) 的计算结果与x * 10 等价。

5.

在Python 中,任何一个十进制整数都可以精确地转换为一个二进制整数,但并非所有十进制小数都能精确地转换为二进制小数。

6.

执行以下代码后,输出结果是1。

text = "i love china"
char_count = {}
for char in text:
    if char != ' ':
        char_count[char] = char_count.get(char, 0) + 1
print(char_count.get('i', 0))
7.

str .join()方法可以高效地连接一个列表中的多个元素,但要求该列表内的所有元素必须是字符串类型,否则会引发错误。

8.

对于8 位有符号整数(补码表示),1000 0000 表示的是-128。

9.

在Python 中,集合的元素可以是列表或字典。

10.

使用=运算符将一个列表赋值给另一个变量时,会创建一个内容相同但独立的新列表。

编程题 共 2 题
1.

二进制回文串

时间限制:1.0 s

内存限制:512.0 MB

题目描述

对于一个正整数n,我们将其转换为不含前导零的二进制表示,如果这个二进制序列从左向右读与从右向左读完全相同,则称该数为二进制回文数。例如,9的二进制表示为(1001)2,是二进制回文数;12的二进制表示为(1100)2,不是二进制回文数。

你的任务是:给定一个正整数n,计算在1到n的范围内二进制回文数的数量。

输入格式

输入一行,包含一个正整数n。

输出格式

输出一行,包含一个数,表示在1到n的范围内二进制回文数的数量。

输入样例

15

输出样例

6

样例解释

样例 1 中,1到15范围内1、3、5、7、9、15是二进制回文数。

数据范围

1≤n≤105。

2.

凯撒密码

时间限制:1.0 s

内存限制:512.0 MB

题目描述

凯撒密码是一种替换加密技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,例如,当偏移量是3的时候,所有的字母A将被替换成D,B被替换成E,C被替换成F,以此类推,W被替换成Z,X被替换成A,Y被替换成B,Z被替换成C。这个加密方法是以罗马共和时期凯撒的名字命名的,据称当年凯撒曾用此方法与其将军们进行联系。

但是和所有的利用字母表进行替换的加密技术一样,凯撒密码非常容易被破解,而且在实际应用中也无法保证通信安全。

现在给你一个已破解的凯撒密码明文与密文,与一个有相同偏移量的未破解凯撒密码密文,请你帮忙破解它。

输入格式

输入共三行:

第一行包含一个字符串,表示已破解的凯撒密码明文;

第二行包含一个字符串,表示已破解的凯撒密码密文;

第三行包含一个字符串,表示待破解的凯撒密码密文。

输出格式

输出一行,包含一个字符串,表示待破解的凯撒密码对应的明文。

输入样例

ABCDEFGVWXYZ
DEFGHIJYZABC
WKHTXLFNEURZQIRAMXPSVRYHUWKHODCBGRJ

输出样例

THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG

样例解释

样例 1 中,通过已破解的密码得出偏移量为 'D' - 'A' = 3 ,因此,对未破解部分进行逆向偏移:密文中的 W 对应明文中的 T ( 'W' - 3 = 'T' ),密文中的 K 对应明文中的 H ( 'K' - 3 = 'H' ),以此类推。

数据范围

保证密码长度均不超过 ,所有字符串由大写字母组成。

C++ 编辑器
输入
输出