试卷总分:100分
选择题 15题 30分
判断题 10题 20分
编程题 2题 50分
第二届世界人形机器人运动会开幕式上,机器人方阵通过控制程序来完成整场表演。表演前,工程师们使用集成开发环境 (IDE) 编写并调试方阵的控制程序。下列关于 IDE 功能的描述,错误的是 ( )。
计算机 CPU 中的高速缓冲存储器 (Cache) 主要为提升系统性能而设计。下列关于 Cache 的说法中正确的是 ( )。
执行下面 Python 代码后,输出的结果是?
original = [{'key': 'value'}, [4, 5, 6]] new = original.copy() new[0]['key'] = 'new_value' new[1].append(7) print(original[0]['key'], original[1][-1])
nested = [[1, 2], [3, 4], [5, 6]] flat = [num for sublist in nested for num in sublist if num % 2 == 0] print(flat)
def func(d): d = {'new': 'value'} return d data = {'old': 'data'} func(data) print(data)
关于以下代码,说法正确的是?( )
def process(a: int, b: str = "default") -> str: return b * a
执行下面 Python 代码后,输入`150 165 135 133`输出的结果是?
H1, H2, H3, H4 = map(int, input().split()) print(min([H2, H3, H4], key=lambda x: (abs(x - H1), x)))
以下哪种文件打开模式允许同时读写文件,且文件指针从文件开头开始?
以下代码的时间复杂度是?
n = int(input()) f = [0] * (n + 1) f[0] = 0 f[1] = 1 for i in range(2, n + 1): f[i] = f[i - 1] + f[i - 2]
关于 try‑except‑else‑finally 结构,以下说法正确的是?
a = [1, 1] for i in range(2, 10): a.append(a[i - 1] + a[i - 2]) print(a[8])
students = [("Alice", "B", 25), ("Bob", "A", 23), ("Cathy", "A", 22)] sorted_students = sorted(students, key=lambda x: (x[1], x[2])) print([s[0] for s in sorted_students])
以下代码实现了根据交通灯颜色返回动作 (停、等、行) 的功能,以下哪个选项是正确的?
def traffic_action(color): actions = {"红": "停", "黄": "等", "绿": "行"} if color in actions: return _____①_____ else: return "无效颜色" color = input("输入交通灯颜色: ") action = traffic_action(color) print(f"颜色 {color} 对应的动作是: {_____②_____}")
文件 text.txt 的内容如下:
Python is a programming language. Python is easy to learn. Many people use Python for data analysis and web development. Python has a large community and many libraries.
以下代码实现了统计文件中单词 Python 出现的次数的功能,以下哪个选项是正确的?( )。
count = 0 with open("text.txt", "r") as f: content = f._____①_____ words = content._____②_____ for word in words: if word == "Python": count += 1 print(f"Python出现次数:{count}")
以下代码实现了给定⼀个 的整数矩阵,能找出所有 ⼦矩阵中,元素最⼤平均值的功能,以下哪个选项是正确的?
n, m = map(int, input().split()) matrix = [list(map(int, input().split())) for _ in range(n)] max_avg = float("-inf") for i in range(_____①_____): for j in range(_____②_____): # 计算当前2×2子矩阵的和 total = matrix[i][j] + matrix[i][j + 1] + matrix[i + 1][j] + matrix[i + 1][j + 1] avg = total / 4.0 if avg > max_avg: max_avg = avg print(f"{max_avg:.2f}")
Python 程序执行 input () 函数时通常是使用键盘等输入设备来输入某个变量的值。
执行下面 Python 代码后,输出结果为 [1, 2]。
a = [1, 2] b = (a,) a.append(3) print(b[0])
执行下面 Python 代码后,输出结果为 `[0,1,4] [0,1,4]`。
gen = (i ** 2 for i in range(3)) print(list(gen), list(gen))
执行下面 Python 代码后,输出结果为 20。
num = 5 def test(): num = 10 global num num = 20 test() print(num)
在 Python 中,如果一个函数内部定义了一个嵌套函数,那么嵌套函数只能在外部函数内部被调用,不能在外部函数之外直接调用。但是嵌套函数若被作为返回值、赋给变量等,外部函数之外也可以通过该引用调用。
执行下面 Python 代码后,oldest 的值为 `{'name': 'Alice', 'age': 30}`。
data = [{'name': 'Alice', 'age': 30}, {'name': 'Bob', 'age': 25}] oldest = max(data, key=lambda d: d['age'])
在 Python 中,f.readlines () 与 list (f) 的作用完全相同,都会将文件的所有行读入一个列表,并保留每行已有的换行符,即下列两段代码的输出结果相同。
with open("test.txt", "r") as f: print(f.readlines()) with open("test.txt", "r") as f: print(list(f))
执行下面 Python 代码会抛出 KeyError 异常。
print({}.get('key'))
对一组数据 `[5, 2, 6, 4, 8, 1, 7, 3]` 使用选择排序的方法按从小到大的顺序进行排序,则第 2 轮排序过后的结果是 `[1, 2, 6, 4, 8, 5, 7, 3]`。
以下 Python 代码使用递推算法实现了计算正整数 n 的二进制表示中包含 1 个数的功能。
def popcount(n): cnt = [0] * (n + 1) for i in range(1, n + 1): cnt[i] = cnt[i >> 1] + (i & 1) return cnt[n]
汉诺塔问题是最经典的递推问题之一:
有三个可以放圆盘柱子,编号为A、B和C。开始时柱子A上套着 n 个圆盘,它们从上到下按照从小到大的顺序排列。我们的任务是要把这 n 个圆盘移到柱子C上,并保持它们的原有顺序不变。
在移动圆盘的过程中,需要遵守以下规则:
1.圆盘只能从一根柱子顶部拿出,从另一根柱子顶部放入。
2.每次只能移动一个圆盘。
3.小圆盘必须时刻位于大圆盘之上。
小杨在学习了汉诺塔问题后,决定添加一个新规则:
4.每一次移动,圆盘只能从A移动到B,从B移动到C,或者从C移动到A;其它移动是不允许的。
在新规则下,给定圆盘数量n,试问最少移动步数是多少?
输入一个正整数 n,表示圆盘的数量。
输出一个整数,表示在新规则下将 n 个圆盘从 A 移动到 C 所需的最少移动步数。
n≤20
2
7
3
21
小A有一个 n 行 m 列格子组成的二维网格,从上到下依次是第 1 行到第 n 行,从左到右依次是第 1 列到第 m 列。
每个格子里有一个数字,第 i 行第 j 列的格子里的数字是ai,j。
小A想让二维网格变得有序,因此他先对每一行从左到右按升序排序,再对每一列从上到下按升序排序。以下是一个先完成行排序再完成列排序的例子:
小 A 想知道二维网格经过以上排序后的结果。你能编写程序帮助他吗?
第一行,两个正整数n,m,分别二维网格的行数与列数。
接下来n行,每行m个整数a_(i,1),...,a_(i,m),表示二维网格种的数字。
输出n行,每行m个整数,表示二维网格先完成行排序再完成列排序后的结果。
2≤n≤10,2≤m≤10,1≤a_(i,j)≤100
3 2
6 5
4 3
2 1
1 2
3 4
5 6
1 3 2 5
6 2 4 4
5 4 1 3
1 2 3 5
1 3 4 5
2 4 4 6