第17课 模拟比赛(二)——综合题讲评与总结课后练习--小学信息科技Python程序设计

资源下载
  1. 二一教育资源

第17课 模拟比赛(二)——综合题讲评与总结课后练习--小学信息科技Python程序设计

资源简介

/ 让教学更有效 精品试卷 | 信息
第17课 课后练习
(答案版 · 教师用)
班级:____________ 姓名:____________ 得分:__________
一、错题复盘(20 分)
请对照第 16 课模拟赛的参考解答,完成下面的错题记录表。
题号 得分 错在哪里 下次怎么避免
1
2
3
4
5
二、★ 典型错题订正(每题 6 分,共 30 分)
第 1 题 下面程序想读入 n 和 n 个数(第二行空格分隔),但卡住了。请指出错误并改正。
n = int(input())
for i in range(n):
x = int(input())
错误:______________________________________________________________
______________________________________________________________
______________________________________________________________
正确写法:__________________________________________________________
______________________________________________________________
______________________________________________________________
第 2 题 下面程序求最大值,样例能过但负数会错。请改正。
a = [-7, -3, -5]
m = 0
for x in a:/n if x > m:/n m = x
print(m)
输出结果是 ______,正确答案应该是 ______。
改正:______________________________________________________________
______________________________________________________________
______________________________________________________________
第 3 题 下面程序想把三位数 n 拆成各位数字,但有错误。
a = n // 100
b = n / 10 % 10
c = n % 10
错误在 ______ 这一行,原因是 ______________________________。
应改为:____________________________________________________________
______________________________________________________________
______________________________________________________________
第 4 题 下面程序想输出 2~100 之间所有素数,但结果不对。
for n in range(2, 101):
flag = True
for i in range(2, n):
if n % i == 0:
flag = True
if flag:/n print(n)
错误原因:__________________________________________________________
______________________________________________________________
______________________________________________________________
第 5 题 下面程序想统计单词数,但输入多个空格时结果偏大。
text = "I love Python" # 注意中间有两个空格
print(len(text.split(" ")))
输出结果是 ______,正确结果应该是 ______。
改正:______________________________________________________________
______________________________________________________________
______________________________________________________________
三、★★ 综合题实战(25 分)
学校要统计一次数学竞赛的成绩。请编写程序:
① 输入参赛人数 n;② 依次输入每个学生的姓名和成绩;③ 输出平均分(保留 2 位小数);④ 输出成绩高于平均分的所有学生姓名与分数;⑤ 输出最高分的学生姓名。
样例输入:
3
张三
88
李四
95
王五
72
样例输出:
平均分:85.00
高于平均分的同学:
张三:88 分
李四:95 分
最高分:李四(95 分)
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
四、★★★ 自主项目(25 分)
自选一个小项目独立完成,综合运用本学期所学。建议题目:「猜数字游戏」或「单词记忆小工具」。
要求提交:① 功能说明(这个程序能做什么);② 关键代码;③ 测试记录(至少一组正常输入、一组错误输入)。
一、功能说明:
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
二、关键代码:
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
三、测试记录:
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
五、学期总结(附加 10 分)
1.本学期你学得最好的三课是:______________________________________
2.你觉得最难、还需要再练的知识是:________________________________
3.给下学期定一个小目标:__________________________________________
______________________________________________________________
______________________________________________________________
4.用一句话说说你对编程的感受:
______________________________________________________________
______________________________________________________________
______________________________________________________________
教师评语:
__________________________________________________________________
__________________________________________________________________
第 17 课 参考答案(教师用)
与《教师参考答案》册同源,全部数值均已实际运行核验
一、错题复盘(开放题)
评分看三点:① 是否找准了真正的错因(不是笼统写「粗心」);② 是否写清了「下次怎么避免」的具体做法;③ 是否覆盖了本课讲的三类典型错。
二、典型错题订正
第 1 题:int(input()) 一次只能读一行的一个数,循环里会一直等用户输入,程序看起来「卡住」。正确写法是先整行读入再分割:
n = int(input())
a = list(map(int, input().split()))
第 2 题:程序输出 0,正确答案是 -7。因为初值 m = 0 比所有负数都大,x > m 永远不成立。改正:m = a[0]。
第 3 题:错在第二行 b = n / 10 % 10。/ 是普通除法,结果会变成小数(如 153 / 10 = 15.3),再取余得到的是小数不是整数位。应改用整除 //:b = n // 10 % 10。
第 4 题:判断素数的标志变量设反了。内层循环发现能整除时应该把 flag 置为 False(表示「不是素数」),而不是保持 True。正确写法:
for n in range(2, 101):
flag = True
for i in range(2, n):
if n % i == 0:
flag = False
break
if flag:
print(n)
第 5 题:输出 6(因为按单个空格切分,字符串中有几处连续空格就会多出几个空字符串),正确结果应该是 3。改法是去掉参数,用默认的无参 split(),它会自动忽略连续空白:text.split()。
三、综合题实战(25 分)
n = int(input("参赛人数:"))
scores = {}
for i in range(n):
name = input(f"第 {i + 1} 位姓名:")
s = int(input("成绩:"))
scores[name] = s
vals = list(scores.values())
avg = sum(vals) / len(vals)
print(f"平均分:{avg:.2f}")
print("高于平均分的同学:")
for name, s in scores.items():
if s > avg:
print(f" {name}:{s} 分")
top = max(scores, key=scores.get)
print(f"最高分:{top}({scores[top]} 分)")
样例输入 3 / 张三 88 / 李四 95 / 王五 72,输出平均分 85.00,高于平均分的有张三 88、李四 95,最高分李四。
四、自主项目(25 分)
评分要点:① 功能说明是否清楚(能看懂程序做什么);② 关键代码是否结构清晰(有函数划分);③ 测试记录是否包含错误输入的处理。
参考项目(猜数字游戏):
import random
answer = random.randint(1, 100)
count = 0
while True:
guess = int(input("猜一个 1~100 的数:"))
count += 1
if guess < answer:
print("小了")
elif guess > answer:
print("大了")
else:
print(f"猜对了!共猜 {count} 次")
break
五、学期总结(开放题,附加 10 分)
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)/ 让教学更有效 精品试卷 | 信息
第17课 课后练习
(学生用)
班级:____________ 姓名:____________ 得分:__________
一、错题复盘(20 分)
请对照第 16 课模拟赛的参考解答,完成下面的错题记录表。
题号 得分 错在哪里 下次怎么避免
1
2
3
4
5
二、★ 典型错题订正(每题 6 分,共 30 分)
第 1 题 下面程序想读入 n 和 n 个数(第二行空格分隔),但卡住了。请指出错误并改正。
n = int(input())
for i in range(n):
x = int(input())
错误:______________________________________________________________
______________________________________________________________
______________________________________________________________
正确写法:__________________________________________________________
______________________________________________________________
______________________________________________________________
第 2 题 下面程序求最大值,样例能过但负数会错。请改正。
a = [-7, -3, -5]
m = 0
for x in a:/n if x > m:/n m = x
print(m)
输出结果是 ______,正确答案应该是 ______。
改正:______________________________________________________________
______________________________________________________________
______________________________________________________________
第 3 题 下面程序想把三位数 n 拆成各位数字,但有错误。
a = n // 100
b = n / 10 % 10
c = n % 10
错误在 ______ 这一行,原因是 ______________________________。
应改为:____________________________________________________________
______________________________________________________________
______________________________________________________________
第 4 题 下面程序想输出 2~100 之间所有素数,但结果不对。
for n in range(2, 101):
flag = True
for i in range(2, n):
if n % i == 0:
flag = True
if flag:/n print(n)
错误原因:__________________________________________________________
______________________________________________________________
______________________________________________________________
第 5 题 下面程序想统计单词数,但输入多个空格时结果偏大。
text = "I love Python" # 注意中间有两个空格
print(len(text.split(" ")))
输出结果是 ______,正确结果应该是 ______。
改正:______________________________________________________________
______________________________________________________________
______________________________________________________________
三、★★ 综合题实战(25 分)
学校要统计一次数学竞赛的成绩。请编写程序:
① 输入参赛人数 n;② 依次输入每个学生的姓名和成绩;③ 输出平均分(保留 2 位小数);④ 输出成绩高于平均分的所有学生姓名与分数;⑤ 输出最高分的学生姓名。
样例输入:
3
张三
88
李四
95
王五
72
样例输出:
平均分:85.00
高于平均分的同学:
张三:88 分
李四:95 分
最高分:李四(95 分)
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
四、★★★ 自主项目(25 分)
自选一个小项目独立完成,综合运用本学期所学。建议题目:「猜数字游戏」或「单词记忆小工具」。
要求提交:① 功能说明(这个程序能做什么);② 关键代码;③ 测试记录(至少一组正常输入、一组错误输入)。
一、功能说明:
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
二、关键代码:
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
三、测试记录:
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
五、学期总结(附加 10 分)
1.本学期你学得最好的三课是:______________________________________
2.你觉得最难、还需要再练的知识是:________________________________
3.给下学期定一个小目标:__________________________________________
______________________________________________________________
______________________________________________________________
4.用一句话说说你对编程的感受:
______________________________________________________________
______________________________________________________________
______________________________________________________________
教师评语:
__________________________________________________________________
__________________________________________________________________
21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)
21世纪教育网(www.21cnjy.com)

展开更多......

收起↑

资源列表