内容正文:
时真机
GESP
CCF编程能力等级认证
Grade Examination of Software Programming
Python一级
2026年03月
1单选题(每题2分,共30分)
题号123456789101112131415
答案BA DBAAB DD C BBB A C
第1题2026年春节联欢晚会上一个武术表演节目《武B0T》。节目中多个人形机器人会表演空翻,它们落地可能会
有微微踉跄,但都会迅速调整姿态站稳,并适当移动来和前后左右的其他机器人保持原来队列。如果将机器人视作
一个计算机系统,那么在该计算机系统中下面哪一项不能作为输入设备()。
☐A.用于检测重心的重力传感器
☐B.预装的AI算法程序
☐C.接收动作指令的遥控器
口D.拍摄其他机器人的摄像头
第2题小明学习编程有一段时间了,他想在图形环境下把当前目录(或文件夹)下的文本文件20260314.txt的名
字改一下。他用鼠标左键点击选中该文件后,立即完成下面哪个操作后将处于输入新文件名的状态()。
☐A.单击右键并选择弹出菜单中的“重命名”
□B.双击左键
☐C.按功能键1
□D.按回车键
第3题有关下面Python的说法,正确的是()。
1PI=3.1415926
2 print(PI)
□A.为了方便初学者,print(PI)和print(pi)效果相同,即变量的大小写不敏感
☐B.print(PI)修改为print(Pi)能正常执行
☐C.不能用PI做变量名,因为要保存圆周率这个常量
☐D.将程序中PI全部改写为Pai,将能正常执行,不会报错
第4题Python表达式3*3*2的值为()。
☐A.81
☐B.27
☐C.24
☐D.18
第1页/共9页
第5题下面的Python代码执行后,其输出是(
1a,b=3,4
2
print(a 2,b-2)
3
print(a,b)
☐A
152
234
□B.
152
2
52
☐c.
152
234
OD.
152
2
52
第6题下面Python代码的相关说法,正确的是()。
1 N int(input())
2
print(N)
☐A.执行时如输入10,则将输出10
☐B.执行时如输入3.14,则将输出3.14
☐C.执行时如输入ABC,则将输出0
☐D.执行时如输入-10,则将输出10
第7题下面Pythor代码执行时,其说法正确的是()。
1 N int(input())
2
M int(input())
3
4
if N M:
print(N M)
6
else:
7
print(M N)
☐A.不管输入是正数负数还是0,其输出结果肯定是大于等于0
口B.不管是负整数、正整数亦或0,其结果肯定是大于等于0
☐C.如果N和M是相等的整数,将不会有输出
☐D.如果N和M输入带有小数点的数,将按整数部分计算
第8题下面Python代码执行后的输出是(
)。
1 tnt 1
2
for i in range(5):
tnt *i
print(tnt,i)
第2页/共9页
☐A.245
☐B.105
☐C.244
☐D.04
第9题Python编程求数列-1+2+3-4+5+6-7+8+9-10+11+12-13+..·之值。如输入4,则计算1到4包含1和4之间
的值,规律如数列所示。下面说法,正确的是()。
1N=int(input("诗输入正整数:"))
2
3
tnt =0
4
for i in range(1,N 1):
5
1f1%3=1:
6
tnt +=-i
7
else:
8
tnt +=i
9 print(tnt)
☐A.range(1,N+1)应该修为range(1,N)才会符合预期
☐B.1%3=1应修改为1%3=0才会符合预期
☐C.i%3=1修改为i%3与当前程序效果相同
口D.当前代码能达到题目所描述目标
第10题下面Python代码的相关说法,正确的是()。
1 for i in range(1,10):
1fi%2=0:
continue
4
else:
5
print(i,end ="#"
6
print(i,"END")
☐A.上述代码执行后,其输出是1#3#5#7#9#9END
☐B.删除eLse:后的执行效果与当前代码相同
☐C.删除eLse:且print(i,end="#")与f对齐,则执行效果与当前代码相同
□D.将print(i,"END")与f对齐,其执行效果与当前代码相同
第11题下面的Pythor代码用于求正整数各位数之和(即数位和),约定高位不为0,如123则各位数之和为1+2+3
结果为6。为实现该目标,横线处应该填写的代码是()。
1 N int(input())
2
tnt =0
3
while N !0:
6
7
print("各位数数之和为:",tnt)
☐A.
1tnt+=N/10
2
N//=10
第3页/共9页
B.
1
tnt +N 10
2
N//=10
c.
1
tnt +N%10
2N/=10
OD.
1
tnttnt N%10
2
N/=10
第12题某个功能需要知道一个输入的正整数的各位数字中有多少个奇数,下面的Pythor代码是其实现,横线处应
该填入的代码是()。
1 N int(input())
2
3
odd_count=0#记录奇数的个数
4
old_number=N#保存原数
5
while N !0:
if
8
odd_count +=1
9
10
N=(N-N%10)//10
11
print(f"{oLd_number}中共有{odd_count}个奇数")
☐A.N%10%2=0
☐B.N%10%2=1
▣C.N/10/2=1
☐D.N/12/10=0
第13题下面的Pythor执行后如果输入8,希望输出如下图形。相关说法,正确的是()。
第4页/共9页
1 import turtle
2
N=int(input("诗输入射线数量:"))
Angle=360/N#计算出每条射线之间间隔的角度
4
for i in range(N):
6
turtle.right(Angle)
turtle.forward(100)
8
turtle.goto(o,0)
9
10
turtle.done()
☐A.Ang1e=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)才能达到预期效果
第14题有关下面Python代码的说法,正确的是()。
1 import turtle
2
3
turtle.forward(100)
turtle.left(90)
turtle.forward(100)
turtle.goto(0,0)
7
turtle.done()
☐A代码执行后,将输出等腰直角三角形
口B.代码执行后,将输出等长的两条边,其夹角为90度,因为没有画出斜边,因此不是三角形
口C.代码执行后,90度夹角位于原点
☐D.因为没有执行turtle.pendown(),所以不会画出图形
第l5题在Python中,turtle.write()用于在当前坐标处输出文字。下面说法,错误的是()。
1 import turtle
3
for i in range(1,10):
turtle.write(f"{i]+i=i*2}")
turt1e.goto〔i*40,0)
6
turtle.done()
☐A.1+1=2输出在坐标原点,即(0,0)
☐B.1+1=2的起点与2+2=4的起,点间隔40个像素
☐C.最后输出是10+10=20
☐D.1+1=2等输出文字的下面将有一条直线
2判断题(每题2分,共20分)
题号12345678910
答案√×××√√√×√x
第5页/共9页
第1题小明的妈妈最近刚刚给他买了一块电话手表,除了可以看时间,小明也可以用它和妈妈打电话、收发信息,
那么可以推测这块手表中装有一款特定操作系统。()
第2题Python表达式4*2和2*2*2的结果相同。()
第3题下面Python代码执行后将输出0。()
1
for i in range(1,10):
2
1fi%3=0:
break
4
print(i)
第4题下面Python代码用于求1到N之和,N为正整数。因为range0中为N+1,因此是1到N且包含N之和。()
1
N=int(input("请输入正整数:"))
2
total 0
for i in range(1,N+1):
4
total +=i
5 print(total)
第5题执行下面的Python代码,其语句pint(N)将被执行0次或无数次(即死循环)。()
1
N=input()
2
while N:
print(N)
第6题下面的Pytho代码能实现判断输入的正整数是否为对称数。所谓对称数是指从左到右和从右到左读该数,其
值相同,如121或414等是对称数,而123不是对称数。()
1n=int(input("诗输入正整数:"))
2
3
old_number =n
4
new_number =0
5
while n !0:
6
new_number new_number 10 n 10
n/=10
8
9
if old_number =new_number:
10
print("对称数")
11
else:
12
print("非对称数")
第7题执行下面的Pytho如代码,如果输入为大于0的整数,则输出一定为一N。()
1
N int(input())
2
total =0
3
for i in range(-N,N,2):
total +=i
print(total)
第8题执行Python语句print(int(3.14))将报错。()
第9题下面的Python代码执行后,将输出等边三角形。()
1
import turtle
2
turtle.circle(50,steps =3)
3
turtle.done()
第6页/共9贡
第10题下面的Pyho如代码执行后第一条直线与第二条直线相交于原点,两线之间的夹角为120度。()
1
import turtle
2
turtle.forward(100)
4
turtle.right(60)
5
turtle.forward(100)
6
turtle.right(60)
turtle.forward(100)
8
9
turtle.done()
3编程题(每题25分,共50分)
3.1编程题1
。试题名称:交朋友
。时间限制:1.0s
。内存限制:512.0B
3.1.1题目描述
Alice班上共有4个小朋友,身高分别为H1,H2,H3,H4,其中Alice的身高为H1。
Alice想要和身高最接近她的人交朋友,如果有多个人符合条件,则Alice想和其中较矮的那一人做朋友,你能告诉
她这个人的身高是多少吗?
3.1.2输入格式
输入共4行,第i行包含一个整数H,表示班上小朋友的身高。
3.1.3输出格式
输出1行,包含一个整数h,表示Alice想交的朋友的身高。
3.1.4样例
3.1.4.1输入样例
1150
2
165
3
135
4133
3.1.4.2
输出样例
1135
3.1.5样例解释
样例1中,Alice身高为150,第2、3个小朋友与Alice身高差距为15,同样最接近,Alice选较矮的一个即第3个
身高为135的小朋友交朋友。
第7页/共9贡
3.1.6数据范围
保证100≤H:≤199且H:互不相同。
3.1.7参考程序
1#读入4个小朋友的身高
2
H1 int(input())
#A1ice的身高
3
H2 int(input())
4
H3 int(input())
5
H4 int(input())
6
7
#我们只关心H2,H3,H4(其他三个小朋友)
9
#先算出每个人和A11ce的身高差(用绝对值,这样不会负数)
10
11
#与H2小朋友的身高差
12
#如果身高差为负数,转换为正数:
13
diff2 H2 -H1
14
if diff2 <0:
15
diff2 =-diff2
16
17
#与H3小朋友的身高差
18
diff3 H3 H1
19
if diff3 0:
20
diff3 =-diff3
21
22
#与H4小朋友的身高差
23
diff4 H4 H1
24
if diff4 0:
25
diff4 =-diff4
26
之
#刚开始假设最好的朋友是H2
28
best=H2#最好的小朋友身高
29
best_diff=diff2#与最好小朋友的身高差
30
31
#比较H3小朋友
32
if diff3<best_diff:#如果H3更接近,即身高差更小
33
best=H3#最好小朋友的身高进行更新
34
best_diff=diff3#与最好刊小朋友的身高差更新
elif diff3=best_diff and H3<best:#如果一样近,但H3小朋友更矮
36
best H3
37
38
#比较H4
if diff4 best_diff:
#如果H4更接近
40
best=H4#最好小朋友的身高进行更新
41
best_diff=diff4#与最好小朋友的身高差更新
42
elif diff4=best_diff and H4<best:#如果一样近,但H4更矮
43
best H4
44
45
#输出结果,即输出最好小朋友的身高
46
print(best)
3.2
编程题2
·试题名称:数字替换
。时间限制:1.0s
·内存限制:512.0MB
第8页/共9页
3.2.1
题目描述
Alic不喜欢数字4,但觉得数字8寓意好,她想把数中的4全都替换成8,若数中不含4则无需修改,你能帮帮她
吗
3.2.2输入格式
输入一行,包含一个整数A,表示替换前的数。
3.2.3输出格式
输出一行,包含一个整数B,表示替换后的数。
3.2.4样例
3.2.4.1
输入样例1
18459045
3.2.4.2
输出样例1
18859085
3.2.4.3
输入样例2
1123
3.2.4.4输出样例2
1123
3.2.4.5样例解释
对于样例1,输入8459045中有两个4,都将其替换为了8,得到8859085。
对于样例2,输入123中不包含4,无需修改输入数字,输出123。
3.2.5数据范围
0≤A≤108。
3.2.6
参考程序
1
num=int(input())#num保存输入的数
2
3
new_nUm=0#4被替换为8的新数,
Loop_count=0#循环次数
5
times=10*1o0p_count#根据循环次数决定是10的多少次方
while num 0:
1fnum%10-=4:#如果余数是4,也就是该位置为4
9
new_num+=times*8#变成8乘以多少次方
10
else:
11
new_nUm+=times*(nUm%10)#用原数乘以多少次方
12
13
num//=10
14
1oop_c0Unt+=1#循环次数+1,相当于向前一位
15
times=10**1oop_count#根据循环次数决定是10的多少次方
16
17
print(new_nUm)#输出新的数
第9页/共9页