GESP2025年09月Python四级试卷

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

Python 120分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
人工智能现在非常火,小杨就想多了解一下,其中就经常听人提到"大模型"。那么请问这里说的"大模型"最贴切是指( )。
A. 大电脑模型
B. 大规模智能
C. 智能的单位
D. 大语言模型
第2题 中级 2.0分 单选
在TCP协议中,完成连接建立需要通过( )握手。
A. 一次
B. 二次
C. 三次
D. 四次
第3题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

t = (1, [2, 3], 4)
t[1].extend([5, 6])
print(t)

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

data = [('a', [1]), ('b', [2])]
d = dict(data)
d['a'].append(3)
print(data[0][1])

A. [1]
B. [1, 3]
C. 报错
D. ('a', [1, 3])
第5题 中级 2.0分 单选
以下哪种函数定义是正确的?( )
A. def func(a=1, b, *args): pass
B. def func(a, b=2, **kwargs, *args): pass
C. def func(a, *args, b=2, **kwargs): pass
D. def func(**kwargs, *args, a): pass
第6题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

def func(a, lst=[]):
lst.append(a)
return lst
print(func(1), end=" ")
print(func(2))

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

def demo(x, y, z):
return x + y + z
values = (1, 2, 3)
result = demo(*values)
print(result)

A. 6
B. (1, 2, 3)
C. 报错
D. 123
第8题 中级 2.0分 单选
下列有关函数内修改全局变量描述正确的是?( )
A. 函数内部可以直接修改任何全局变量
B. 函数内部无法修改全局变量,只能读取
C. 需要使用global关键字声明后才能修改全局变量
D. 需要使用nonlocal关键字声明后才能修改全局变量
第9题 中级 2.0分 单选
下列有关Python处理异常的说法正确的是?( )
A. 每一个try模块只能设定一个except模块。
B. finally模块仅在try模块中没有异常发生时才会执行。
C. else模块会在except模块之后,finally模块之前执行。
D. 异常处理可以弥补程序漏洞,使得程序在一些情况下不会终止运行。
第10题 中级 2.0分 单选
为了安全地打开并读取一个文件,确保即使发生异常,文件也能被正确关闭,最佳做法是?( )
A. 将file.close()放在try块的最后一行。
B. 将file.close()放在except块中。
C. 将file.close()放在else块中。
D. 使用with open('file.txt') as f:语句。
第11题 中级 2.0分 单选
文件votes.txt内容如下:

Alice
Bob
Alice
Charlie
Bob
Alice
Alice
执行下面Python代码后,输出的结果是?( )
def count_votes(filename):
vote_count = {}
file = None
try:
file = open(filename, 'r')
for line in file:
name = line.strip()
if name in vote_count:
vote_count[name] += 1
else:
vote_count[name] = 1
except FileNotFoundError:
print(f"错误:文件 {filename} 不存在。")
except IOError:
print(f"错误:读取文件 {filename} 时发生I/O错误。")
finally:
if file:
file.close()
return vote_count
result = count_votes('votes.txt')
print(result)

A. ['Alice', 'Bob', 'Alice', 'Charlie', 'Bob', 'Alice', 'Alice']
B. {'Alice': 4, 'Bob': 2, 'Charlie': 1}
C. {4, 2, 1}
D. {'Alice', 'Bob', 'Charlie'}
第12题 中级 2.0分 单选
以下代码的时间复杂度是?( )

def process_data(n):
count = 0
for i in range(n):
for j in range(n):
count += i * j
return count

A. O(n)
B. O(log n)
C. O(n²)
D. O(n³)
第13题 中级 2.0分 单选
下面代码采用递推算法来计算斐波那契数列第n项,则横线上应填写?( )

def fibo(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
a, b = 0, 1
for i in range(2, n + 1):
__________________ # 划线处
return b

A. a = b + a
B. a, b = a + b, a
C. a, b = b, a + b
D. b = a + b
第14题 中级 2.0分 单选
以下是Python冒泡排序(由小到大)的优化版本,加入了提前终止机制。划线处应填入?( )

def optimized_bubble_sort(arr):
n = len(arr)
for i in range(n - 1, 0, -1):
swapped = ____________ # 初始化交换标志
for j in range(0, i):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
swapped = _________________ # 划线处
if not swapped:
break

A. True False
B. False True
C. True break
D. False continue
第15题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

words = ["Apple", "banana", "cherry", "Date"]
sorted_words = sorted(words, key=str.lower, reverse=True)
print(sorted_words)

A. ['Date', 'cherry', 'banana', 'Apple']
B. ['Apple', 'banana', 'cherry', 'Date']
C. ['date', 'cherry', 'banana', 'apple']
D. ['apple', 'banana', 'cherry', 'date']
第16题 中级 2.0分 判断
在集成开发环境里调试程序时,要注意不能修改源程序,因为如果修改,就要终止调试、关闭该文件并重新打开,才能再次开始调试。( )
T. 正确
F. 错误
第17题 中级 2.0分 判断
执行下面Python代码后,输出的结果为qu。( )

data = {'numbers': [10, 20, 30], 'title': 'quiz'}
data["title"] += str(data['numbers'].pop(-2))
print(data['title'][:-2])

T. 正确
F. 错误
第18题 中级 2.0分 判断
执行下面代码后,输出的结果为5。( )

d = {'a': 3, 'b': 5, 'c': 1}
print(max(d, key=lambda k: d[k]))

T. 正确
F. 错误
第19题 中级 2.0分 判断
在Python中,如果一个函数没有执行到任何return语句,或者return语句后没有指定返回值,Python解释器会默认让函数返回None。( )
T. 正确
F. 错误
第20题 中级 2.0分 判断
执行下面Python代码会抛出ValueError异常。( )

len(123)

T. 正确
F. 错误
第21题 中级 2.0分 判断
若文件log.txt已存在,执行以下代码后文件内容被清空,仅保留New log entry。( )

with open("log.txt", "w") as f:
f.write("New log entry")

T. 正确
F. 错误
第22题 中级 2.0分 判断
以下代码的空间复杂度是O(n)。( )

def create_dict(n):
my_dict = {}
for i in range(n):
my_dict[i] = i * 2
return my_dict

T. 正确
F. 错误
第23题 中级 2.0分 判断
递推算法必须存在至少一个初始值,这是递推算法能够启动和正确运行的基础。( )
T. 正确
F. 错误
第24题 中级 2.0分 判断
选择排序和插入排序的平均时间复杂度都是O(n²),因此它们的效率在任何情况下都完全相同。( )
T. 正确
F. 错误
第25题 中级 2.0分 判断
你收集了一些咖啡馆的信息,存储在字典coffee_shops中,以下代码可以筛选出所有评分(rating)高于4.5且距离(distance)在1公里以内的咖啡

coffee_shops = [
{"name": "A Cafe", "rating": 4.7, "distance": 1.2},
{"name": "B Brew", "rating": 4.3, "distance": 0.5},
{"name": "C Coffee", "rating": 4.9, "distance": 2.1},
{"name": "D Delight", "rating": 4.6, "distance": 0.9}
]
filtered_shops = list(
filter(lambda shop: shop["rating"] > 4.5 and shop["distance"] < 1.0, coffee_shops)
)
print(filtered_shops)

T. 正确
F. 错误
第26题 中级 25.0分 编程
排兵布阵

时间限制:1.0 s
内存限制:512.0 MB
题面描述
作为将军,你自然需要合理地排兵布阵。地图可以视为n行m列的网格,适合排兵的网格以1标注,不适合排兵的网格以0标注。现在你需要在地图上选择一个矩形区域排兵,这个矩形区域内不能包含不适合排兵的网格。请问可选择的矩形区域最多能包含多少?

【输入格式】
第一行,两个正整数n, m,分别表示地图网格的行数与列数。
接下来n行,每行m个整数Aij,表示各行中的网格是否适合排兵。
【输出格式】
一行,一个整数,表示适合排兵的矩形区域包含的最大网格数。
【样例】
样例输入1
4 3
0 1 1
1 0 1
0 1 1
1 1 1
样例输出1
4
样例输入2
3 5
1 0 1 0 1
0 1 0 1 0
0 1 1 1 0
样例输出2
3
数据范围
对于所有测试点,保证1 ≤ n, m ≤ 50,0 ≤ Aij ≤ 1。
第27题 中级 25.0分 编程
最长连续段

时间限制:1.0 s
内存限制:512.0 MB
题面描述
对于n个整数构成的数组A,如果对所有i都有Ai+1 = Ai + 1,那么称数组A是一个连续段。给定由n个整数构成的数组A,你可以任意重排数组A中元素顺序。请问在重排顺序之后,所有是连续段的子数组中,最长的子数组长度是多少?

【输入格式】
第一行,一个正整数n,表示数组长度。
第二行,n个整数Ai,表示数组中的整数。
【输出格式】
一行,一个整数,表示数组A重排顺序后,所有是连续段的子数组的最长长度。
【样例】
样例输入1
4
1 0 2 4
样例输出1
3
样例输入2
9
9 9 8 2 4 4 3 5 3
样例输出2
4
数据范围
对于50%的测试点,保证n ≤ 100。
对于所有测试点,保证1 ≤ n ≤ 1000,-10^9 ≤ Ai ≤ 10^9。
💬