点击上方蓝字·关注我们



CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为青少年计算机和编程学习者提供学业能力验证的平台。GESP覆盖中小学全学段,符合条件的青少年均可参加认证。GESP旨在提升青少年计算机和编程教育水平,推广和普及青少年计算机和编程教育。
GESP考察语言为图形化编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。
本次为大家带来的是2025年3月Python三级认证真题解析。
Python三级
2025年03月
一、单选题(每题2分,共30分)
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | D | C | A | B | B | B | A | C | D | A | C | C | D | A | C |
第1题 2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是贺岁片《哪吒2》票房惊人,入了全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是( )。
A.《哪吒2》是一款新型操作系统
B.DeepSeek是深海钻探软件
C.《哪吒2》可以生成新的软件
D.DeepSeek可以根据《哪吒2》的场景生成剧情脚本
【答案】D【解析】DeepSeek是一个AI生成工具,可以根据场景生成剧情脚本。《哪吒2》是一部电影,不能生成软件。
第2题 对整型变量N,如果它能够同时被3和5整除,则输出N是含有至少两个质因数。如果用流程图来描述处理过程,则输出语句应该在哪种图形框中( )。
A.圆形框
B.椭圆形框
C.平行四边形框
D.菱形框
【答案】C【考纲知识点】流程图的概念与描述【解析】在算法流程图中平行四边形框通常用于表示输入和输出。
第3题 十进制数13的二进制表示是?( )
A.1101
B.1001
C.1011
D.1100
【答案】A【考纲知识点】进制转换【解析】十进制数13转换为二进制是1101。
第4题 下列代码的输出结果是?( )

A.[1, 2]
B.[1, 2, 3]
C.[3, 2, 1]
D.报错
【答案】B【考纲知识点】列表的基本使用【解析】变量b引用了a,所以a的变化会影响到b,因此b的值变为[1, 2, 3]。
第5题 执行 a = [1, 2]; a.extend([3, 4])后,a的值是?( )
A.[1, 2, [3, 4]]
B.[1, 2, 3, 4]
C.[3, 4, 1, 2]
D.[1, 3, 2, 4]
【答案】B【考纲知识点】列表的基本使用【解析】extend方法会将列表扩展,而不是插入一个新的列表,因此a的值变为[1, 2, 3, 4]。
第6题 执行 a, b, c = (10, 20, 30)后,b的值是?( )
A.10
B.20
C.30
D.报错
【答案】B【考纲知识点】元组的基本使用【解析】执行a, b, c=(10, 20, 30)后,b的值为20。
第7题 将列表 [7, 8, 9]转换为元组的正确方式是?( )
A.tuple([7, 8, 9])
B.([7, 8, 9]).tuple()
C.(7, 8, 9).tuple()
D.tuple(7, 8, 9)
【答案】A【考纲知识点】元组的基本使用【解析】将列表转换为元组使用tuple()函数。
第8题 字典的键(key)可以是以下哪种数据类型?( )
A.列表
B.字典
C.元组
D.集合
【答案】C【考纲知识点】字典的基本使用【解析】字典的键必须是不可变数据类型,如元组。
第9题 字典推导式 {k: v for k, v in {'a':1, 'b':2, 'c':3}.items() if v % 2 == 0}的结果是?( )
A.{'a':1, 'b':2, 'c':3}
B.{}
C.{'a':1, 'c':3}
D.{'b':2}
【答案】D【考纲知识点】字典的基本使用【解析】字典推导式中筛选出值为偶数的键值对,结果为{'b': 2}。
第10题 执行 s = "hello"; print(s.find("x"))的结果是?( )
A.-1
B.0
C.报错
D.None
【答案】A【考纲知识点】字符串及其函数【解析】find()方法返回子串在字符串中的位置,找不到则返回-1。
第11题 字符串 s = "Python",执行s[::2]的结果是?( )
A."Pyt"
B."yhn"
C."Pto"
D."yh"
【答案】C【考纲知识点】字符串及其函数【解析】s[::2]表示每隔一个字符取一个,结果为"Pto"。
第12题 创建空集合的正确方式是?( )
A.a = []
B.a = {}
C.a = set()
D.B和C均正确
【答案】C【考纲知识点】集合的基本使用【解析】{}这个结构是空的字典。
第13题 执行 s = {1, 2}; s.update([3, 4])后,s的值是?( )
A.报错
B.{3, 4}
C.{1, 2, [3, 4]}
D.{1, 2, 3, 4}
【答案】D【考纲知识点】集合的基本使用【解析】update()方法会将列表中的元素添加到集合中,结果为{1, 2, 3, 4}。
第14题 需要将文本中的敏感词替换为保留首字母并用*号覆盖剩余字符。例如:"密码"(2字)替换为"密*","身份证"(3字)替换为"身**"。请填写横线处的代码。

A.word[0] + '*' * (len(word) - 1)
B.word[0] + '**'
C.'*' * len(word)
D.word[0] + '*' * len(word)
【答案】A【考纲知识点】字符串及其函数【解析】替换敏感词时,保留首字母并用*覆盖剩余字符,代码为word[0]+'*'*(len(word)-1)。
第15题 以下代码用于生成前 n项斐波那契数列。请填写横线处的代码。

A.a
B.b
C.a + b
D.a * b
【答案】C【考纲知识点】列表的基本使用【解析】斐波那契数列中第i项的值为i-1项和i-2项之和,因此程序中需要计算a+b,并赋给b。
二、判断题(每题2 分,共20 分)
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | √ | × | √ | × | × | × | √ | √ | × | √ |
第1题C++、Python都是高级编程语言,它们每条语句的执行最终都要通过机器指令来完成。( )
【答案】√【考纲知识点】程序设计语言的特点【解析】C++和Python都是高级编程语言,它们的每条语句最终都要通过机器指令来完成。
第2题表达式 hex(int('17', 8))的返回值为0x11。
【答案】×【考纲知识点】进制转换【解析】hex(int('17', 8))的意思是先将8进制数17转为10进制(得到15),再将10进制数15转为16进制,值为0xf,不是0x11。
第3题 在Python中,in关键词用于检查某个元素是否存在于序列或集合中,以下表达式都是合法的。
【答案】√
【考纲知识点】列表、元组、集合的基本应用、内置函数【解析】in关键词用于检查元素是否存在于序列或集合中,所有表达式都是合法的。
第4题表达式 y = 0x0f; y << 4的结果是0xff。
【答案】×【考纲知识点】位运算【解析】y=0x0f; y<<4的结果是240,而不是0xff。0x0f的二进制为1111,将其左移4位得到1111 0000,输出时以10进制输出,得到240.
第5题 执行下面Python代码后,输出的结果为6。
【答案】×【考纲知识点】字典的基本应用、内置函数【解析】data['ids'].append(['g','e','s','p'])后,len(data['ids'])的结果为3,而不是6。因为此时data['ids']里面的元素是[1, 2, ['g', 'e', 's', 'p']]。
第6题 执行下面Python代码后,输出的结果可能是{'a', 1,'123'}。

【答案】×【考纲知识点】集合的基本应用、内置函数【解析】执行代码后,输出结果不是{'a', 1, '123'},而是{1, '3', '1', '2', 'a'}。
第7题 自幂数是指一个 n位数,它的每个位上的数字的n次幂之和等于它本身。(例如:当n为3时,有$1^3 + 5^3 + 3^3 = 153$,153即是n为3时的一个自幂数),若找出1000以内的所有自幂数。可以使用枚举的方法来求解这个问题。
【答案】√【考纲知识点】算法的概念与描述【解析】自幂数可以通过枚举的方法求解。
第8题下列程序用于删除列表 nums中的重复项。
【答案】√【考纲知识点】集合的基本应用、内置函数【解析】set会去除重复项。
第9题 下列程序用于统计字符串中元音字母(a, e, i, o, u)的数量。

【答案】×【考纲知识点】字符串及其函数【解析】统计元音字母数量时,应该使用if c in vowels而不是if c == vowels。
第10题下列程序用于去除列表中的负整数元素。

【答案】√【考纲知识点】列表解析的使用【解析】去除列表中的负整数元素,代码正确。
三、编程题(每题25分,共50分)
编程题1
时间限制:1.0 s
内存限制:512.0 MB
2025
题目描述
小A有一个整数x,他想找到最小的正整数y使得下式成立:(x and y) + (x or y) = 2025 其中and表示二进制按位与运算,or表示二进制按位或运算。如果不存在满足条件的y,则输出-1。
输入格式
一行,一个整数x。
输出格式
一行,一个整数,若满足条件的y存在则输出y,否则输出-1。
样例
输入样例1
1025
输出样例1
1000
数据范围
对于所有测试点,保证0 < x < 2025。
考纲知识点:
枚举法/位运算
分析:
模拟题意,枚举y,需要注意的是,对于正整数x和y的任意取值,x|y + x&y的计算结果均大于原数,所以y的枚举范围为[1, 2025]。
参考程序

编程题2
时间限制:1.0 s
内存限制:512.0MB
词频统计
题目描述
在文本处理中,统计单词出现的频率是一个常见的任务。现在,给定n个单词,你需要找出其中出现次数最多的单词。在本题中,忽略单词中字母的大小写(即Apple、apple、APPLE、aPPle等均视为同一个单词)。
请你编写一个程序,输入n个单词,输出其中出现次数最多的单词。
输入格式
第一行,一个整数n,表示单词的个数;
接下来n行,每行包含一个单词,单词由大小写英文字母组成。
输入保证,出现次数最多的单词只会有一个。
输出格式
输出一行,包含出现次数最多的单词(输出单词为小写形式)。
样例
输入样例1
6
Apple
banana
apple
Orange
banana
apple
输出样例1
apple
数据范围
对于所有测试点,1 <= n <= 100,每个单词的长度不超过30,且仅由大小写英文字母组成。
考纲知识点:
枚举法/字符串的使用
分析:
模拟题意,读入字符串时将所有字符处理为小写,若新读入的字符串未保存在字典中,则创建键,之后更新该键的出现次数。通过打擂台的方式不断更新最大值,最后输出答案。
参考程序

策划:GESP技术委员会副主席 刘晓庆
技术支持:GESP技术委员会常务委员 王锴男


1.GESP微信:关注“CCF GESP”公众号,点击"GESP小助手"即可交流。
2.GESP邮箱:gesp@ccf.org.cn
注:请在邮件中详细描述咨询的问题并留下考生的联系方式及姓名、身份证号,以便及时有效处理。
3.GESP电话:0512-67656856
咨询时间:周一至周五(法定节假日除外):上午 8:30-12:00;下午 13:00-17:30
