跳转至

Python 模拟考试 7

考试说明

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

📝 一、单选题

第1题

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

选项 内容
A 'A'
B 65
C 97
D 报错
第2题

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

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

下列关于Python元组的说法,正确的是()。

选项 内容
A 元组只有一个元素时,写法为 (1)
B 元组可以通过索引修改元素
C 元组是不可变序列,创建后不能修改元素
D 元组不支持 len() 函数
第4题

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

Python
1
2
3
4
lst = [1, 2, 3]
lst.append([4, 5])
lst.extend([6, 7])
print(len(lst))
选项 内容
A 7
B 5
C 6
D 8
第5题

表达式 3 > 2 > 1 的结果是()。

选项 内容
A True
B False
C 报错
D 不确定
第6题

下列关于 dict.get() 方法的说法,正确的是()。

选项 内容
A dict.get(key) 在key不存在时会报KeyError
B dict.get(key, default) 在key不存在时返回default
C dict.get(key)dict[key] 功能完全相同
D dict.get() 只能获取值,不能设置默认返回值
第7题

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

Python
x = [1, 2, 3, 2, 1]
print(x.index(2))
选项 内容
A 1
B 3
C [1, 3]
D 报错
第8题

表达式 "Hello".center(11, "*") 的结果是()。

选项 内容
A "Hello"
B "*Hello"
C "Hello*"
D "*Hello"
第9题

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

Python
1
2
3
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 - s2)
选项 内容
A {1}
B {4}
C {1, 4}
D 报错
第10题

以下关于Python函数参数的说法,错误的是()。

选项 内容
A *args 用于接收任意数量的位置参数
B **kwargs 用于接收任意数量的关键字参数
C 函数调用时关键字参数必须在位置参数之后
D 默认参数可以放在非默认参数之前
第11题

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

Python
result = "Python" if 3 > 5 else "Java"
print(result)
选项 内容
A Python
B Java
C 报错
D None
第12题

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

Python
1
2
3
4
5
6
for i in range(5):
    if i == 3:
        break
else:
    print("完成")
print(i)
选项 内容
A 完成 3
B 完成 4
C 3
D 4
第13题

表达式 chr(97) 的结果是()。

选项 内容
A 97
B 'a'
C 'A'
D 报错
第14题

下列关于 list.sort()sorted() 的说法,正确的是()。

选项 内容
A sort() 返回排序后的新列表
B sorted() 会修改原列表
C sort() 是列表方法,会修改原列表
D sorted() 只能排序列表,不能排序字符串
第15题

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

Python
print(":".join("2024"))
选项 内容
A "2024"
B "2:0:2:4"
C 报错
D "2:0:24"
第16题

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

Python
x = [i * 2 for i in range(5) if i % 2 != 0]
print(x)
选项 内容
A [0, 2, 4, 6, 8]
B [2, 6]
C [1, 3]
D [2, 4, 6, 8]
第17题

以下关于Python字符串格式化的说法,错误的是()。

选项 内容
A f"值是{val}" 是f-string格式化
B "值是{}".format(val) 是format方法
C "值是%d" % val 是%格式化
D 三种格式化方式中,%格式化是Python 3.6新增的
第18题

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

Python
d = {"a": 1, "b": 2, "c": 3}
print(list(d.keys()))
选项 内容
A ["a", "b", "c"]
B [1, 2, 3]
C [("a", 1), ("b", 2), ("c", 3)]
D 报错
第19题

表达式 0.1 + 0.2 == 0.3 的结果是()。

选项 内容
A True
B False
C 报错
D 不确定
第20题

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

Python
1
2
3
def func(a, b, *, c):
    return a + b + c
print(func(1, 2, c=3))
选项 内容
A 6
B 报错
C None
D 123
第21题

下列关于 list.remove()list.pop() 的说法,正确的是()。

选项 内容
A remove() 按索引删除,pop() 按值删除
B remove() 按值删除第一个匹配项,pop() 按索引删除并返回该元素
C remove()pop() 功能完全相同
D pop() 不指定索引时删除第一个元素
第22题

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

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

以下关于Python中 is 运算符的说法,正确的是()。

选项 内容
A is 比较的是两个对象的值是否相等
B is 比较的是两个对象的内存地址是否相同
C is== 功能完全相同
D [1,2] is [1,2] 的结果为True
第24题

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

Python
1
2
3
nums = [3, 1, 4, 1, 5, 9, 2, 6]
result = filter(lambda x: x > 3, nums)
print(list(result))
选项 内容
A [4, 5, 9, 6]
B [3, 1, 1, 2]
C [4, 5, 9]
D 报错

✅ 二、判断题


第1题

Python中,list.sort() 方法会返回排序后的新列表,不会修改原列表。

第2题

Python中,字符串可以通过 + 运算符进行拼接,但拼接后会创建一个新的字符串对象。

第3题

在Python中,只包含一个元素的元组必须写成 (1,) 的形式,(1) 会被当作整数1。

第4题

Python中,字典的键必须是唯一的,如果对已有的键赋值,旧值会被覆盖。

第5题

break 语句可以用于 if 语句中,用来跳出 if 代码块。

第6题

Python中,字符串的比较是按照字典序(lexicographic order)进行的。

第7题

None0 在Python中是等价的,None == 0 的结果为 True

第8题

Python中,一个函数可以返回多个值,实际上返回的是一个元组。

第9题

def 语句定义函数时,函数体不会被执行,只有调用函数时才会执行。

第10题

Python中,float 类型的运算可能存在精度误差,因此不建议直接用 == 比较两个浮点数。

第11题

字符串的 split() 方法如果不指定分隔符,默认按逗号分割。

第12题

Python中,andor 运算符具有短路求值特性。

第13题

enumerate() 函数可以同时获取列表元素的索引和值。

第14题

在Python中,del 语句既可以删除变量,也可以删除列表中的元素。

✏️ 三、程序填空题


第1题:凯撒密码加密

题目: 实现凯撒密码加密,将字符串中每个字母向后移动3位(如A→D,x→a),非字母字符不变。

Python
def caesar_encrypt(text, shift=3):
    result = ""
    for ch in text:
        if ch.isalpha():
            #**********begin1**********
            base = _______
            #**********end1**********
            #**********begin2**********
            new_ch = chr(_______)
            #**********end2**********
            result += new_ch
        else:
            result += ch
    return result

text = input("请输入明文:")
#**********begin3**********
print("密文:", _______)
#**********end3**********
第2题:二维列表求每行最大值

题目: 给定一个二维列表(矩阵),找出每行的最大值并存入新列表。

Python
matrix = [
    [3, 5, 1, 7],
    [9, 2, 8, 4],
    [6, 1, 3, 5]
]
row_max = []
for row in matrix:
    #**********begin1**********
    _______
    #**********end1**********
    row_max.append(m)
#**********begin2**********
print("每行最大值:", _______)
#**********end2**********
第3题:递归求各位数字之和

题目: 使用递归函数计算一个正整数各位数字之和。例如:123 → 1+2+3 = 6。

Python
def digit_sum(n):
    #**********begin1**********
    if _______:
        return n
    #**********end1**********
    else:
        #**********begin2**********
        return _______
        #**********end2**********

num = int(input("请输入一个正整数:"))
print("各位数字之和:", digit_sum(num))

🔧 四、程序改错题


第1题:最大公约数

题目: 使用辗转相除法求两个正整数的最大公约数。

Python
def gcd(a, b):
    #**********begin1**********
    while a / b != 0:
    #**********end1**********
        a, b = b, a % b
    return a

num1 = int(input("请输入第一个正整数:"))
num2 = int(input("请输入第二个正整数:"))
#**********begin2**********
print("最大公约数为:", gcd(num1, num2)
#**********end2**********
第2题:统计单词频率

题目: 统计一段英文中每个单词出现的次数,并按次数从高到低输出。

Python
text = "the cat sat on the mat the cat ate the rat"
#**********begin1**********
words = text.split()
word_count = []
#**********end1**********
for word in words:
    if word in word_count:
        word_count[word] += 1
    else:
        word_count[word] = 1
#**********begin2**********
for w in word_count:
    print(w, word_count[w])
#**********end2**********
第3题:冒泡排序优化

题目: 对列表进行升序排序,并输出排序后的结果。

Python
lst = [64, 34, 25, 12, 22, 11, 90]
n = len(lst)
for i in range(n):
    #**********begin1**********
    for j in range(n):
    #**********end1**********
        if lst[j] > lst[j + 1]:
            lst[j], lst[j + 1] = lst[j + 1], lst[j]
#**********begin2**********
print("排序后:" + lst)
#**********end2**********
第4题:猜数字函数

题目: 编写函数判断猜的数字与目标数字的大小关系。

Python
#**********begin1**********
def guess(target, guess_num)
#**********end1**********
    if guess_num > target:
        return "太大了"
    #**********begin2**********
    elseif guess_num < target:
    #**********end2**********
        return "太小了"
    else:
        return "猜对了"

import random
target = random.randint(1, 100)
#**********begin3**********
result = guess target, 50
#**********end3**********
print(result)

💻 五、程序设计题


第1题:密码强度检测

题目: 编写程序检测密码强度,要求如下:

  1. 输入一个密码字符串
  2. 检测密码是否满足以下条件:
  3. 长度不少于8位
  4. 包含至少一个大写字母
  5. 包含至少一个小写字母
  6. 包含至少一个数字
  7. 包含至少一个特殊字符(如!@#$%^&*等)
  8. 根据满足的条件数量给出强度等级:
  9. 满足5项:强
  10. 满足4项:较强
  11. 满足3项:中等
  12. 满足2项及以下:弱
  13. 输出每项检测结果和最终强度等级

示例输出:

Text Only
1
2
3
4
5
6
7
请输入密码: Abc123!
长度不足8位: 不满足
包含大写字母: 满足
包含小写字母: 满足
包含数字: 满足
包含特殊字符: 满足
密码强度: 较强
第2题:简单计算器

题目: 编写程序实现简单的四则运算计算器,要求如下:

  1. 循环输入两个数字和运算符(+、-、*、/)
  2. 根据运算符进行相应的计算
  3. 除法运算时,如果除数为0,输出"除数不能为0"
  4. 如果输入的运算符不是+、-、*、/,输出"无效运算符"
  5. 输入q退出程序
  6. 输出格式:数字1 运算符 数字2 = 结果

示例交互:

Text Only
请输入第一个数字(输入q退出): 10
请输入运算符(+,-,*,/): +
请输入第二个数字: 5
10 + 5 = 15
请输入第一个数字(输入q退出): 8
请输入运算符(+,-,*,/): /
请输入第二个数字: 0
除数不能为0
请输入第一个数字(输入q退出): q
程序已退出