点击上方蓝字·关注我们



CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为青少年计算机和编程学习者提供学业能力验证的平台。GESP覆盖中小学全学段,符合条件的青少年均可参加认证。GESP旨在提升青少年计算机和编程教育水平,推广和普及青少年计算机和编程教育。
GESP考察语言为图形化编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。
本次为大家带来的是2025年6月Python二级认证真题解析。
Python二级
2025年06月
一、单选题(每题2 分,共30 分)
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
答案 | C | A | A | A | D | D | C | C | B | A | D | D | D | D | A |
1、2025年4月19日在北京举行了一场颇为瞩目的人形机器人半程马拉松赛。比赛期间,跑动着的机器人会利用身上安装的多个传感器所反馈的数据来调整姿态、保持平衡等,那么这类传感器类似于计算机的( )。
A. 处理器
B. 存储器
C. 输入设备
D. 输出设备
【参考答案】C
【答案解析】机器人身上的传感器类似计算机的输入设备,常见的传感器有温度传感器、压力传感器、陀螺仪等,负责将信号传递给芯片用于分析机器人相关情况。
2、小杨购置的计算机使用一年后觉得内存不够用,想购置一个容量更大的内存条,这时需要的内存条是()。
A. RAM
B. ROM
C. CACHE
D. EPROM
【参考答案】A
【答案解析】内存条的英文简称是RAM,指的是计算机的运行内存,运行内存容量越多,可以同时处理的任务、同时工作的软件数量就越多。
3 题 下面Python代码执行后的输出是( )。

A. True
B. true
C. 9
D. 10
【参考答案】A
【答案解析】最后打印输出的是关系运算判断是否相等,左侧运算的结果为9+16, 右侧运算的结果是25,所以左右两侧判断是否相等成立,结果为真
4、下面Python代码用于获得正整数的第3位数,如1234则输出2。如果是一位数或两位数,则输出0。横线处应填入的代码是()。

A. N % 1000 // 100
B. N // 1000 % 100
C. N / 1000 // 100
D. N % 1000 / 100
【参考答案】A
【答案解析】依照题目的要求需要获取正整数的百位,首先通过对一千进行取余可以得到百位、十位和个位,例如:1234%1000=234,在得到一个三位数之后,整除100可以得到百位
5、下面的Python代码用于判断输入的正整数N是否为质数,其说法正确的是( )。

A. 如果输入2,则将先输出2是质数 ,然后输出2不是质数 ,因此程序存在错误
B. 删除break,对程序执行结果没有影响
C. 每个if语句只能有一个elif子句,所以本程序有语法错误
D. 如果输入15,程序中的循环不会被执行
【参考答案】D
【答案解析】依照题目的要求选项D描述正确,在输入数据为15的情况下会执行第三条分支,根据多分支的特点,执行了第三条分支,就不会执行后续的第五四条分支了
6、今天星期六,其后第N天星期几?如果是星期一到星期六输出形如:星期1、星期2等,星期天则输出星期天。下面的Python代码用于完成上述要求,横线处应填上的代码是( )。

A. (N + 6) / 7
B. (N + 6) // 7
C. N % 7
D. (N + 6) % 7
【参考答案】D
【答案解析】依据题目的描述今天是星期六,经过N天可以求得N+6,使用总的天数对7进行取余,如果整除的话即为星期天,如果有余数,余数就是对应的星期,正确答案是D选项
7、下面的Python代码执行后其输出是( )。

A. 45
B. 28
C. 3
D. 0
【参考答案】C
【答案解析】依照题目所给出的程序,首先循环变量为1,在累加完成后,1%2=1,if条件成立,本次循环会被跳过,第二次循环变量为2,第一个if条件不成立, 但是第二个if条件成立,程序会被break语句打断,最终输出的结果为1+2的累加值3
8、下面Python代码执行后其输出是( )。

A. 110
B. 22
C. 11
D. 没有输出
【参考答案】C
【答案解析】依据题目所给出的程序,可直接观察最后一次循环,变量i最后取值为11,执行内层循环,j=1情况下,if条件为真,循环被打断,最终执行程序的第五行else语句,输出结果是11*1=11
9、下面Python代码执行后输出是( )。

A. 101
B. 100
C. 99
D. 98
【参考答案】B
【答案解析】依照题目所给出的程序,循环的范围是-99至+99,循环步长为2,循环共执行100次,注意代码中第三行写法,其实就是我们平时书写的cnt=cnt+1
10、下面Python代码执行后输出是()。

A. A#A#
【参考答案】A
【答案解析】依据题目给出的程序,首先循环变量为1执行第一个if语句,输出A#,第二次循环变量为2也可以执行第一个if语句,输出A#,第三次循环变量为3执行第五行的else循环被打断,整个程序结束,最终输出A#A#
11、下面Python代码执行后的输出是()。

B. 0#0-1#0-1#1-2#0-2#1-2#2-3#0-3#1-3#2-END
C. 0#0-1#0-1#1-2#0-2#1-2#2-END
【参考答案】D
【答案解析】依据题目所给出的程序,循环变量i取值为0、1、2,为0时内层循环不执行,i取1时,j=0,输出1#0-,i取2时,j可以取值0、1,分别输出2#0-和 2#1-,最后程序输出END
12、下面Python代码执行后,将输出不能被3整除且除以5余数为2的数。下列选项不能实现的是()。

A. i % 3 != 0 and i % 5 == 2
B. i % 3 and i % 5 == 2
C. i % 3 and not(i % 5 != 2)
D. not(i % 3) and i % 5 == 2
【参考答案】D
【答案解析】依照题目的描述D选项是不符合要求的,例如当i=1时,是不能被3整除的,结果应为真,但i%3=1结果为真,取反后结果为假,不能正确判断”不能被3整除”
13、下面Python代码用于判断一个大于0的正整数是几位数,横线处应填入代码先后是( )。

A.

B.

C.

D.

【参考答案】D
【答案解析】依照题目要求需要判断一个大于零的整数是几位数,所以可以使用while循环,循环条件为N>0,在统计完这一数位之后,可以使用整除消除掉个位,继续下次循环,即N = N // 10,简写为N //= 10
14、判断一个数是否为自守数。自守数的定义是如果一个数的平方其尾数与该数相同,则为自守数,如25的平方是625,其尾数是25,所以25是自守数。相关说法错误的是( )。

A.如果Flag在循环中不被改为False,则说明该数是自守数
B. 代码 if N1 % 10 != M1 % 10: 用于判断其个位数是否相等,如果不等,则表明不是自守数
C. 代码 N1, M1 = N1 // 10, M1 // 10 将把个位数去掉
D. 将 N1 > 0改为 N > 0效果相同
【参考答案】D
【答案解析】分析题目所给出的程序,变量N1和变量N是不能够相互替换的,在程序内部变量N1会发生变化替换为其他数值,作为while循环的条件是正确的,如果将不会发生变化的变量N作为循环条件,程序将无法正确判断是否为自守数
15、下面Python代码实现输出如下图形,相关说法错误的是( )。

A.代码 now_number = 0 移动到外层循环之下,内层循环之上,且与内层循环的for对齐,效果维持不变
B. 代码 now_number += 1 修改为 now_number = 1 + now_number 效果维持不变
C. 将代码 now_number == 10 调整为 now_number > 9 效果维持不变
D. 将最后一行的print()修改为print(""),效果维持不
【参考答案】A
【答案解析】依照题目所给出的正确输出格式,并不是每一行都从0开始,而是在数字达到9之后重新归0,如果将now_number = 0 移动到外层循环之下,内层循环之上,且与内层循环的for对齐,会导致每一行起始都为0
二、判断题(每题2分,共20分)
题号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
答案 | √ | √ | √ | √ | × | × | × | √ | × | √ |
1、现在,人们参加各种闭卷考试时通常都不允许将智能手机、平板电脑等带入考场,因为智能手表通常都有嵌入操作系统及通信等功能,所以也不允许携带入考场。( )
【参考答案】正确
【答案解析】题目中所描述的智能设备,如果带入考场内,可能会有作弊的情况产生,所以不允许携带进入考场
2、在Python代码中,假设N为正整数,如果N小于10,则N // 10 其值为0,大于10则是舍弃个位数的数。( )
【参考答案】正确
【答案解析】在Python语法中// 符号为整除, 小于10的数字整除10结果为0,大于10的数字会被消除掉个位
3、下列Python代码执行后,其输出为3 2 1 。( )
【参考答案】正确
【答案解析】一道题目所给出的程序是符合Python语法的,含义为将数字1、2、3分别赋值给变量a、b、c,再将变量c、b、a分别赋值给a、b、c,即本来a b c为 1 2 3,现在被反过来了,变为3 2 1
4、Python表达式4 ** 0.5 ** 2 接近1.414 ,则说明幂运算符是右结合,即从右向左计算,先计算0.5 ** 2 ,其值与4进行幂运算。( )
【参考答案】正确
【答案解析】考查幂运算符相关知识,在Python语法中幂运算符号是右结合,题目描述正确
5、下面Python执行时将报错,因为变量a的类型从字符串型变到了整数型。( )
【参考答案】错误
【答案解析】题目所给出的程序不会报错,相当于对a变量进行第二次赋值里面存储的是数字456,使用输出语句可以正确输出456
6、下面Python代码执行时如输入99.99,将输出 及格 两个汉字。( )
【参考答案】错误
【答案解析】依据题面所给出的程序,在输入的过程中没有进行类型转换,会导致第二行if语句判断的是字符串和数字 ,使用字符串和数字比大小将报错
7、下面的Python代码执行后,将输出6次CCF 。( )
【参考答案】错误
【答案解析】分析题目所给出程序变量j=0的初始化位置为第一行,并没有处于内外层循环之间,所以在输出完两次CCF之后,不会再执行循环输出了,即使外层循环重新开始,j < 2的条件也不会再成立了
8、下面的Python代码执行后将输出200次GESP( )
【参考答案】正确
【答案解析】依据题目所给出程序,外层循环执行二十次,内层循环执行十次,格式为双层循环嵌套,总的循环次数为次数相乘20*10=200
9、将下面Python代码中的range(5, 1, -1) 调整为range(1, 5) 输出结果相同,因为5到1与1到5的求和相同。( )
【参考答案】错误
【答案解析】题面描述的说法是错误的,range(5, 1, -1)写法取值范围为5 4 3 2,range(1, 5)写法取值范围为1 2 3 4,最终结果不相同
10、为实现如下效果,即N行N列 字符。当输入是奇数时,中间列为 * ,其他是- ;当输入是偶数时,则中间两列是* ,其他是 -。字符阵列后的代码能实现其效果。()
【参考答案】正确
【答案解析】依据题目描述所给出的程序,整体格式为双层循环,在完成内层循环后执行换行操作,首先符合N行N列的格式,内部使用if else分支语句,实现了奇数时,中间列为* ,其他是 -;当输入是偶数时,则中间两列是* ,其他是 -
三、编程题 (每 25分,共50分)
编程题1
试题名称:数三角形
时间限制:1.0 s
内存限制:512.0 MB
题目描述
直角三角形有两条直角边与一条斜边,设两条直角边的长度分别为a,b,则直角三角形的面积为
。
请你计算当直角边长a,b均取不超过n的正整数时,有多少个不同的面积为整数的直角三角形。直角边长分别为a,b和a’,b’的两个直角三角形相同,当且仅当a=a’,b=b’或者a=b’,b=a’。
输入格式
一行,一个整数n,表示直角边长的最大值。
输出格式
输出一行,一个整数,表示不同的直角三角形数量。
样例
输入样例 1

输出样例1

输入样例2

输出样例 2

数据范围
对于所有测试点,保证1≤ n≤1000。
【程序解析】的具体描述的任务要求,输入的数据为直角边的最大值,可以设定外层循环范围为1到n,为了避免重复可以设置内层循环范围是从外层循环变量a起始至n结束,双层循环内部使用if语句判断得到的面积组合是否为整数,如果是整数则可以计算数量执行total += 1,最终输出个数
【参考程序】

编程题2
试题名称:幂和数
时间限制:3.0 s
内存限制:512.0 MB
题目描述
对于正整数n,如果n可以表为两个2的次幂之和,即n=2x+2y(x,y均为非负整数),那么称n为幂和数。
给定正整数l,r,请你求出满足l≤ n≤r 的整数n中有多少个幂和数。
输入格式
一行,两个正整数l,r,含义如上。
输出格式
输出一行,一个整数,表示l,r之间幂和数的数量。
样例
输入样例 1

输出样例1

输入样例2

输出样例 2

数据范围
对于所有测试点,保证1≤l≤r≤104。
【程序解析】依据题面描述的任务要求,需要判定l~r范围内的数字有多少个符合要求的情况,所以外层循环设置为range(l, r+1),内部使用两个循环枚举x和y,使用if判定是否符合2 ** x + 2 ** y == i,如果符合则使用total计数,并且将Flag标记为True,表示已经找到,打断循环,继续判断下一个i是否符合要求,直至范围内数字全部被遍历判断完成,最终输出个数total
【参考程序】

策划:GESP技术委员会副主席 刘晓庆
技术支持:马长明



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