专项练习 — 程序改错题
练习说明
- 共 10 道程序改错题,难度与模拟考试相当
- 每题包含 2~3 处错误,标记为
#**********begin********** 和 #**********end**********
- 建议每题用时 3~5 分钟
🔧 程序改错题
第1题:温度转换
题目: 将输入的摄氏温度转换为华氏温度并输出。转换公式:F = C * 9 / 5 + 32。
| Python |
|---|
| #**********begin1**********
c = input("请输入摄氏温度:")
#**********end1**********
#**********begin2**********
f = c * 9 // 5 + 32
#**********end2**********
#**********begin3**********
print("华氏温度为:" + f)
#**********end3**********
|
第2题:列表最大值
题目: 遍历列表,找出并输出其中的最大值。
| Python |
|---|
| nums = [23, 45, 12, 67, 34]
max_num = nums[0]
for num in nums:
#**********begin1**********
if num < max_num
#**********end1**********
#**********begin2**********
max_num == num
#**********end2**********
print(f"最大值:{max_num}")
|
第3题:文件写入
题目: 将文本内容写入文件 output.txt。
| Python |
|---|
| #**********begin1**********
f = open("output.txt", "r")
#**********end1**********
#**********begin2**********
f.writeline("Hello, World!\n")
#**********end2**********
f.writelines(["Line 1\n", "Line 2\n"])
#**********begin3**********
f.close
#**********end3**********
|
第4题:素数判断
题目: 判断输入的正整数是否为素数,并输出结果。
| Python |
|---|
| def is_prime(n):
if n < 2:
return False
#**********begin1**********
for i in range(1, n):
#**********end1**********
#**********begin2**********
if n / i == 0:
#**********end2**********
return False
return True
num = int(input("请输入一个正整数:"))
#**********begin3**********
if is_prime num:
#**********end3**********
print(f"{num}是素数")
else:
print(f"{num}不是素数")
|
第5题:字符统计
题目: 统计字符串中大写字母、小写字母和数字的个数。
| Python |
|---|
| s = "Hello World 123!"
upper_count = 0
lower_count = 0
digit_count = 0
for ch in s:
#**********begin1**********
if ch.isupper
upper_count += 1
elif ch.islower():
lower_count += 1
elif ch.isdigit():
digit_count += 1
#**********end1**********
#**********begin2**********
print("大写字母:" + upper_count + "个,小写字母:" + lower_count + "个,数字:" + digit_count + "个")
#**********end2**********
|
第6题:斐波那契数列
题目: 生成前n个斐波那契数并存入列表返回。
| Python |
|---|
| def fibonacci(n):
if n <= 0:
return []
if n == 1:
return [1]
fib = [1, 1]
#**********begin1**********
for i in range(2, n - 1):
#**********end1**********
#**********begin2**********
fib.add(fib[i-1] + fib[i-2])
#**********end2**********
return fib
#**********begin3**********
result = fibonacci 10
#**********end3**********
print(result)
|
第7题:学生信息类
题目: 定义学生类,按成绩从高到低排序后输出每位学生的信息。
| Python |
|---|
| class Student:
#**********begin1**********
def _init_(self, name, score):
#**********end1**********
self.name = name
self.score = score
def info(self):
#**********begin2**********
return self.name + "的成绩为:" + self.score
#**********end2**********
students = [
Student("张三", 85),
Student("李四", 92),
Student("王五", 78)
]
#**********begin3**********
students.sort(key=lambda s: s.score)
#**********end3**********
for s in students:
print(s.info())
|
第8题:最大公约数
题目: 使用辗转相除法求两个正整数的最大公约数。
| Python |
|---|
| def gcd(a, b):
#**********begin1**********
while b != 0
#**********end1**********
#**********begin2**********
a, b = b, a / b
#**********end2**********
return a
num1 = 48
num2 = 18
#**********begin3**********
print("最大公约数为:" + gcd(num1, num2))
#**********end3**********
|
第9题:列表过滤
题目: 从列表中筛选出所有偶数,返回新列表并输出。
| Python |
|---|
| def filter_even(lst):
result = []
#**********begin1**********
for num in lst
#**********end1**********
#**********begin2**********
if num % 2 == 1:
result.append(num)
#**********end2**********
#**********begin3**********
return result.sort()
#**********end3**********
nums = [1, 2, 3, 4, 5, 6, 7, 8]
even_nums = filter_even(nums)
print(f"偶数有{len(even_nums)}个:{even_nums}")
|
第10题:阶乘计算
题目: 计算并输出输入正整数的阶乘。
| Python |
|---|
| def factorial(n):
#**********begin1**********
result = 0
#**********end1**********
#**********begin2**********
for i in range(1, n):
#**********end2**********
result *= i
return result
n = int(input("请输入一个正整数:"))
#**********begin3**********
print(str(n) + "的阶乘为:" + factorial(n))
#**********end3**********
|