GESP2025年03月Python四级试卷

从PDF导入:GESP2025年03月Python四级试卷

Python 120分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选

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

A. 《哪吒2》是一款新型操作系统
B. DeepSeek是深海钻探软件
C. 《哪吒2》可以生成新的软件
D. DeepSeek可以根据《哪吒2》的场景生成剧情脚本
第2题 中级 2.0分 单选
对整型变量N,如果它能够同时被3和5整出,则输出N是含有至少两个质因数。如果用流程图来描述处理过程,则输出语句应该在哪种图形框中( )。
A. 圆形框
B. 椭圆形框
C. 平行四边形框
D. 菱形框
第3题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

lst = [{'num': i} for i in range(3)]
lst[1]['num'] = 99
print(lst)

A. [{'num': 0}, {'num': 1}, {'num': 2}]
B. [{'num': 0}, {'num': 99}, {'num': 2}]
C. 所有字典的 'num' 都变为 99
D. 报错
第4题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

def append_value(value, container=[]):
container.append(value)
return container
result1 = append_value(1)
result2 = append_value(2)
result3 = append_value(3, [])
print(result1, result2, result3)

A. [1] [2] [3]
B. [3] [3] [3]
C. [1] [1, 2] [3]
D. [1, 2] [1, 2] [3]
第5题 中级 2.0分 单选
以下哪个函数调用是合法的?( )

def func(a, b, c=0):
print(a + b + c)

A. func(1, b=2, 3)
B. func(a=1, 2, c=3)
C. func(1, 2)
D. func(b=1, a=2, 3)
第6题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

keys = ['a', 'b']
values = [[1], (2,)]
d = {k: v for k, v in zip(keys, values)}
d['a'].append(3)
print(d['a'])

A. [1, 2, 3]
B. [(1, 3), (2,)]
C. ([1, 3], (2,))
D. 报错
第7题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

def swap(a, b):
a, b = b, a
return a, b
x, y = 1, 2
swap(x, y)
print(x, y)

A. 1 2
B. 2 1
C. (2, 1)
D. 报错
第8题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

def outer():
n = 0
def inner():
nonlocal n
n += 1
return n
return inner
f = outer()
print(f(), f(), f())

A. 1 2 3
B. 1 1 1
C. 3 3 3
D. 报错
第9题 中级 2.0分 单选
以下哪个函数调用会返回[2, 4, 6]?( )

def process(lst, func):
return [func(x) for x in lst]
nums = [1, 2, 3]

A. process(nums, lambda x: x % 2)
B. process(nums, lambda x: x + 1)
C. process(nums, lambda x: x ** 2)
D. process(nums, lambda x: x * 2)
第10题 中级 2.0分 单选
执行下面Python代码时,哪条调用会报错?( )

def func(a, *, b, c):
pass

A. func(1, b=2, c=3)
B. func(1, 2, c=3)
C. func(a=1, b=2, c=3)
D. func(1, c=3, b=2)
第11题 中级 2.0分 单选
一只青蛙要跳上n级台阶。它每次可以跳1阶、2阶或3阶。下列代码可以计算青蛙有多少种不同的跳跃方式可以到达第n阶,其中横线处填写的代码是?( )

def jump_ways(n):
if n <= 3:
return [0, 1, 2, 4][n]
dp = [0] * (n + 1)
dp[1], dp[2], dp[3] = 1, 2, 4
for i in range(4, n + 1):
dp[i] = _______________
return dp[n]

A. dp[i - 1] * 2
B. dp[i - 3] * 3
C. dp[i - 1] + dp[i - 2]
D. dp[i - 1] + dp[i - 2] + dp[i - 3]
第12题 中级 2.0分 单选
下列代码可将24小时制的"HH:MM"时间字符串转换为从午夜(00:00)开始经过的总分钟数,其中横线处填写的代码是?( )

time_str = "8:30"
h, m = map(__________) # 横线在map的参数部分
total_min = h * 60 + m
print(total_min) # 应输出510

A. int, time_str.split(':')
B. int, time_str.split(' ')
C. float, time_str.split(':')
D. str, time_str.split(':')
第13题 中级 2.0分 单选
以下代码实现了哪种排序算法?( )

def sort(arr):
for i in range(len(arr) - 1):
min_idx = i
for j in range(i + 1, len(arr)):
if arr[j] < arr[min_idx]:
min_idx = j
arr[i], arr[min_idx] = arr[min_idx], arr[i]

A. 冒泡排序
B. 插入排序
C. 选择排序
D. 快速排序
第14题 中级 2.0分 单选
以下代码的作用是?( )

with open(r"data.txt") as f:
while True:
line = f.readline()
if not line:
break
print(line, end="")

A. 读取全部内容后一次性打印
B. 逐行读取并打印,保留原有的换行
C. 跳过空行打印内容
D. 倒序打印文件内容
第15题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

def test():
try:
return "A"
finally:
return "B"
print(test())

A. AB
B. A
C. B
D. 报错
第16题 中级 2.0分 判断
C++、Python都是高级编程语言,它们每条语句的执行最终都要通过机器指令来完成。( )
T. 正确
F. 错误
第17题 中级 2.0分 判断
下列程序用于统计字符串中元音字母(a, e, i, o, u)的数量。( )

s = "hello world"
vowels = "aeiou"
count = sum(1 for c in s if c in vowels)
print(count)

T. 正确
F. 错误
第18题 中级 2.0分 判断
在函数定义中,**kwargs必须位于参数列表的最后。( )
T. 正确
F. 错误
第19题 中级 2.0分 判断
执行下面Python代码后,调用函数func可以得到一个列表类型的数据。( )

def func():
return [1, 2],
result = func()
print(type(result))

T. 正确
F. 错误
第20题 中级 2.0分 判断
Python代码尝试以读取模式("r")打开不存在的文件会引发FileNotFoundError异常。( )
T. 正确
F. 错误
第21题 中级 2.0分 判断
下面这段程序的时间复杂度为平方阶O(n²)。( )

def func(n):
for i in range(n):
for j in range(n):
print(i, j)

T. 正确
F. 错误
第22题 中级 2.0分 判断
对5个不同的数据元素进行直接插入排序,最多需要比较9次。( )
T. 正确
F. 错误
第23题 中级 2.0分 判断
执行下面Python代码,会触发SyntaxError异常,但不会输出Error。( )

try:
print("Hello"
except SyntaxError:
print("Error")

T. 正确
F. 错误
第24题 中级 2.0分 判断
Python中允许在同一个with语句中打开多个文件。( )

with open('a.txt', 'r') as f1, open('b.txt', 'w') as f2:
data = f1.read()
f2.write(data)

T. 正确
F. 错误
第25题 中级 2.0分 判断
执行下面Python代码后,会输出[4, 6]。( )

print(list(map(sum, zip([1, 2], [3, 4]))))

T. 正确
F. 错误
第26题 中级 25.0分 编程
荒地开垦

小杨有一大片荒地,可以表示为一个n行m列的网格图。小杨想要开垦这块荒地,但荒地中一些位置存在杂物,对于一块不存在杂物的荒地,该荒地可以开垦当且仅当其上下左右四个方向相邻的格子均不存在杂物。小杨可以选择至多一个位置,清除该位置的杂物,移除杂物后该位置变为荒地。小杨想知道在清除至多一个位置的杂物的情况下,最多能够开垦多少块荒地。

【输入格式】
第一行包含两个正整数n, m,含义如题面所示。
之后n行,每行包含一个长度为m且仅包含字符.和#的字符串。如果为.,代表该位置为荒地,如果为#,代表该位置为杂物。
【输出格式】
输出一个整数,代表在清除至多一个位置的杂物的情况下,最多能够开垦的荒地块数。
【样例】
样例输入
3 5
.....
.#..#
.....
样例输出
11
样例解释
移除第二行从左数第二块空地的杂物后:第一行从左数前5块荒地,第二行从左数前5块荒地,第三行从左数前5块荒地,均可开垦,共11块。
数据范围
对于全部数据,保证有1 ≤ n, m ≤ 1000。
第27题 中级 25.0分 编程
二阶矩阵

时间限制:3.0 s
内存限制:512.0 MB
题面描述
小A有一个n行m列的矩阵A。小A认为一个2×2的矩阵B是好的,当且仅当B[1][1]×B[2][2]=B[1][2]×B[2][1]。其中B[i][j]表示矩阵B的第i行第j列的元素。小A想知道A中有多少个好的子矩阵。

【输入格式】
第一行,两个正整数n, m。
接下来n行,每行m个整数Aij。
【输出格式】
一行,一个整数,表示A中好的子矩阵的数量。
【样例】
样例输入
3 4
1 2 1 0
2 4 2 1
0 3 3 0
样例输出
2
样例解释
样例中的好的子矩阵有2个。
数据范围
对于所有测试点,保证1 ≤ n, m ≤ 1000,0 ≤ Aij ≤ 1000。
💬