各位家长、小编程爱好者们大家好本期为大家带来CCF GESP 2026 年 3 月 Python 一级官方完整试题,包含单选题、判断题、编程题三大题型,附带标准答案、逐题考点拆解、易错点提醒以及完整参考代码。GESP 编程等级认证是少儿编程主流考级之一,这份真题含金量十足,非常适合备考练习、课堂巩固、查漏补缺,建议小朋友们先独立做题,再对照解析订正哦!一、单选题(共 15 题,每题 2 分)
整体说明:Python 一级单选涵盖计算机基础、变量、运算符、分支语句、循环、turtle 绘图等核心考点。题干:2026 年春节联欢晚会上一个武术表演节目《武 BOT》。节目中多个人形机器人会表演空翻,它们落地可能会有微微踉跄,但都会迅速调整姿态站稳,并适当移动来和前后左右的其他机器人保持原来队列。如果将机器人视作一个计算机系统,那么在该计算机系统中下面哪一项不能作为输入设备 ( )。解析:传感器、遥控器、摄像头都属于向计算机传递信息的输入设备;AI 算法程序属于软件程序,并非硬件输入设备,因此选 B。题干:小明学习编程有一段时间了,他想在图形环境下把当前目录 (或文件夹) 下的文本文件 20260314.txt 的名字改一下。他用鼠标左键点击选中该文件后,立即完成下面哪个操作后将处于输入新文件名的状态 ( )。解析:选中文件后右键选择「重命名」可直接进入改名状态;双击左键是打开文件,F1 是帮助快捷键,回车键仅确认选中,均无法重命名。第 3 题
题干:有关下面 Python 的说法,正确的是 ( )A. 为了方便初学者,print (PI) 和 print (pi) 效果相同,即变量的大小写不敏感B. print (PI) 修改为 print (Pi) 能正常执行C. 不能用 PI 做变量名,因为要保存圆周率这个常量D. 将程序中 PI 全部改写为 Pai , 将能正常执行,不会报错考点:Python 基础 - 变量命名、大小写规则解析:Python变量严格区分大小写,PI、Pi、pi 是三个不同变量;PI 不属于 Python 保留字,可以正常用作变量名,改写为 Pai 可正常运行。题干:Python 表达式3 * 3 ** 2的值为 ( )。解析:Python 中幂运算(**)优先级高于乘法(*),计算顺序:3**2=9,3*9=27。第 5 题
题干:下面的 Python 代码执行后,其输出是 ( )a, b = 3, 4print(a + 2, b - 2)print(a, b)
解析:a=3、b=4,第一行输出 3+2=5、4-2=2;变量本身不会被修改,第二行依旧输出 3 4。第 6 题
题干:下面 Python 代码的相关说法,正确的是 ( )A. 执行时如输入 10, 则将输出 10
B. 执行时如输入 3.14, 则将输出 3.14
C. 执行时如输入 ABC, 则将输出 0
D. 执行时如输入 - 10, 则将输出 10
答案:A
考点:input 输入、int 类型转换
解析:代码将输入强制转为整数,输入整数 10 可正常输出;输入小数、字母会直接报错;负数输入会原样输出,不会取绝对值。
第 7 题
题干:下面 Python 代码执行时,其说法正确的是 ( )N = int(input())M = int(input())if N > M: print(N - M)else: print(M - N)
A. 不管输入是正数负数还是 0, 其输出结果肯定是大于等于 0B. 不管是负整数、正整数亦或 0, 其结果肯定是大于等于 0C. 如果 N 和 M 是相等的整数,将不会有输出D. 如果 N 和 M 输入带有小数点的数,将按整数部分计算解析:代码本质是求两个整数的差值绝对值,结果必然≥0;N=M 时执行 else 语句,会输出 0;代码强制转为 int,输入小数会直接报错。第 8 题
题干:下面 Python 代码执行后的输出是 ( )tnt = 1for i in range(5): tnt *= iprint(tnt, i)
A. 24 5 B. 10 5 C. 24 4 D. 0 4解析:range (5) 生成 0、1、2、3、4;第一轮循环 tnt=1*0=0,后续所有相乘结果均为 0;循环结束后 i 最终值为 4,最终输出0 4。第 9 题
题干:Python 编程求数列-1+2+3-4+5+6-7+8+9-10+11+12-13+......之值。如输入 4, 则计算 1 到 4 包含 1 和 4 之间的值,规律如数列所示。下面说法,正确的是 ( )N = int(input("请输入正整数:"))tnt = 0for i in range(1, N + 1): if i % 3 == 1: tnt += -i else: tnt += iprint(tnt)
A. range (1, N + 1) 应该修为 range (1, N) 才会符合预期B. i % 3 == 1 应修改为 i % 3 == 0 才会符合预期C. i % 3 == 1 修改为 i % 3 与当前程序效果相同解析:数列规律:每 3 个数,第 1 个数取负,后两个取正。i%3==1 正好匹配 1、4、7… 位置,代码逻辑完全符合题目要求。第 10 题
题干:下面 Python 代码的相关说法,正确的是 ( )for i in range(1, 10): if i % 2 == 0: continue else: print(i, end = "#") print(i,"END")
B. 删除 else: 后的执行效果与当前代码相同C. 删除 else: 且 print (i, end = "#") 与 if 对齐,则执行效果与当前代码相同D. 将 print (i,"END") 与 if 对齐,其执行效果与当前代码相同考点:continue 跳转、循环 else 结构、代码缩进(Python 核心考点)解析:Python 靠缩进区分代码块,continue 会跳过本次循环剩余代码;调整缩进后逻辑不变,其余选项均存在缩进、语法逻辑错误。第 11 题
题干:下面的 Python 代码用于求正整数各位数之和 (即数位和), 约定高位不为 0, 如 123 则各位数之和为 1+2+3 结果为 6。为实现该目标,横线处应该填写的代码是 ( )N = int(input())tnt = 0while N != 0:此处填代码print("各位数数之和为:", tnt)
A. tnt += N // 10 ;N //= 10考点:while 循环、取余 %、整除 // 运算解析:N%10取出数字最后一位,累加至总和;N//10去掉最后一位,循环直至数字变为 0;/会生成浮点数,不能用于整数处理。第 12 题
题干:某个功能需要知道一个输入的正整数的各位数字中有多少个奇数,下面的 Python 代码是其实现,横线处应该填入的代码是 ()N=int(input())odd_count=0#记录奇数的个数old_number=N#保存原数while N!=0: if : #此处填代码 odd_count+=1 N=(N-N%10)//10print(f"{old_number}中共有{odd_count}个奇数")
解析:N%10取出单个数字,数字对 2 取余等于 1 代表奇数,满足条件则计数 + 1。第 13 题
题干:下面的 Python 执行后如果输入 8, 希望输出如下图形。相关说法,正确的是 ()import turtleN = int(input("请输入射线数量:"))Angle = 360 / N #计算出每条射线之间间隔的角度for i in range(N): turtle.right(Angle) turtle.forward(100) turtle.goto(0,0)turtle.done()
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) 才能达到预期效果解析:题干代码每次转向360/N度画线在回到原点,那么意味着它会在360/N...360这些数值上画线,循环N次即可。第 14 题
题干:有关下面 Python 代码的说法,正确的是 ( )import turtleturtle.forward(100)turtle.left(90)turtle.forward(100)turtle.goto(0, 0)turtle.done()
B. 代码执行后,将输出等长的两条边,其夹角为 90 度,因为没有画出斜边,因此不是三角形D. 因为没有执行 turtle.pendown () , 所以不会画出图形解析:turtle 默认落笔状态,两段垂直等长线段 +goto(0,0)连接起点,最终形成等腰直角三角形;90° 夹角不在原点。第 15 题
题干:在 Python 中,turtle.write () 用于在当前坐标处输出文字。下面说法,错误的是 ()import turtlefor i in range(1,10): turtle.write(f"{i}+{i}={i*2}") turtle.goto(i*40,0)turtle.done()
B.1+1=2 的起点与 2+2=4 的起点间隔 40 个像素C. 最后输出是 10+10=20D. 1+1=2 等输出文字的下面将有一条直线解析:range (1,10) 取值为 1~9,最后输出是9+9=18,不会出现 10+10=20。二、判断题(10 题,每题 2 分)
第 1 题
题干:小明的妈妈最近刚刚给他买了一块电话手表,除了可以看时间,小明也可以用它和妈妈打电话、收发信息,那么可以推测这块手表中装有一款特定操作系统。( )解析:智能穿戴设备(电话手表、智能手表)都搭载专用嵌入式操作系统。第 2 题
题干:Python 表达式4 ** 2和2 * 2 ** 2的结果相同。( )解析:4的2次方=16;2*2**2=2*4=8,两者结果不一致;乘方运算的优先级高于乘法运算。第 3 题
题干:下面 Python 代码执行后将输出 0。 ( )for i in range(1, 10): if i % 3 == 0: breakprint(i)
解析:range (1,10) 中第一个 3 的倍数是 3,代码输出 3 并终止循环,不会输出 0。第 4 题
题干:下面 Python 代码用于求 1 到 N 之和,N 为正整数。因为 中为 N+1 , 因此是 1 到 N 且包含 N 之和。N = int(input("请输入正整数:"))total = 0for i in range(1, N + 1):total += iprint(total)
答案:错误
解析:python中缩进也是语法的一部分,total+=i没有缩程序运行会发生错误。第 5 题
题干:执行下面的 Python 代码,其语句 print (N) 将被执行 0 次或无数次 (即死循环)。( )N = input()while N: print(N)
答案:正确
解析:该程序有输入,只有空不会进入循环即执行0次,或者不为空进入循环,但没有控制次数的条件就会一直循环即死循环。第 6 题
题干:下面的 Python 代码能实现判断输入的正整数是否为对称数。所谓对称数是指从左到右和从右到左读该数,其 值相同,如 121 或 414 等是对称数,而 123 不是对称数。( )n = int(input("请输入正整数:"))old_number = nnew_number = 0while n != 0: new_number = new_number * 10 + n % 10 n //= 10if old_number == new_number: print("对称数")else: print("非对称数")
答案:正确
解析:代码实现数字反转,原数与反转后数字相等即为对称数。第 7 题
题干:执行下面的 Python 代码,如果输入为大于 0 的整数,则输出一定为 -N。N = int(input())total = 0for i in range(-N,N,2): total += iprint(total)
答案:正确
解析:数列:-N,\ -N+2,\ -N+4,\dots,N-2,这是等差数列,首尾两两配对求和,最终累加结果恒等于 -N,题干描述正确。第 8 题
题干:执行 Python 语句print(int(3.14))将报错。( )解析:int () 可以将小数转为整数(直接舍去小数部分),执行后输出 3,不会报错。第 9 题
题干:下面的 Python 代码执行后,将输出等边三角形。( )import turtleturtle.circle(50, steps = 3)turtle.done()
答案:正确
解析:circle() 本意是画圆,两个关键参数:第一个参数50:半径 = 50 像素,代表图形外接圆的半径。
steps = 3:指定用几条线段拼接成图形。
规律:steps=N就画出正 N 边形(如steps=4是正方形)。
第 10 题
题干:下面的 Python 代码执行后第一条直线与第二条直线相交于原点,两线之间的夹角为 120 度。import turtleturtle.forward(100)turtle.right(60)turtle.forward(100)turtle.right(60)turtle.forward(100)turtle.done()
答案:错误
海龟默认起点 = 画布正中心(坐标原点 (0, 0))执行 turtle.forward(100):海龟从原点出发向右走 100 像素,第一条线终点坐标:(100, 0)再 forward(100):从 (100, 0) 这个点继续画线;第一条线和第二条线的交点是 (100, 0),不是原点 (0, 0)。入线:从(100,0))指向左(原路返回,水平向左)
出线:海龟转向后的前进方向(顺时针偏右 60°)
三、编程题(每题 25 分,共 50 分)
编程题是考级重难点,包含题目描述、完整参考代码、代码逐行讲解。编程题 1:交朋友
题目描述
Alice 班上共有 4 个小朋友,身高分别为 H₁,H₂,H₃,H₄,其中 Alice 的身高为 H₁。Alice 想要和身高最接近她的人交朋友,如果有多个人符合条件,则 Alice 想和其中较矮的那一人做朋友,请输出这个人的身高。# 读入4个小朋友的身高 H1 = Alice 的身高H1 = int(input())H2 = int(input())H3 = int(input())H4 = int(input())# 计算身高差(转为正数)diff2 = H2 - H1if diff2 < 0: diff2 = -diff2diff3 = H3 - H1if diff3 < 0: diff3 = -diff3diff4 = H4 - H1if diff4 < 0: diff4 = -diff4# 初始化最优人选best = H2best_diff = diff2# 对比第三位小朋友if diff3 < best_diff: best = H3 best_diff = diff3elif diff3 == best_diff and H3 < best: best = H3# 对比第四位小朋友if diff4 < best_diff: best = H4 best_diff = diff4elif diff4 == best_diff and H4 < best: best = H4# 输出结果print(best)
编程题 2:数字替换
题目描述
Alice 不喜欢数字 4,但觉得数字 8 寓意好,她想把数中的 4 全都替换成 8,若数中不含 4 则无需修改。num = int(input())new_num = 0loop_count = 0times = 10 ** loop_countwhile num > 0: if num % 10 == 4: new_num += times * 8 else: new_num += times * (num % 10) num //= 10 loop_count += 1 times = 10 ** loop_countprint(new_num)
四、栏目长期学习规划
本专栏固定每周一期、一套真题,按 GESP1~6 级顺序连载:
✅短期(1~2 个月):刷完 Python 一级真题,吃透变量、运算符、if 分支、for/while 循环、数位拆分、turtle 基础绘图;
✅中期(3~6 个月):冲刺 GESP Python 二级,字符串、列表、嵌套循环、简单枚举与模拟算法专项练习;
✅长期:循序渐进进阶 3-6 级,函数、字典、文件操作、基础排序与搜索算法全覆盖,搭建完整 Python 编程知识体系。
福利 + 下期预告
🎁福利:私信关键词【GESPPY】,免费领取整套 PDF 原版试卷 + 答案,可打印刷题。
📅下期预告:下周全新 GESP 一级真题完整精讲,准时更新!