万卷网> GESP认证 >Python > 2025年3月CCF—GESP(Python二级)编程能力等级认证试卷

2025年3月CCF—GESP(Python二级)编程能力等级认证试卷
二级 2025 2025-06-20 11:52:42 112

一、单选题

1.

下面Python代码执行后的输出是( )。

for i in range(5):
	for j in range(i,0,-1):
		print(j,end="-")
A.

1-2-1-3-2-1-4-3-2-1-

B.

1-2-1-3-2-1-4-3-2-1

C.

0-0-1-0-1-2-0-1-2-3-

D.

0-0-1-0-1-2-0-1-2-3

2.

下面Python代码执行后输出是( )。

for i in range(10):
	if i % 3 == 0:
		continue
	print("0", end = "#")
else:
	print("1",end = "#")
A.

0#0#0#0#0#0#

B.

0#0#0#0#0#0#0#1#

C.

0#0#0#0#1#

D.

0#0#0#0#0#0#1#

3.

下面Python代码实现输出如下图形,相关说法正确的是( )。

N = int(input("请输入层数:"))

last = 1
for i in range(1,N):
	for j in range(1,i + 1):
		if last > 9:
			last = 1

		print(last,end = " ")
		last += 1

	print()
A.

最后一行的print()有错,应该修改为print(""),print()函数不能没有参数

B.

last += 1修改为last = last + 1执行效果相同

C.

代码中的range(1, i + 1)应修改为range(1, i)

D.

外层for循环前的last = 1修改为last = 0执行效果相同

4.

下面Python代码执行后输出是( )。

for i in range(10, 0, -2):
	break
print(i)
A.

10

B.

8

C.

0

D.

因为循环执行时会执行break语句而终止循环,因此i的值不确定

5.

2025年春节有两件轰动全球的事件,一个是DeepSeek横空出世,另一个是贺岁片《哪吒2》票房惊人,入了全球票房榜。下面关于DeepSeek与《哪吒2》的描述成立的是( )。(2025.3二级)

A.

《哪吒2》是一款新型操作系统

B.

DeepSeek是深海钻探软件

C.

《哪吒2》可以生成新的软件

D.

DeepSeek可以根据《哪吒2》的场景生成剧情脚本

6.

哥德巴赫猜想是指大于2的偶数都可以分解为两个质数之和,下面的代码用于验证4-1000之内的偶数能否分解为两个质数之和。下面Python代码中假设isPrime()是已经定义好用于判断正整数N是否为质数。对该段代码,错误的说法是( )。

for i in range(4,1000,2):
	for j in range(2,i):
		if isPrime(j) and isPrime(i-j):
			print(f"{i}={j}+{i-j}")
			break
A.

将代码 isPrime(j) and isPrime(i-j) 修改为isPrime(j) == True and isPrime(i-j) == True 效果相同

B.

代码执行后,输出的一对质数,一定是小的数在前

C.

即便将ange(4,1000,2)中的1000修改为很大的整数,也不能说从数学上证明了哥德巴赫猜想

D.

根据题意,break语句应该与if对齐

7.

下面Python代码执行后,将输出能被2整除且除以7余数为2的数。下列选项不能实现的是( )。(2025.3二级)

for i in range(100):
	if ________________:
		print(i)
A.

i % 2 == 0 and i % 7 == 2

B.

not(i % 2) and i % 7 == 2

C.

not(i % 2) and not(i % 7)

D.

i % 2 != 1 and i % 7 == 2

8.

对整型变量N,如果它能够同时被3和5整出,则输出 N是含有至少两个质因数 。如果用流程图来描述处理过程,则输出语句应该在哪种图形框中( )。

A.

圆形框

B.

椭圆形框

C.

平行四边形框

D.

菱形框

9.

下面Python代码用于实现九九乘法表,代码中{i*j}与等号之间有一个空格。代码执行后效果是( ) 。

for i in range(1, 10):
	for j in range(1, i + 1):
		print(f"{j}*{i}= {i*j}", end=" ")
	print()
A.

B.

C.

D.

10.

下面Python代码执行后其输出是( )。

tnt = 0
for i in range(10):
	if i % 3:
		tnt += 1
	else:
		tnt += 2
print(tnt)
A.

18

B.

17

C.

16

D.

14

11.

在数学中N!表示N的阶乘,即1到N的乘积,如 3!=1*2*3 ,且 0! = 1 。下面的两段Python代码用于求1-N的阶乘之和,如N为3,则是 1!+2!+3! 。选项中的说法,正确的是( )。

#实现1
N = int(input())
tnt, last = 0, 1
for i in range(1,N + 1):
	last *= i
	tnt += last
print(tnt)
#实现2
N = int(input())
tnt = 0
for i in range(1, N + 1):
	tmp = 1
	for j in range(1,i + 1):
		tmp *= j
	tnt += tmp
print(tnt)
A.

虽然实现1的代码短小,但效率并不高

B.

实现2的代码效率更高,且更易于理解

C.

实现1因为应用了前项计算结果,计算量更小,因此效率高

D.

两种实现,效率几乎一致

12.

求三色彩球的颜色。有数量无限的红(Red)绿(Green)蓝(Blue)三种彩球排成一行,每组先为5个红色球,随后3个绿色,最后为2个蓝色。每个球都有编号,从左到右依次为1,2,3……。输入整数代表编号,求该编号球的颜色。下面是Python代码的实现,正确说法是( )。

N = int(input())
remainder = N % 10 #remainder变量保存余数

if 1 <= remainder <= 5:
	print("Red")
elif 6 <= remainder <= 8:
	print("Green")
elif remainder == 9 or remainder == 0:
	print("Blue")
A.

将 elif remainder == 9 or remainder == 0: 修改为 else 效果相同

B.

将 if 1 <= remainder <= 5: 修改为 if remainder <= 5: 效果相同

C.

elif 6 <= remainder <= 8: 写法错误,应修改为 elif 6 <= remainder and remainder <= 8:

D.

根据题意 remainder = N % 10 应修改为 remainder = N // 10

13.

Python语句 print(3+3**(2-2)*3) 执行后输出的值是( )。

A.

11

B.

6

C.

4

D.

3

14.

下面Python代码用于求正整数1到N之间含有3的数的个数,横线处应填入代码先后是( )。

cnt = 0
N = int(input("请输入正整数:"))
for i in range(1,N):
	while i != 0:
		if i % 10 == 3:
			cnt +=1
			__________
		else:
			__________
print(cnt)
A.

continue

  i = i // 10

B.

break

  i //= 10

C.

continue

  i %= 10

D.

break

  i %= 10

15.

下面Python代码执行,其输出是( )。

a, b = 3,4
a == b
b == a
print(a,b)
A.

3 4

B.

3 3

C.

4 4

D.

4 3

二、判断题

1.

下面Python执行后将输出3*2=6。 ( )

a, b = 2, 3
a, b = b, a
print(f"{a}*{b}={a*b}")
A.正确 B.错误
2.

下面Python代码执行后将输出0123。( )

for i in range(5):
	for i in range(i):
		continue
	print(i,end="")
A.正确 B.错误
3.

 Python表达式 N ** 0.5 ** 2 == N 中的N如果为正整数,则表达式的值为True,相当于开平方后平方是本身。( )

A.正确 B.错误
4.

下面的Python代码执行后将输出10行“OK”。( )

for i in range(5):
	for j in range(i):
		print("OK")
A.正确 B.错误
5.

下面Python代码执行后将输出1。( )

for i in range(1, 10):
	break
	continue
print(i)
A.正确 B.错误
6.

下面Python代码执行后将输出10。( )

for i in range(10):
	continue
print(i)
A.正确 B.错误
7.

在Python语句 print(10 <= N <= 12) 中,假设N为12,则其输出为True。原因是执行 10 <= N 后其值为True , True 与 12 相比仍然是 True 。( )

A.正确 B.错误
8.

将下面Python代码中的range(1, 5)调整为range(5)输出结果相同。( )

tnt = 0
for i in range(1, 5):
	tnt += i
print(tnt)
A.正确 B.错误
9.

C++、Python都是高级编程语言,它们每条语句的执行最终都要通过机器指令来完成。( )(2025.3二级)

A.正确 B.错误
10.

在Python代码中,假设N为正整数,则 N - N // 10 * 10 与 N % 10 都将获得N的个位数。( )

A.正确 B.错误

三、编程题

1.

等差矩阵

题目描述

小 A 想构造一个 n行m 列的矩阵,使得矩阵的每一行与每一列均是等差数列。小 A 发现,在矩阵的第 i行第 j列填入整数i*j ,得到的矩阵能满足要求。你能帮小 A 输出这个矩阵吗?

输入格式

一行,两个正整数 n,m。

输出格式

共 n行,每行 m个由空格分割的整数,表示小 A 需要构造的矩阵。


输入样例

3 4

输出样例

1 2 3 4
2 4 6 8
3 6 9 12

数据范围

对于所有测试点,保证 1≤n≤50,1≤m≤50 。

2.

时间跨越

时间限制:1.0 s

内存限制:512.0 MB

题面描述

假设现在是 y年 m月 d日 h时而 k小时后是y'年m'月 d'日 h'时,对于给定的y,m,d,h,k,小杨想请你帮他计算出对应的 y',m',d', h'是多少。

输入格式

输入包含五行,每行一个正整数,分别代表y,m,d,h,k。

输出格式

输出四个正整数,代表y',m',d', h'。


输入样例

2008

2

28

23

1

输出样例

2008 2 29 0

数据范围

对于全部数据,保证有2000≤y≤300,1≤m≤12,1≤d≤31,0≤h≤23,1≤k≤24 。数据保证为合法时间。

提示

闰年判断规则

·普通闰年:年份能被 4 整除,但不能被 100 整除。

·世纪闰年:年份能被 400 整除。

满足以上任意一条规则的年份就是闰年,否则是平年。

公众号
客服 反馈
顶部