GESP2024年12月Python四级试卷

从PDF导入:GESP2024年12月Python四级试卷

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

2024年10月8日,诺贝尔物理学奖“意外地”颁给了两位计算机科学家约翰·霍普菲尔德(John J. Hopfield)和杰弗里·辛顿(Geoffrey E. Hinton)。这两位科学家的主要研究方向是( )。

A. 天体物理
B. 流体力学
C. 人工智能
D. 量子理论
第2题 中级 2.0分 单选
计算机系统中存储的基本单位用B来表示,比如某个照片大小为3MB,其中B代表的是( )。
A. Byte
B. Block
C. Bulk
D. Bit
第3题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

items = [('item1', 2), ('item2', 3), ('item3', 1)]
sorted_items = sorted(items, key=lambda x: (-x[1], x[0]))
print(sorted_items)

A. [('item3', 1), ('item1', 2), ('item2', 3)]
B. [('item1', 2), ('item2', 3), ('item3', 1)]
C. [('item2', 3), ('item3', 1), ('item1', 2)]
D. [('item2', 3), ('item1', 2), ('item3', 1)]
第4题 中级 2.0分 单选
以下Python代码实现的排序算法的时间复杂度是?( )

def func_sort(arr):
for i in range(1, len(arr)):
key = arr[i]
j = i-1
while j >= 0 and key < arr[j]:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key

A. O(n)
B. O(n log n)
C. O(n²)
D. O(log n)
第5题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

z = 5
def outer():
def inner():
global z
z = 15
inner()
print(z, end="#")
outer()
print(z, end="#")

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

def double_elements(lst):
for i in range(len(lst)):
lst[i] *= 2
return lst
lstB = [1, 2, 3]
double_elements(lstB)
print(lstB, double_elements(lstB))

A. [1, 2, 3] [2, 4, 6]
B. [2, 4, 6] [4, 8, 12]
C. [4, 8, 12] [4, 8, 12]
D. [1, 2, 3] [4, 8, 12]
第7题 中级 2.0分 单选
执行下面Python代码后,会发生什么?( )

my_list = [1, 2, 3]
print(my_list[3])

A. 代码正常执行,输出3
B. 抛出TypeError异常
C. 抛出ValueError异常
D. 抛出IndexError异常
第8题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

try:
my_dict = {'a': 1, 'b': 2}
print(my_dict['c'])
except KeyError:
print("10", end="#")
else:
print("20", end="#")
finally:
print("30", end="#")

A. 10#
B. 20#
C. 10#30#
D. 20#30#
第9题 中级 2.0分 单选
执行下面Python代码后,输出的结果可能是?( )

my_dic = {'a': [1, 2, 3], 'b': (4, 5, 6)}
my_dic['a'][0] = 10
my_dic['b'] += (7,)
print(my_dic)

A. {'a': [1, 2, 3], 'b': (4, 5, 6, 7)}
B. {'a': [10, 2, 3], 'b': (4, 5, 6, 7)}
C. {'a': [10, 2, 3], 'b': (4, 5, 6)}
D. {'a': [10, 2, 3], 'b': (4, 5, 6, 7, 7)}
第10题 中级 2.0分 单选
执行下面Python代码后,输出的结果是?( )

def func(a, *, b):
print("{},{}".format(a, b))
func(1, b=2)

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

def func(**kwargs):
return {"name": kwargs.get("name", "Guest"),
"age": kwargs.get("age", 18)}
user = func(name="Bob")
print(user["name"])

A. Guest
B. Bob
C. 18
D. None
第12题 中级 2.0分 单选

在一个棋盘上,有一堆麦子。根据棋盘的规则,第1格放1粒麦子,第2格放2粒麦子,第3格放4粒麦子,以此类推,每增加一格,麦子的数量翻倍。下列程序用来计算在第 格有多少粒麦子,其中横线处填写的代码为?( )
lst = [0] * 64
lst[1] = 1
def calculate_wheat(n):
if n <= 1:
return lst[n]
i = 2
while i <= n:
lst[i] = ____________ # 填写代码
i += 1
return lst[i - 1]

A. lst[i - 1] * 2
B. lst[i - 2] * 2
C. lst[i - 1] + lst[i - 2]
D. lst[-1] * 2
第13题 中级 2.0分 单选

小杨相信数字“1”、“3”、“5”能给他带来好运,不喜欢数字“7”。他设计了一个计算数字幸运值的程序。对于数字中的所有字符,字符“1”幸运值为 5,字符“3” 幸运值为 6,字符“5”幸运值为 7,字符“7”的幸运值为-3,其他字符的幸运值为 0,数字的幸运值即为其所有字符的幸运值之和。请在下面程序空白处填上正确内容以实现计算某数字幸运值的功能。
dic = {"1": 5, "3": 6, "5": 7, "7": -3}
num = input("请输入数字:")
ans = 0
for i in range(len(num)):
ch = num[i]
if ____________ : # 填写代码 ①
____________ # 填写代码 ②
print("该数字的幸运值为:", ans)

A. ①ch in dic.values() ②ans += dic[ch]
B. ①ch in dic.items() ②ans += dic[ch]
C. ①ch in dic.keys() ②ans = dic[ch]
D. ①ch in dic ②ans += dic[ch]
第14题 中级 2.0分 单选

打开一个由小写英文和数字组成的文本文件notes.txt,将该文件中的每一个字母加密后写入到一个新文件encrypted_notes.txt,加密的方法是:a变成b,b变成c,……,z变成a,其它字符不变化。请在下面程序空白处填上正确内容以实现程序功能。
file = open("notes.txt", "r")
line = file.readline()
list = []
while line:
for i in range(len(line)):
if line[i].islower():
jm = ____________ # 填写代码 ①
list.append(chr(jm))
else:
list.append(line[i])
line = file.readline()
s = ____________ # 填写代码 ②
file = open("encrypted_notes.txt", "w+")
file.write(s)
file.close()

A. ①(ord(line[i]) + 1) % 26 ②''.join(list)
B. ①ord('a') + (ord(line[i]) + 1 - ord('a')) % 26 ②''.join(list)
C. ①(ord(line[i]) + 1) % 26 ②str(list)
D. ①ord('a') + (ord(line[i]) + 1 - ord('a')) % 26 ②str(list)
第15题 中级 2.0分 单选

假设你管理一个实验室,需要记录物品的领用情况。每次领用时,你会记录下领用的日期、物品名称以及领用人的姓名。这个信息将被保存在一个名为lab_issuance.txt的文本文件中。其要求如下:①在文件末尾追加新的物品领用记录;②可以查看当前所有的物品领用记录。请在下面程序空白处填上正确内容以实现程序功能。
def append_record(date, item, name):
with open("lab_issuance.txt", ____________) as file: # 填写代码 ①
file.write(f"{date},{item},{name}\n")
def read_records():
with open("lab_issuance.txt", "r") as file:
records = ____________ # 填写代码 ②
for record in records:
print(record, end="")
append_record("2024-11-05", "Computer", "Tom")
append_record("2024-11-06", "Pen", "Jack")
read_records()

A. ①"a" ②file.readlines()
B. ①"a" ②file.readline()
C. ①"w" ②file.readlines()
D. ①"w" ②file.readline()
第16题 中级 2.0分 判断
在Windows的资源管理器中为已有文件A建立副本的操作是Ctrl+C,然后Ctrl+V。( )
T. 正确
F. 错误
第17题 中级 2.0分 判断
执行下面Python代码后,输出的结果是14。( )

a = 5
b = 3
result = (a & b) << 1
print(result)

T. 正确
F. 错误
第18题 中级 2.0分 判断
执行下面Python代码,调用函数get_max可以得到一个None类型的数据。( )

def get_max(*args):
if not args:
return None
return max(args)
print(type(get_max()))

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

print(list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4, 5, 6, 7, 8])))

T. 正确
F. 错误
第20题 中级 2.0分 判断
下面这段程序的时间复杂度为常数阶O(1)。( )

def fun(n):
print("Hello, World!")

T. 正确
F. 错误
第21题 中级 2.0分 判断
如果在函数内部对一个变量进行赋值操作,那么该变量默认为局部变量。( )
T. 正确
F. 错误
第22题 中级 2.0分 判断
在Python中,已执行list_of_tuples = [(1, 2), (3, 4)],如果执行list_of_tuples[0][1] = 5将不会报错。
T. 正确
F. 错误
第23题 中级 2.0分 判断
在Python中,[(i, i**2) for i in range(5)] + [7,]是合法的表达式。( )
T. 正确
F. 错误
第24题 中级 2.0分 判断
根据下面Python函数定义,调用func()函数时如果参数分别为str和tuple类型,会报错。( )

def func(a, b):
return a + str(b)

T. 正确
F. 错误
第25题 中级 2.0分 判断
在Python中,使用with open(file, 'w') as f:语句打开文件后,即使发生异常,文件资源通常也会被正确关闭。( )
T. 正确
F. 错误
第26题 中级 25.0分 编程
Recamán

小杨最近发现了有趣的Recamán数列,这个数列是这样生成的:
数列的第一项a₁是1;
如果aₙ₋₁ - n是正整数并且没有在数列中出现过,那么数列的第n项aₙ为aₙ₋₁ - n,否则为aₙ₋₁ + n。
小杨想知道Recamán数列的前n项从小到大排序后的结果。

【输入格式】
第一行,一个正整数n。
【输出格式】
一行,n个空格分隔的整数,表示Recamán数列的前n项从小到大排序后的结果。
【样例输入1】
5
【样例输出1】
1 2 3 6 7
【样例输入2】
8
【样例输出2】
1 2 3 6 7 12 13 20
对于所有数据点,保证1 ≤ n ≤ 1000。
第27题 中级 25.0分 编程
字符排序

小杨有n个仅包含小写字母的字符串,小杨想将这些字符串按一定顺序排列后拼接到一起构成字符串T。
小杨希望最后构成的字符串T满足:假设Tᵢ为字符串T的第i个字符,对于所有的i均有Tᵢ ≥ Tᵢ₋₁。
小杨想知道是否存在满足条件的字符串排列顺序。

【输入格式】
第一行包含一个正整数t,代表测试数据组数。
对于每组测试数据,第一行包含一个正整数n。
之后n行,每行包含一个字符串。
【输出格式】
对于每组测试数据,如果存在满足条件的排列顺序,输出1,否则输出0。
【样例输入】
3
3
aa
ac
de
2
aac
bc
1
gesp
【样例输出】
1
0
0
对于全部数据,保证有1 ≤ t ≤ 10, 1 ≤ n ≤ 100,每个字符串的长度不超过100。
💬