点击上方蓝字·关注我们



CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为计算机和编程学习者提供学业能力验证的平台。GESP旨在提升青少年计算机编程能力,培训机构编编程教育水平,推广和普及计算机和编程教育。
GESP考察语言为图形化(Scratch)编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。
本次为大家带来的是2026年3月Python一级认证真题解析。
Python 一级
2026年3月
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | B | A | D | B | A | A | B | D | D | C | B | B | B | A | C |
第1题 2026年春节联欢晚会上一个武术表演节目《武BOT》。节目中多个人形机器人会表演空翻,它们落地可能会有微微踉跄,但都会迅速调整姿态站稳,并适当移动来和前后左右的其他机器人保持原来队列。如果将机器人视作一个计算机系统,那么在该计算机系统中下面哪一项不能作为输入设备( )。
A.用于检测重心的重力传感器
B.预装的AI算法程序
C.接收动作指令的遥控器
D.拍摄其他机器人的摄像头
答案:B
答案解析:考点为计算机输入设备定义。输入设备是硬件,重力传感器、遥控器、摄像头均为输入设备;AI算法程序是软件,不能作为输入设备。所以答案是B。
第2题 小明学习编程有一段时间了,他想在图形环境下把当前目录(或文件夹)下的文本文件20260314.txt的名字改一下。他用鼠标左键点击选中该文件后,立即完成下面哪个操作后将处于输入新文件名的状态( )。
A.单击右键并选择弹出菜单中的“重命名”
B.双击左键
C.按功能键F1
D.按回车键
答案:A
答案解析:考点为文件重命名操作。选中文件后右键选择 “重命名” 可进入改名状态;双击打开文件,F1是帮助,回车无重命名功能。所以答案是A。
第3题 有关下面Python的说法,正确的是( )。
A.为了方便初学者,print(PI)和print(pi)效果相同,即变量的大小写不敏感
B. print(PI)修改为print(Pi)能正常执行
C.不能用PI做变量名,因为要保存圆周率这个常量
D.将程序中PI全部改写为Pai,将能正常执行,不会报错
答案:D
答案解析:考点为Python变量命名与大小写敏感。Python变量严格区分大小写,PI可自定义,全部改为Pai仍可正常运行。所以答案是D。
第4题Python表达式3 * 3 ** 2的值为( )。
A. 81
B. 27
C. 24
D. 18
答案:B
答案解析:考点为Python运算符优先级。**优先级高于*,先算3**2=9,再算3*9=27。所以答案是B。
第5题 下面的 Python代码执行后,其输出是( )。
A. 5 2 3 4
B. 5 2 5 2
C. 52 34
D. 52 52
答案:A
答案解析:考点为Python多变量赋值与print输出。a=3,b=4,输出a+2=5、b-2=2,再输出a=3、b=4,a + 2和b – 2不改变变量的值,只是调用a和b的值进行运算。另外,print函数中,逗号分隔多个值时,输出会自动用空格隔开。所以答案是A。
第6题 下面 Python代码的相关说法,正确的是( )。

A.执行时如输入10,则将输出10
B.执行时如输入3.14,则将输出3.14
C.执行时如输入ABC,则将输出0
D.执行时如输入-10,则将输出10
答案:A
答案解析:考点为int (input ()) 输入规则。输入整数10可正常读取输出;input()输入的内容都是字符串,输入小数、字母会报错,因为int()只能转整数格式的字符串,例:如果输入3.14将报错,但可以int(float(input()));输入-10会正常输出-10。所以答案是A。
第7题 下面Python代码执行时,其说法正确的是( )。

A.不管输入是正数负数还是0,其输出结果肯定是大于等于0
B.不管是负整数、正整数亦或0,其结果肯定是大于等于0
C.如果N和M是相等的整数,将不会有输出
D.如果N和M输入带有小数点的数,将按整数部分计算
答案:B
答案解析:考点为if-else分支与绝对值差。代码输出两数绝对值之差,无论正负或0,结果一定≥0;输入小数会直接报错。所以答案是B。
第8题 下面Python代码执行后的输出是( )。
A. 24 5
B. 10 5
C. 24 4
D. 0 4
答案:D
答案解析:考点为for循环与累乘。range (5) 取0~4,tnt初始值为1,第一次tnt乘0后为0,任何数乘0都是0,所以tnt最后结果还是0,循环结束i=4,输出0 4。所以答案是D。
第9题Python编程求数列-1+2+3-4+5+6-7+8+9-10+11+12-13+......之值。如输入4,则计算1到4包含1和4之间的值,规律如数列所示。下面说法,正确的是( )。

A. range(1, N + 1)应该修为range(1, N)才会符合预期
B. i % 3 == 1应修改为i % 3 == 0才会符合预期
C. i % 3 == 1修改为i % 3与当前程序效果相同
D.当前代码能达到题目所描述目标
答案:D
答案解析:这道题考察数列规律+循环+条件判断,我们先把数列规律和代码逻辑对应起来,就能直接判断对错。
1.分析数列规律
数列为:-1+2+3 -4+5+6 -7+8+9 -10+11+12
规律:每3个数为一组,每组第1个数取负,第2、3个数取正,即数字1、4、7、10...为负,其余为正。
2.分析代码逻辑
range(1, N+1):循环遍历1到N的所有整数,包含两端,符合题意;
i % 3 == 1:筛选出1、4、7、10...,给这些数添加负号,其余数正常累加;代码逻辑与数列符号规律完全一致。
3.逐一分析选项
A错误:range(1, N) 不包含N,会少计算最后一个数;
B错误:i%3==0会让3、6、9…取负,与题目规律不符;
C错误:i%3不是完整的条件判断,语法错误;
D正确:当前代码逻辑完全匹配题目数列要求。
第10题 下面Python代码的相关说法,正确的是( )。

A.上述代码执行后,其输出是1#3#5#7#9#9END
B.删除else:后的执行效果与当前代码相同
C.删除else:且print(i, end = "#")与if对齐,则执行效果与当前代码相同
D.将print(i,"END")与if对齐,其执行效果与当前代码相同
答案:C
答案解析:本题考查Python循环、continue语句、缩进规则的用法。
1.原代码运行逻辑
i取值:1、2、3…9;偶数执行continue,直接跳过本次循环剩余代码;奇数执行print(i, end="#"),输出1#3#5#7#9#。;循环结束后i=9,执行最后一行输出9 END。
2.逐项分析选项
A错误:print(i,"END")中逗号会输出空格,结果为9 END,不是9END。
B错误:直接删除else:,print缩进不变,语法结构错误,运行效果改变。
C正确:删除else:,将print(i, end="#")与if对齐。偶数触发continue直接跳过打印;奇数不触发continue,执行打印,逻辑与原代码完全一致。
D错误:print(i,"END")与if对齐后,该语句进入循环内部,每次循环都会执行,输出结果改变。
第11题 下面的Python代码用于求正整数各位数之和(即数位和),约定高位不为0,如123则各位数之和为1+2+3结果为6。为实现该目标,横线处应该填写的代码是( )。

A.
B.
C.
D.
答案:B
答案解析:考点为数位和计算。
求正整数各位数字之和,固定两步核心操作:
1.N % 10:取出当前数字的个位,累加到总和;
2.N //= 10:整除10去掉已处理的个位,继续处理更高位;使用while N != 0 循环,重复执行直到数字变为0,即可完成数位累加。
选项分析:
A错误:N // 10 是去掉个位,不能用于取个位累加。
B正确:tnt += N % 10 取个位累加,N //= 10 删除个位,下一次循环相当于去掉个位数后的数,而N //= 10将能实现删除个位数,每次循环都删除当次循环的个位数,逻辑符合算法。
C、D错误:N /= 10 为普通除法,会生成小数,循环无法正常结束。
所以答案是B。
第12题 某个功能需要知道一个输入的正整数的各位数字中有多少个奇数,下面的Python代码是其实现,横线处应该填入的代码是( )。
A. N % 10 % 2 == 0
B. N % 10 % 2 == 1
C. N // 10 // 2 == 1
D. N // 2 // 10 == 0
答案:B
答案解析:考点为数位拆分和奇数判断。
解题思路:要统计一个数的各位数字中有多少个奇数,必须逐位取出数字进行判断。
1.取出个位数字:N % 10
2.判断奇数:一个数对2取余,结果等于1就是奇数,即 数字 % 2 == 1。
结合起来就是:先取个位N % 10,再判断是否为奇数% 2 == 1,即N % 10 % 2 == 1。
选项分析:
A错误:N % 10 % 2 == 0 是判断偶数,与题意相反。
B正确:先取出个位数字,再判断是否为奇数,完全符合题意。
C错误:N // 10 是去掉个位,不是取个位,逻辑错误。
D错误:算式逻辑混乱,无法正确判断个位是否为奇数。
所以答案是B。
第13题 下面的Python执行后如果输入8,希望输出如下图形。相关说法,正确的是( )。


A. Angle = 360 / N应该修为Angle = 360 // N才能实现输出效果
B. range(N)修改为range(1, N + 1)效果相同,都能实现输出效果
C. range(N)修改为range(1, N)效果相同,都能实现输出效果
D. turtle.right(Angle)应该修正为turtle.right(i * Angle)才能达到预期效果
答案:B
答案解析:考点为turtle绘图与循环。
本题关键:循环次数一致,绘图效果就一致。
A错误:N为整数,360/N得浮点数、360//N得整数,turtle.right()两种角度均可,无需修改。
B正确:range(N)循环N次,range(1,N+1)同样循环N次,次数一致,绘图效果相同。
C错误:range(1,N)仅循环N‑1次,射线数量变少。
D错误:原代码每次固定旋转Angle角度即可;改为i*Angle会旋转角度累加,图形错误。
所以答案是B。
第14题 有关下面 Python代码的说法,正确的是( )。

A.代码执行后,将输出等腰直角三角形
B.代码执行后,将输出等长的两条边,其夹角为90度,因为没有画出斜边,因此不是三角形
C.代码执行后,90度夹角位于原点
D.因为没有执行turtle.pendown(),所以不会画出图形
答案:A
答案解析:考点为turtle绘图基础。
代码执行内容:向前100 → 左转90° → 再向前100 → 直接连线回到原点(0,0),先画出两条直角边,长度都是100,goto (0,0) 连接成等腰直角三角形。
选项逐一分析:
A正确:两条等长直角边+返回原点连线斜边,形成等腰直角三角形。
B错误:goto(0,0)会画出斜边,是完整三角形。
C错误:90°夹角在第二条边的起点,不在原点。
D错误:turtle默认落笔,可正常绘图。所以正确答案为A。
第15题 在Python中,turtle.write()用于在当前坐标处输出文字。下面说法,错误的是( )。

A. 1+1=2输出在坐标原点,即(0,0)
B. 1+1=2的起点与2+2=4的起点间隔40个像素
C.最后输出是10+10=20
D. 1+1=2等输出文字的下面将有一条直线
答案:C
答案解析:考点为turtle文字输出。range (1,10) 只循环到9,最后输出9+9=18,不是10+10=20。所以答案是C。
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
第1题 小明的妈妈最近刚刚给他买了一块电话手表,除了可以看时间,小明也可以用它和妈妈打电话、收发信息,那么可以推测这块手表中装有一款特定操作系统。( )
答案:√
答案解析:考点为智能设备与操作系统。电话手表是智能设备,必须搭载操作系统才能运行。所以答案是√。
第2题 Python表达式4 ** 2和2 * 2 ** 2的结果相同。( )
答案:×
答案解析:考点为幂运算。4**2=16;2 * 2 ** 2先计算2**2=4,2*4=8,结果不相同。所以答案是×。
第3题 下面Python代码执行后将输出0。( )

答案:×
答案解析:考点为break语句。i=3时break跳出循环,输出i=3,不是0。所以答案是×。
第4题 下面Python代码用于求1到N之和,N为正整数。因为range中为N+1,因此是1到N且包含N之和。( )

答案:×
答案解析:考点为Python缩进语法。total未缩进,不属于循环体,无法正确求和。所以答案是×。
第5题 执行下面的Python代码,其语句print(N)将被执行0次或无数次(即死循环)。( )

答案:√
答案解析:考点为while循环。input () 输入非空则死循环,输入空则不执行。所以答案是√。
第6题 下面的Python代码能实现判断输入的正整数是否为对称数。所谓对称数是指从左到右和从右到左读该数,其值相同,如121或414等是对称数,而123不是对称数。( )

答案:√
答案解析:考点为回文数判断。代码反转数字后与原数比较,可正确判断对称数。所以答案是√。
第7题 执行下面的 Python代码,如果输入为大于0的整数,则输出一定为 −N。( )

答案:√
答案解析:考点为循环对称累加。从-N到N-1步长2累加,所有正数负数两两抵消,最后只剩-N。所以结果一定等于- N,答案是√。
第8题 执行 Python语句print(int(3.14))将报错。( )
答案:×
答案解析:考点为int ()强制转换。print (int (3.14)) 会输出3,不会报错。所以答案是×。注意:如果是int(“3.14”)或int(input())如果输入3.14,将报错,int(3.14)不会报错。
第9题 下面的 Python代码执行后,将输出等边三角形。( )

答案:√
答案解析:考点为turtle正多边形绘制。circle (50,steps=3) 可画出等边三角形。所以答案是√。
第10题 下面的 Python代码执行后第一条直线与第二条直线相交于原点,两线之间的夹角为120度。( )

答案:×
答案解析:考点为turtle角度控制。每次右转60度,前两线夹角为120度,但三线不都交于原点。所以答案是×。
编程题1
•试题名称:交朋友
•时间限制:1.0 s
•内存限制:512.0 MB
题目描述
Alice班上共有4个小朋友,身高分别为H1,H2,H3,H4,其中Alice的身高为H1。
Alice想要和身高最接近她的人交朋友,如果有多个人符合条件,则Alice想和其中较矮的那一人做朋友,你能告诉她这个人的身高是多少吗?
输入格式
输入共4行,第i行包含一个整数Hi,表示班上小朋友的身高。
输出格式
输出1行,包含一个整数h,表示Alice想交的朋友的身高。
样例
输入样例
150
165
135
133
输出样例
135
样例解释
样例1中,Alice身高为150,第2、3个小朋友与Alice身高差距为15,同样最接近,Alice选较矮的一个即第3个身高为135的小朋友交朋友。
数据范围
保证100≤Hi≤199且Hi互不相同。
参考程序

答案解析:
考点:绝对值计算、多条件比较、最优值筛选、顺序遍历更新
分析:输入4个身高,H1为Alice身高,在H2、H3、H4中找差值最小的身高;差值相同时选更矮的。
代码思路:
1.用input ()依次读取4个身高;
2.分别计算H2、H3、H4与H1的身高差绝对值;
3.以H2为初始最佳人选,依次对比H3、H4;
4.差值更小则更新,差值相等且更矮也更新;
5.最后输出最佳人选身高。
所以本题按此思路编写代码即可正确得分。
编程题2
•试题名称:数字替换
•时间限制:1.0 s
•内存限制:512.0 MB
题目描述
Alice不喜欢数字4,但觉得数字8寓意好,她想把数中的4全都替换成8,若数中不含4则无需修改,你能帮帮她吗?
输入格式
输入一行,包含一个整数A,表示替换前的数。
输出格式
输出一行,包含一个整数B,表示替换后的数。
样例
输入样例#1
8459045
输出样例#1
8859085
输入样例#2
123
输出样例#2
123
样例解释
对于样例1,输入8459045中有两个4,都将其替换为了8,得到8859085。
对于样例2,输入123中不包含4,无需修改输入数字,输出123。
数据范围
0≤A≤108。
参考程序

策划:GESP技术委员会副主席 刘晓庆
技术支持:王岐
【关于GESP第14次认证】

认证语言:
C++/Python/图形化编程

报名及交费时间:
2026年4月15日17:00-6月16日24:00

准考证下载及打印时间:
2026年6月23日9:30-6月27日9:30

认证时间:
1-4级 2026年6月27日 上午09:30-11:30
5-8级 2026年6月27日 下午13:30-16:30

认证方式:
全国各GESP考点内上机考试

报名方式:
登录GESP网站(https://gesp.ccf.org.cn/)进行报名或“CCF GESP”微信公众号报名。

认证安排及收费标准:
认证时间 | 认证级别 | 认证语言 | 认证费用 |
上午9:30-11:30 | 一级 | C++/Python/图形化 | 300元/人 |
上午9:30-11:30 | 二级 | C++/Python/图形化 | 320元/人 |
上午9:30-11:30 | 三级 | C++/Python/图形化 | 340元/人 |
上午9:30-11:30 | 四级 | C++/Python/图形化 | 360元/人 |
下午13:30-16:30 | 五级 | C++/Python | 380元/人 |
下午13:30-16:30 | 六级 | C++/Python | 400元/人 |
下午13:30-16:30 | 七级 | C++/Python | 420元/人 |
下午13:30-16:30 | 八级 | C++/Python | 440元/人 |

报名流程
📍第一种方式:GESP网站报名流程
步骤1:在电脑上使用Google Chrome浏览器/Microsoft Edge浏览器/Firefox浏览器进入GESP网站 (https://gesp.ccf.org.cn) ,参加过GESP认证的考生可直接点击【登录】;未参加过GESP的考生需先点击【注册】完成新用户注册→点击【登录】。
步骤2:进入认证列表,在对应的认证名称后点击【立即报名】。
步骤3:按顺序填写考生的报名信息,身份证信息、语言等级都填写完整后,选择考点,所选城市/区没有考点信息显示,则说明该地区暂无考点,请勾选其他城市/区。考点剩余机位数大于0,则可以报名该考点。填写完成后,点击【提交报名】。
步骤4:在报名信息确认界面,仔细核对报名信息后,点击【确认报名】。
注:如需修改考生信息,请点击【修改报名】。
步骤5:进入交费界面,选择支付方式(支付宝/微信)后,点击【确认】,然后扫码支付报名费用。
注:部分省市的考位数量变化较快,如交费页面提示该考点已报满,请点击【我的报名】后点击【取消报名】,重新填写报名信息后再提交。
步骤6:完成支付,认证报名成功。
步骤7:等待审核,已交费考生信息会依次审核。
步骤8:在指定时间内下载、打印准考证。
步骤9:参加认证。
📍第二种方式:GESP公众号报名流程
点击“CCF 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
扫描下方二维码关注GESP公众号,了解更多资讯

