内容正文:
国时真机
GESP
CCF编程能力等级认证
Grade Examination of Software Programming
Python一级
2025年12月
1单选题(每题2分,共30分)
题号123456789101112131415
答案BAABACA BB B A D BB D
第1题近日,空中客车公司表示,约6000架空客A320系列飞机需要紧急更换一种易受太阳辐射影响的飞行控制软
件。空客表示,在对一起飞行事故进行分析后,结果表明强烈的太阳辐射可能会损坏飞行控制系统所需的关键数
据,导致判断失误,进而可能引发飞行异常。在这里的飞行控制系统中,执行判断的部件最可能是下面的()。
☐A.辐射传感器
☐B.处理器
□C.内存单元
☐D.输出设备
第2题下面的Python代码在集成开发环境中运行时,提示有'invalid character'错误。可能的原因是():
1a,b=3,4#L1
2
print(a)#L2
3 print(b)#L3
☐AL1行代码中的逗号很可能是中文逗号,应该改为英文逗号。
□B.L1行应该分为两行,分别是a=3和b=4。
☐C.代码运行前没有保存到文件。
□D.L2和L3不能分为两行,应合并为一行。
第3题下面有关Python变量的说法,正确的是()。
☐A.不可以用for作为变量名,因为for是Python的关键字(保留字)。
□B._tnt不可以是变量名,因为变量名的第一个字符必须是英文字母。
☐C.tnt-不可以是变量名,因为最后一个字符容易与减号混淆。
☐D.可以用print作为变量名,因为print是关键字,但这不是好习惯,因为print有约定的功能与含义。
第4题Python表达式2+3*4*2的值为()。
☐A.20
▣B.50
☐c.52
☐D.80
第1页/共10页
第5题下面的Python代码执行后,其输出是()。
1a=3
2
b=a=4
3
print(a,b)
☐A.44
□B.33
☐C.34
☐D.43
第6题下面的Pytho如代码执行时如果先输入10回车后输入20并回车,其输出是()。
1
N=input("第-个数:")
2
M=input("第二个数:")
3
print(f"int(N+M)=fint(N+M)}")
☐A.30=30
☐B.1020=1020
☐C.int(N+M)=1020
□D.错误提示
第7题某个整数很长很长,形如:1232123212321.,其规律是从1开始逐一升高到3然后逐一降低到1,然后又逐
一升高到3,一直到很长很长。编写程序,判断从左开始第N位数是几?假设从左到右第1位为1。在横线处应该填入
的代码是()。
1
N=int(input("请输入编号:")
2
M=
3
4
if M !0:
5
print(M)
6
else:
>
print(2)
☐A.N%4
☐B.N/I4
☐C.N%3
☐D.N/3
第8题下面Python代码执行后的输出是()。
1
tnt =0
2
for i in range(100):
3
tnt +1
4
print(tnt,i)
☐A.9999
☐B.10099
☐C.99100
☐D.100100
第9题有关下面Python代码的说法,错误的是()。
第2页/共10页
1 tnt 0
for i in range(1,10,2):
tnt +=i
4
print(tnt)
☐A.range(1,10,2)改为range(1,11,2)结果相同。
☐B.range(1,10,2)改为range(0,10,2)结果相同。
□C.tnt+=i与tnt=tnt+i效果相同。
☐D.tnt+=i与tnt=i+tnt效果相同。
第10题下面Python代码执行后输出是()。
1
for i in range(10,100,10):
2
1fi%10==0:
continue
4
print(i,end ="#"
☐A.10#20#30#40#50#60#70#80#90#
☐B.90#
☐c.90
☐D.没有输出
第11题两个正整数,只要不相等,就一直进行如下操作:最大数减去最小数得到一个值,该值和两个数的最小数
构成新的两个正整数,重复操作,直到两个数相等,此时输出该数。下面的Pythor代码用于实现该操作,横线处应
该填写的代码是()。
1 N int(input())
2
M int(input())
4
while N !M:
if N>M:
6
else:
9
10
print(N)
☐A
1
N=N-M
2M=M-N
□B.
1M=M-N
2N=N-M
c.
1M=N-M
2 N=M-N
□D
1 N,MM,N
2
M,NN,M
第3页/共10页
第12题如果一个正整数能被3整除,或者某一位能被3整除,则称之为“漂亮数”,如12是漂亮数因为能被3整除
311是漂亮数因为含有3,22不是漂亮数因为不能被3整除也不含有3。下面的Pytho咖用于判断正整数N是否为漂亮
数,横线处应该填入的代码是()。
1
N int(input())
2
3
FLag="非漂亮数"
1fN%3=0:
5
Flag="漂亮数'
6
else:
while N !0:
8
if
9
FLag-"漂亮数"
10
break
11
N//=10
12
print(Flag)
☐A.N%10=0
☐B.N%3%10=0
☐C.N%10%3
☐D.N%10%3=0
第13题下面的Pythor代码执行后海龟最终朝向是()。(默认初始朝向东,即屏幕右侧)
1
import turtle
turtle.forward(100)
3
turtle.right(90)
turtle.forward(50)
☐A.东(0)
☐B.南(270°或-90)
☐C.西(180)
☐D.北(90)
第14题为在Python Turtle中输出如下图形,代码横线处应填入()。
import turtle
for i in range(12):
3
turtle.forward(100)
4
turtle.left(30)
☐A.turtle.home()
☐B.turtle.goto(o,o)
☐C.turtle.reset()
第4页/共10页
□D.turtle.home(o,o)
第15题为在Python Turtle中输出如下图形,代码横线处应填入()。
1
import turtle
2
for i in range(6):
3
turtle.circle(
☐A.20*i
☐B.20*(i+1)
☐C.20*i,steps=4
☐D.20*(i+1),steps=4
2判断题(每题2分,共20分)
题号12345678910
答案×√√×××√√√√
第1题鸿蒙是华为公司开发的一款操作系统,那么它能够将正确的源程序翻译成目标程序,并运行。()
第2题Python表达式10*0.5和10*1/2的结果并不相同。()
第3题下面Python代码执行后将输出1。()
1 for i in range(10):
2
ifi%3=0:
3
continue
else:
break
6 print(i)
第4题下面Python代码中的range(-10)改为range(1o)执行结果相同。()
1 tnt 0
2
for i in range(-10):
3
if i<0:
4
i=-i
tnt +=i
6 print(tnt)
第5题下面Python代码执行后将输出99,因为range(100)不包括100,而是到99。()
第5页/共10页
cnt =0
for i in range(100):
3
cnt +=1
4
print(cnt)
第6题下面的Pytho代码能用于判断输入的正整数是否为对称数。所谓对称数是指从左到右或从右到左读该数,其
值相同,如121或414等是对称数,而123不是对称数。()
1
n=nt(input("诗输入正整数:"))
3
new_number =0
4
while n!=0:
new_number new_number 10 +n 10
n//=10
if n =new_number:
9
print("对称数")
10
else:
11
print("非对称数")
第7题下面的Python代码执行后将输出-100。()
tnt 0
for i in range(-100,100):
tnt +i
4
print(tnt)
第8题下面Python代码执行后,其输出是-50。()
1
tnt =0
2
flag 1
3
for i in range(1,100 +1):
4
tnt +i*flag
flag =-flag
6
print(tnt)
第9题下面的Pythor代码执行后,将画出横平竖直(两条边水平,另两条边与之垂直,且首尾相接)的正方形。()
1
import turtle
2
turtle.right(45)
3
turtle.circle(45,steps 4)
第10题下面的Python代码执行后将绘制出如下图形。()
import turtle
2
for i in range(8):
3
turtle.right(45)
turtle.circle(50,steps 4)
第6页/共10页
3编程题(每题25分,共50分)
3.1编程题1
。试题名称:小杨的爱心快递
·时间限制:1.0s
·内存限制:512.0MB
3.1.1题目描述
小杨是“爱心社区”的小志愿者,每周他都会帮助邻居们寄送捐赠给山区小学的文具和书籍。快递公司为了支持公益
行动,制定了特殊的运费规则,鼓励大家合理包装:
假设快递的体积为V,重量为G。
。按体积计算:运费按体积计算,公式是0.5×V元。
。按重量计算:为了鼓励减轻包裹重量,规则是:当重量小于300克,即G<300时,运费为M元;当重量达到
或超过300克,即G≥300时,运费为N元。
快递公司的叔叔说:“我们应该选择最公平合理的计费方式。”
所以,最终的运费会取按体积计算和按重量计算这两种方式中价格较低的那一个,这样对寄件人最公道。
3.1.2输入格式
四行,每行一个一位小数的浮点数,分别代表,快递的体积V,快递的重量G,第一档重量运费M,第二档重量运
费N。
3.1.3输出格式
一行一个一位小数,代表实际快递运费。
31.4样例
3.1.4.1
输入样例1
1100.4
300.2
3
60.6
470.5
3.1.4.2
输出样例1
150.2
3.1.4.3
输入样例2
199.8
2
200.9
60.2
470.1
第7页/共10页
3.1.4.4输出样例2
149.9
3.1.4.5
样例解释
。对于样例1:快递体积V为100.4,重量G为300.2,第一档重量运费M为60.6,第二档重量运费N为70.5。
-若按体积收费,费用为0.5×100.4=50.2:
-若按重量收费,由于重量G=300.2超过300,费用为70.5。
输出价格较低的50.2。
。对于样例2:快递体积V为99.8,重量C为200.9,第一档重量运费M为60.2,第二档重量运费N为70.1。
-若按体积收费,费用为0.5×99.8=49.9;
若按重量收费,由于重量G=200.9小于300,费用为60.2。
输出价格较低的49.9。
3.1.5数据范围
对于所有测试点,保证给出的浮点数不超过1000。
3.1.6参考程序
1V=float(input())#输入体积V
2
G=float(input())#输入重量W
3
M=float(input())#第一档重量运费M
4N=float(input())#第二档重量运费N
5
6
按体积计费时的费用总额
p_vV/2
8
9
按重量档次计费计算
10
1fG<300:
11
p_g=M#如果小于300,则按此计费
12
else:
13
P_g=N#按第二档计费
14
15
#比较体积计费和重量计费,选择费用少的计费方式
16
if p_v p_g:
17
print(f"{p_v:.1f}")
18
else:
19
print(f"{p_g:.1f}")
3.2
编程题2
。试题名称:手机电量显示
。时间限制:1.0s
。内存限制:512.0MB
3.2.1题目描述
小杨的手机就像一个聪明的小助手,当电量变化时,它会用不同的方式来提醒我们,假设当前的电量百分比为P:
。当电量非常低(不超过10,即P≤10),它会显示一个大写字母R,就像在说:“快给我充电吧!(Rd警告
色)”
·当电量有点低(超过10但不超过20,即10<P≤20),它会显示一个大写字母L,意思是“电量有点L0w
第8页/共10页
啦!”
·当电量比较充足(超过20,即P>20),它就会直接显示具体的数字,比如直接显示50,表示还有50的电
量。
3.2.2输入格式
第一行一个正整数T,代表数据组数。
对于每组数据,一行包含一个正整数P,代表手机电量百分比。
3.2.3输出格式
对于每组数据,输出一行,代表当前手机显示的电量信息。
3.2.4样例
3.2.4.1
输入样例
15
2
10
1
20
5
99
619
3.2.4.2
输出样例
1R
2
R
3
L
4
99
5
L
3.2.4.3
样例解释
输入样例1共有五组数据:
。第一组数据手机电量P=10,满足P≤10,电量非常低,显示R。
。第二组数据手机电量P=1,满足P≤10,电量非常低,显示R。
·第三组数据手机电量P=20,满足10<P≤20,电量有点低,显示L。
。第四组数据手机电量P=99,满足P>20,电量比较充足,直接显示具体的数字99。
·第五组数据手机电量P=19,满足10<P≤20,电量有点低,显示L。
3.2.5数据范围
对于所有测试点,保证1≤T≤20,1≤P≤100。
第9贡/共10页
3.2.6
参考程序
1
#读取测试用例的数量T
2
Line=input()#读入数据行的数量,Line的数据类型为字符串
3
T=int(Line)#将Line转换为整数,表示输入数据行的数量
5.
#循环T次
6
#循环变量仅用于控制循环次数
7
for in range(T):
8
#读取P
9
P int(input())
10
11
#判断逻辑
12
1fP<=10:
13
print("R")#电量小于10%时
14
e1ifP<=20:#电量/小于20%时
15
print("L")
16
else:
17
print(P)#电量超过20%时
第10页/共10页