选择题 共15道

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15


判断题 共10道

16 17 18 19 20 21 22 23 24 25


编程题 共2道

26 27

828 202509GESP Python四级试卷-考试
选择题 共15道
01

人工智能现在非常火,小杨就想多了解一下,其中就经常听人提到“大模型”。那么请问这里说的“大模型”最贴切是指 ( )。

2分
登录后查看选项
02

在TCP协议中,完成连接建立需要通过( )握手。

2分
登录后查看选项
03

执行下面Python代码后,输出的结果是?

t = (1, [2, 3], 4)
t[1].extend([5, 6])
print(t)
2分
登录后查看选项
04

执行下面Python代码后,输出的结果是?

data = [('a', [1]), ('b', [2])]
d = dict(data)
d['a'].append(3)
print(data[0][1])
2分
登录后查看选项
05

以下哪种函数定义是正确的?

2分
登录后查看选项
06

执行下面Python代码后,输出的结果是?

def func(a, lst=[]):
	lst.append(a)
	return lst
print(func(1), end=" ")
print(func(2))
2分
登录后查看选项
07

执行下面Python代码后,输出的结果是?

def demo(x, y, z):
	return x + y + z
values = (1, 2, 3)
result = demo(*values)
print(result)
2分
登录后查看选项
08

下列有关函数内修改全局变量描述正确的是?

2分
登录后查看选项
09

下列有关Python处理异常的说法正确的是?

2分
登录后查看选项
10

为了安全地打开并读取一个文件,确保即使发生异常,文件也能被正确关闭,最佳做法是?

2分
登录后查看选项
11

文件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)
2分
登录后查看选项
12

以下代码的时间复杂度是?

def process_data(n):
	count = 0
	for i in range(n):
		for j in range(n):
			count += i * j
	return count
2分
登录后查看选项
13

下面代码采用递推算法来计算斐波那契数列 f(n) = f(n-1) + f(n-2),则横线上应填写?

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
2分
登录后查看选项
14

以下是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
2分
登录后查看选项
15

执行下面Python代码后,输出的结果是?

words = ["Apple", "banana", "cherry", "Date"]
sorted_words = sorted(words, key=str.lower, reverse=True)
print(sorted_words)
2分
登录后查看选项
判断题 共10道
16

在集成开发环境里调试程序时,要注意不能修改源程序,因为如果修改,就要终止调试、关闭该文件并重新打开,才能再次开始调试。

2分
登录后查看选项
17

执行下面Python代码后,输出的结果为 qu 。

data = {'numbers': [10, 20, 30], 'title': 'quiz'}
data["title"] += str(data['numbers'].pop(-2))
print(data['title'][:-2])
2分
登录后查看选项
18

执行下面代码后,输出的结果为 5 。

d = {'a': 3, 'b': 5, 'c': 1}
print(max(d, key=lambda k: d[k]))
2分
登录后查看选项
19

在 Python 中,如果一个函数没有执行到任何 return 语句,或者 return 语句后没有指定返回值,Python解释器会默认让函数返回 None 。

2分
登录后查看选项
20

执行下面Python代码会抛出 ValueError 异常。

len(123)
2分
登录后查看选项
21

若文件log.txt已存在,执行以下代码后文件内容被清空,仅保留 New log entry 。

with open("log.txt", "w") as f:
	f.write("New log entry")
2分
登录后查看选项
22

以下代码的空间复杂度是 O(n)。

ef create_dict(n):
	my_dict = {}
	for i in range(n):
		my_dict[i] = i * 2
	return my_dict
2分
登录后查看选项
23

递推算法必须存在至少一个初始值,这是递推算法能够启动和正确运行的基础。

2分
登录后查看选项
24

选择排序和插入排序的平均时间复杂度都是 O(n2),因此它们的效率在任何情况下都完全相同。

2分
登录后查看选项
25

你收集了一些咖啡馆的信息,存储在字典 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)
2分
登录后查看选项
编程题 共2道
26

试题名称:排兵布阵

时间限制:1.0 s

内存限制:512.0 MB


题目描述

作为将军,你自然需要合理地排兵布阵。地图可以视为 行 列的网格,适合排兵的网格以 1 标注,不适合排兵的网格以 0 标注。现在你需要在地图上选择一个矩形区域排兵,这个矩形区域内不能包含不适合排兵的网格。请问可选择的矩形区域最多能包含多少网格?


输入格式

第一行,两个正整数 n,m,分别表示地图网格的行数与列数。

接下来 n 行,每行 m 个整数 ai,1,ai,2,…,ai,m,表示各行中的网格是否适合排兵。

输出格式

一行,一个整数,表示适合排兵的矩形区域包含的最大网格数。


样例

输入样例 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≤12,0≤ai,j≤1。

25分
登录后作答
27

试题名称:最长连续段

时间限制:1.0 s

内存限制:512.0 MB


题目描述

对于 k 个整数构成的数组[b1, b2, ..., bk],如果对1≤i<k都有 bi+1=bi+1,那么称数组 b 是一个连续段。

给定由 n 个整数构成的数组 [a1, a2, ..., an],你可以任意重排数组 a 中元素顺序。请问在重排顺序之后,a 所有是连续段的子数组中,最长的子数组长度是多少?

例如,对于数组 [1,0,2,4],可以将其重排为[4,0,1,2],有以下 10个子数组:

[4],[0],[1],[2],[4,0],[0,1],[1,2],[4,0,1],[0,1,2],[4,0,1,2]

其中除 [4,0],[4,0,1],[4,0,1,2] 以外的子数组均是连续段,因此是连续段的子数组中,最长子数组长度为 3。


输入格式

第一行,一个正整数 n,表示数组长度。

第二行,n个整数 a1,a2,...,an,表示数组中的整数。

输出格式

一行,一个整数,表示数组 a 重排顺序后,所有是连续段的子数组的最长长度。


样例

输入样例 1

4

1 0 2 4

输出样例1

3

输入样例 2

9

9 9 8 2 4 4 3 5 3

输出样例2

4


数据范围

对于 40% 的测试点,保证 1≤n≤8。

对于所有测试点,保证 1≤n≤ 10^5,-10^9≤ ai≤ 10^9。

25分
登录后作答