跳转至

Python 模拟考试 5

考试说明

  • 单选题 24 题 / 判断题 14 题 / 填空题 3 题 / 改错题 4 题 / 编程题 2 题
  • 建议用时:90 分钟

📝 一、单选题

第 1 题

以下代码的运行结果是()。

Python
print(f"{2 + 3 ** 2}")
选项 内容
A {2 + 3 ** 2}
B 11
C 25
D 报错
第 2 题

以下代码的运行结果是()。

Python
1
2
3
a, b = 10, 20
a, b = b, a
print(a, b)
选项 内容
A 10 20
B 20 10
C 报错
D 20 20
第 3 题

表达式 round(2.5) 的结果是()。

选项 内容
A 2.5
B 2
C 3
D 2.0
第 4 题

表达式 chr(ord('A') + 32) 的结果是()。

选项 内容
A 'A'
B '33'
C 'a'
D 报错
第 5 题

表达式 isinstance(True, int) 的结果是()。

选项 内容
A True
B False
C 报错
D None
第 6 题

以下代码的运行结果是()。

Python
print("Hello World".swapcase())
选项 内容
A hello world
B hELLO wORLD
C HELLO WORLD
D Hello World
第 7 题

表达式 dict.fromkeys([1, 2, 3]) 的结果是()。

选项 内容
A {1: 1, 2: 2, 3: 3}
B [1, 2, 3]
C {1: 0, 2: 0, 3: 0}
D {1: None, 2: None, 3: None}
第 8 题

表达式 list(enumerate(['a', 'b'], 1)) 的结果是()。

选项 内容
A [(0, 'a'), (1, 'b')]
B [['a', 1], ['b', 2]]
C [(1, 'a'), (2, 'b')]
D {1: 'a', 2: 'b'}
第 9 题

表达式 divmod(20, 6) 的结果是()。

选项 内容
A (4, 2)
B (3, 2)
C (2, 8)
D 3.33
第 10 题

表达式 all([1, 2, 0, 3]) 的结果是()。

选项 内容
A True
B 0
C False
D 报错
第 11 题

以下代码的运行结果是()。

Python
1
2
3
x = [3, 1, 2]
y = sorted(x)
print(x, y)
选项 内容
A [1, 2, 3] [1, 2, 3]
B [3, 1, 2] [1, 2, 3]
C [1, 2, 3] None
D 报错
第 12 题

以下代码的运行结果是()。

Python
1
2
3
lst = [10, 20, 30, 40]
x = lst.pop(1)
print(x, lst)
选项 内容
A 10 [20, 30, 40]
B 20 [10, 30, 40]
C 40 [10, 20, 30]
D 1 [10, 20, 30, 40]
第 13 题

以下代码的运行结果是()。

Python
print("hello world python".title())
选项 内容
A Hello world python
B Hello World Python
C HELLO WORLD PYTHON
D hello world python
第 14 题

表达式 list(zip([1, 2, 3, 4], ['a', 'b', 'c'])) 的结果是()。

选项 内容
A [(1, 'a'), (2, 'b'), (3, 'c'), (4, None)]
B [(1, 'a'), (2, 'b'), (3, 'c'), (4, '')]
C [(1, 'a'), (2, 'b'), (3, 'c')]
D 报错
第 15 题

以下代码的运行结果是()。

Python
1
2
3
a = b = [1]
a.append(2)
print(b)
选项 内容
A [1]
B [1, 2]
C [2]
D 报错
第 16 题

以下代码的运行结果是()。

Python
lst = [[1, 2], [3, [4, 5]]]
print(lst[1][1][0])
选项 内容
A 1
B 3
C 4
D 报错
第 17 题

以下代码的运行结果是()。

Python
1
2
3
d = {'a': 1}
result = d.setdefault('a', 100)
print(result)
选项 内容
A 100
B 1
C None
D 报错
第 18 题

表达式 "12.5".isdigit() 的结果是()。

选项 内容
A True
B 12.5
C False
D 报错
第 19 题

表达式 "42".zfill(5) 的结果是()。

选项 内容
A "42 "
B " 42"
C "00042"
D "42000"
第 20 题

表达式 list(map(str, [1, 2, 3])) 的结果是()。

选项 内容
A "123"
B ['1', '2', '3']
C [1, 2, 3]
D 报错
第 21 题

表达式 list(reversed([1, 2, 3])) 的结果是()。

选项 内容
A [1, 2, 3]
B [1]
C [3, 2, 1]
D 报错
第 22 题

表达式 [1, 2] * 3 的结果是()。

选项 内容
A [1, 2, 3]
B [[1, 2], [1, 2], [1, 2]]
C [1, 2, 1, 2, 1, 2]
D 报错
第 23 题

表达式 min(["banana", "apple", "pie"], key=len) 的结果是()。

选项 内容
A "banana"
B "pie"
C "apple"
D 报错
第 24 题

表达式 eval("2 + 3 * 4") 的结果是()。

选项 内容
A "2 + 3 * 4"
B 20
C 14
D 报错

✅ 二、判断题

第 1 题

Python中,list.copy() 方法创建的是浅拷贝,如果列表中包含嵌套列表,修改副本中的嵌套列表会影响原列表。

第 2 题

dict.fromkeys([1, 2, 3]) 创建的字典中,所有值默认为 None

第 3 题

Python 3中,map() 函数返回的是一个列表。

第 4 题

列表推导式只能生成列表,不能生成字典或集合。

第 5 题

Python中,lambda 函数只能包含一个表达式,不能包含多条语句。

第 6 题

在Python中,try 语句必须包含 except 子句。

第 7 题

Python 3中,for 循环结束后,循环变量仍然可以访问。

第 8 题

float("inf") 可以表示正无穷大。

第 9 题

str.isdigit()str.isnumeric() 的功能完全相同。

第 10 题

使用 with 语句打开文件时,即使发生异常,文件也会被正确关闭。

第 11 题

Python中,a = b = [] 会让 a 和 b 指向同一个列表对象。

第 12 题

sorted() 函数只能对列表进行排序,不能对字符串和元组排序。

第 13 题

Python中,字典的 values() 方法返回的是视图对象,会随字典的变化实时更新。

第 14 题

字符串的 split()join() 完全互为逆操作。

✏️ 三、程序填空题

第 1 题:提取字符串中的数字并求和

题目: 提取字符串中所有数字字符并求和。

Python
s = "a1b2c3d4e5"
total = 0
for ch in s:
    #**********begin1**********
    _______
    #**********end1**********
        #**********begin2**********
        total += _______
        #**********end2**********
print("数字之和:", total)
第 2 题:二维列表展平

题目: 使用列表推导式将二维列表展平为一维列表。

Python
1
2
3
4
5
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
#**********begin1**********
flat = _______
#**********end1**********
print(flat)
第 3 题:选择排序

题目: 使用选择排序对列表进行升序排列。

Python
def selection_sort(lst):
    n = len(lst)
    for i in range(n - 1):
        #**********begin1**********
        min_idx = _______
        #**********end1**********
        for j in range(i + 1, n):
            if lst[j] < lst[min_idx]:
                min_idx = j
        #**********begin2**********
        _______
        #**********end2**********
    return lst

nums = [64, 25, 12, 22, 11]
print(selection_sort(nums))

🔧 四、程序改错题

第 1 题:字符串数字求和

题目: 将以逗号分隔的数字字符串求和。

Python
s = "1,2,3,4,5"
parts = s.split(",")
total = 0
#**********begin1**********
for num in parts:
    total += num
#**********end1**********
#**********begin2**********
print("总和为:" + total)
#**********end2**********
第 2 题:递归求和

题目: 使用递归计算1到n的和。

Python
def sum_n(n):
    #**********begin1**********
    if n == 0:
        return
    #**********end1**********
    #**********begin2**********
    return n + sum_n(n)
    #**********end2**********

n = int(input("请输入正整数:"))
print("1到{}的和为:".format(n), sum_n(n))
第 3 题:字典遍历删除

题目: 删除字典中成绩不及格(低于60分)的学生。

Python
1
2
3
4
5
6
7
scores = {"张三": 45, "李四": 78, "王五": 92, "赵六": 55}
#**********begin1**********
for name in scores:
    if scores[name] < 60:
        del scores[name]
#**********end1**********
print(scores)
第 4 题:读取文件统计行数

题目: 读取文件内容并统计文件行数。

Python
#**********begin1**********
f = open("data.txt", "w")
#**********end1**********
#**********begin2**********
lines = f.readline()
#**********end2**********
count = len(lines)
#**********begin3**********
f.close
#**********end3**********
print("文件共有", count, "行")

💻 五、程序设计题

第 1 题:凯撒密码

题目: 编写程序实现凯撒密码加密。

凯撒密码的原理:将每个字母在字母表中向后移动固定位数(偏移量),非字母字符不变,大小写分别处理。

要求: 1. 输入一个字符串和偏移量(正整数) 2. 输出加密后的密文 3. 字母循环移位(Z后移1位变为A) 4. 非字母字符保持不变

示例:

Text Only
1
2
3
输入字符串: Hello World!
输入偏移量: 3
加密结果: Khoor Zruog!
第 2 题:简易计算器

题目: 编写程序实现简易四则运算计算器。

要求: 1. 用户输入两个数字和一个运算符(+、-、*、/) 2. 根据运算符执行对应的运算并输出结果 3. 除数为0时给出提示"除数不能为零" 4. 输入不支持的运算符时给出提示"不支持的运算符" 5. 支持多次计算,输入 q 退出程序

示例交互:

Text Only
请输入第一个数字(输入q退出): 10
请输入运算符(+,-,*,/): /
请输入第二个数字: 0
除数不能为零

请输入第一个数字(输入q退出): 20
请输入运算符(+,-,*,/): *
请输入第二个数字: 3
计算结果: 60.0

请输入第一个数字(输入q退出): q
程序已退出