跳转至

Python 模拟考试 2

考试说明

  • 单选题 20 题(40分)/ 判断题 14 题(14分)/ 填空题 3 题(30分)/ 改错题 4 题(40分)/ 编程题 2 题(26分)
  • 满分:150 分 | 建议用时:90 分钟

📝 一、单选题(每题2分,共40分)

第1题

Python中,以下哪个不是合法的变量名?()

选项 内容
A \_name
B my\_var
C 2nd\_value
D StudentAge
第2题

下列关于Python3中字符串的说法,正确的是()。

选项 内容
A 字符串属于可变数据类型
B 单引号和双引号定义的字符串没有区别
C 三引号只能用于定义多行注释
D 字符串可以用del删除其中某个字符
第3题

表达式 len\(\&\#34;Hello世界\&\#34;\) 的结果是()。

选项 内容
A 5
B 6
C 7
D 8
第4题

下列关于Python列表的说法,错误的是()。

选项 内容
A 列表中的元素可以是不同类型
B 列表可以使用负数索引访问元素
C 列表是不可变数据类型
D 列表可以使用append\(\)方法添加元素
第5题

以下关于函数返回值的说法,正确的是()。

选项 内容
A 函数必须有return语句
B 没有return语句的函数返回None
C 函数只能返回一个值
D return语句只能出现在函数末尾
第6题

执行下列代码后,输出结果是()。

Text Only
1
2
3
4
5
6
```Python
def func(a, b=3, c=5):
    return a + b + c
print(func(1, 2))

```
选项 内容
A 6
B 8
C 9
D 报错
第7题

关于Python中全局变量和局部变量,下列说法错误的是()。

选项 内容
A 在函数内部定义的变量是局部变量
B 在函数外部定义的变量是全局变量
C 函数内部可以直接修改全局变量的值
D 使用global关键字可以在函数内声明全局变量
第8题

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

Text Only
1
2
3
4
5
```Python
s = "abcdef"
print(s[1:4])

```
选项 内容
A abc
B bcd
C bcde
D abcd
第9题

下列表达式中,结果为True的是()。

选项 内容
A 3 \> 2 \> 1
B 3 \> 2 \> 2
C 1 and 0
D not True or False
第10题

下列关于Python字典的说法,错误的是()。

选项 内容
A 字典中的键必须是唯一的
B 字典中的值可以是任意类型
C 字典是有序的数据结构(Python 3.7+)
D 字典的键可以是列表
第11题

表达式 type\(\{\}\) 的返回值是()。

选项 内容
A \<class \&\#39;set\&\#39;\>
B \<class \&\#39;dict\&\#39;\>
C \<class \&\#39;list\&\#39;\>
D \<class \&\#39;tuple\&\#39;\>
第12题

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

Text Only
1
2
3
4
5
6
7
```Python
x = [1, 2, 3]
y = x
y.append(4)
print(len(x))

```
选项 内容
A 3
B 4
C 报错
D 不确定
第13题

下列哪个不是Python的关键字?()

选项 内容
A elif
B pass
C main
D del
第14题

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

Text Only
1
2
3
4
5
```Python
a = [1, 2, 3, 4, 5]
print(a[::2])

```
选项 内容
A [1, 2, 3]
B [1, 3, 5]
C [2, 4]
D [5, 3, 1]
第15题

表达式 \&\#39;Hello\&\#39;\.replace\(\&\#39;l\&\#39;, \&\#39;L\&\#39;, 1\) 的结果是()。

选项 内容
A HeLLo
B HELLO
C HeLlo
D hello
第16题

以下关于Python异常处理的说法,正确的是()。

选项 内容
A try语句块可以单独使用
B except子句只能有一个
C else子句在发生异常时执行
D finally子句无论是否发生异常都会执行
第17题

表达式 list\(range\(1, 10, 3\)\) 的结果是()。

选项 内容
A [1, 4, 7]
B [1, 4, 7, 10]
C [3, 6, 9]
D [1, 3, 6, 9]
第18题

关于Python中的import语句,下列说法错误的是()。

选项 内容
A import math 导入整个math模块
B from math import sqrt 只导入sqrt函数
C import math as m 给math模块取别名m
D from math import \* 只导入\_\_all\_\_列表中指定的内容
第19题

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

Text Only
1
2
3
4
5
6
```Python
s1 = {1, 2, 3}
s2 = {2, 3, 4}
print(s1 & s2)

```
选项 内容
A {1, 2, 3, 4}
B {2, 3}
C {1, 4}
D 报错
第20题

执行 print\(\&\#34;abc123\&\#34;\.isalnum\(\)\) 的结果是()。

选项 内容
A True
B False
C abc123
D 报错

✅ 二、判断题(每题1分,共14分)

第1题

Python中,列表和元组的主要区别是列表可变而元组不可变。

第2题

Python中,break语句只能用于循环语句中,不能用于其他地方。

第3题

在Python中,3 \+ 4j是合法的复数表示。

第4题

print\(\)函数的end参数默认值是换行符\\n

第5题

字典的items\(\)方法返回的是一个列表。

第6题

continue语句的作用是跳出整个循环。

第7题

Python中的pass语句什么都不做,只是一个占位符。

第8题

range\(0\)range\(0, 0\) 都会生成空序列。

第9题

字符串方法find\(\)如果找不到子串则返回-1。

第10题

Python中,== 运算符比较的是两个对象的内存地址。

第11题

函数的默认参数值只在函数定义时计算一次。

第12题

在Python中,00\.0\&\#34;\&\#34;\[\]\(\)\{\} 的布尔值都是False

第13题

使用with open\(\)语句打开文件后,不需要手动调用close\(\)方法。

第14题

sorted\(\)函数会对原列表进行排序并返回None。


✏️ 三、程序填空题(每题10分,共30分)

第1题:冒泡排序

题目: 使用冒泡排序对列表进行升序排列。

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
```Python
lst = [64, 34, 25, 12, 22, 11, 90]
n = len(lst)
for i in range(n):
    for j in range(0, n - i - 1):
        #**********begin1**********
        _______
        #**********end1**********
            #**********begin2**********
            _______
            #**********end2**********
print("排序后:", lst)

```
第2题:统计字符

题目: 统计字符串中字母、数字和其他字符的个数。

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
```Python
s = input("请输入字符串:")
letters = 0
digits = 0
others = 0
for ch in s:
    #**********begin1**********
    _______
    #**********end1**********
        letters += 1
    #**********begin2**********
    _______
    #**********end2**********
        digits += 1
    else:
        others += 1
print("字母:%d, 数字:%d, 其他:%d" % (letters, digits, others))

```
第3题:斐波那契数列

题目: 输出斐波那契数列的前n项。

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
```Python
n = int(input("请输入项数:"))
a, b = 0, 1
count = 0
#**********begin1**********
_______
#**********end1**********
    print(a, end=" ")
    #**********begin2**********
    _______
    #**********end2**********
    count += 1

```

🔧 四、程序改错题(每题10分,共40分)

第1题:回文判断

题目: 判断输入的字符串是否为回文串。

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
```Python
def is_palindrome(s):
    left = 0
    right = len(s)
    #**********begin1**********
    while left < right:        # ❌ 错误1
    #**********end1**********
        if s[left] != s[right]:
            #**********begin2**********
            return "是回文"    # ❌ 错误2
            #**********end2**********
        left += 1
        right -= 1
    #**********begin3**********
    return "不是回文"          # ❌ 错误3
    #**********end3**********

s = input("请输入字符串:")
print(is_palindrome(s))

```
第2题:列表去重

题目: 对列表进行去重并保持原顺序。

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
```Python
def remove_duplicates(lst):
    #**********begin1**********
    result = {}                # ❌ 错误1
    #**********end1**********
    for item in lst:
        #**********begin2**********
        if item not in result: # ❌ 错误2
        #**********end2**********
            result.append(item)
    return result

original = [3, 1, 2, 3, 2, 1, 4, 5, 4]
#**********begin3**********
print(remove_duplicates(original))  # ❌ 错误3:输出格式
#**********end3**********
# 期望输出: 去重后: [3, 1, 2, 4, 5]

```
第3题:温度转换

题目: 将华氏温度转换为摄氏温度(公式:C = \(F \- 32\) / 1.8)。

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
```Python
def f2c(f):
    #**********begin1**********
    c = f - 32 / 1.8           # ❌ 错误1:运算优先级
    #**********end1**********
    return c

#**********begin2**********
f = input("输入华氏温度:")    # ❌ 错误2:未转换类型
#**********end2**********
celsius = f2c(f)
#**********begin3**********
print("摄氏温度为:" + celsius) # ❌ 错误3:字符串拼接
#**********end3**********

```
第4题:学生成绩管理

题目: 定义学生类,包含姓名和成绩,并计算平均成绩。

Text Only
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
```Python
class Student:
    #**********begin1**********
    def _init_(self, name, score):  # ❌ 错误1
    #**********end1**********
        self.name = name
        self.score = score

    def get_info(self):
        return f"{self.name}: {self.score}"

students = []
#**********begin2**********
students.append(Student("张三", 85)  # ❌ 错误2
#**********end2**********
students.append(Student("李四", 92))
students.append(Student("王五", 78))

total = 0
for s in students:
    #**********begin3**********
    total += Student.score          # ❌ 错误3
    #**********end3**********

avg = total / len(students)
print(f"平均成绩: {avg}")

```

💻 五、程序设计题(每题13分,共26分)

第1题:猜数字游戏

题目: 编写程序实现猜数字游戏:

  1. 程序随机生成1~100之间的整数

  2. 用户输入猜测的数字

  3. 如果猜大了提示\"太大了\",猜小了提示\"太小了\",猜对了提示\"恭喜你猜对了!\"

  4. 显示用户总共猜了几次

  5. 输入0可以提前退出游戏

第2题:学生成绩统计

题目: 编写程序实现以下功能:

  1. 输入若干个学生的姓名和成绩,存入字典(姓名为键,成绩为值)

  2. 输入空行结束输入

  3. 计算并输出:平均成绩、最高分及对应学生姓名、最低分及对应学生姓名

  4. 输出成绩从高到低排序的结果

示例输出:

Text Only
1
2
3
4
5
6
7
```Python
平均成绩: 82.5
最高分: 李四 95
最低分: 王五 67
成绩排序: 李四:95, 张三:85, 王五:67

```