资源简介 / 让教学更有效 精品试卷 | 信息第17课 课后练习(答案版 · 教师用)班级:____________ 姓名:____________ 得分:__________一、错题复盘(20 分)请对照第 16 课模拟赛的参考解答,完成下面的错题记录表。题号 得分 错在哪里 下次怎么避免12345二、★ 典型错题订正(每题 6 分,共 30 分)第 1 题 下面程序想读入 n 和 n 个数(第二行空格分隔),但卡住了。请指出错误并改正。n = int(input())for i in range(n):x = int(input())错误:__________________________________________________________________________________________________________________________________________________________________________________________正确写法:______________________________________________________________________________________________________________________________________________________________________________________第 2 题 下面程序求最大值,样例能过但负数会错。请改正。a = [-7, -3, -5]m = 0for x in a:/n if x > m:/n m = xprint(m)输出结果是 ______,正确答案应该是 ______。改正:__________________________________________________________________________________________________________________________________________________________________________________________第 3 题 下面程序想把三位数 n 拆成各位数字,但有错误。a = n // 100b = n / 10 % 10c = n % 10错误在 ______ 这一行,原因是 ______________________________。应改为:________________________________________________________________________________________________________________________________________________________________________________________第 4 题 下面程序想输出 2~100 之间所有素数,但结果不对。for n in range(2, 101):flag = Truefor i in range(2, n):if n % i == 0:flag = Trueif 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 = Truefor i in range(2, n):if n % i == 0:flag = Falsebreakif 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] = svals = 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 randomanswer = random.randint(1, 100)count = 0while True:guess = int(input("猜一个 1~100 的数:"))count += 1if 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 课模拟赛的参考解答,完成下面的错题记录表。题号 得分 错在哪里 下次怎么避免12345二、★ 典型错题订正(每题 6 分,共 30 分)第 1 题 下面程序想读入 n 和 n 个数(第二行空格分隔),但卡住了。请指出错误并改正。n = int(input())for i in range(n):x = int(input())错误:__________________________________________________________________________________________________________________________________________________________________________________________正确写法:______________________________________________________________________________________________________________________________________________________________________________________第 2 题 下面程序求最大值,样例能过但负数会错。请改正。a = [-7, -3, -5]m = 0for x in a:/n if x > m:/n m = xprint(m)输出结果是 ______,正确答案应该是 ______。改正:__________________________________________________________________________________________________________________________________________________________________________________________第 3 题 下面程序想把三位数 n 拆成各位数字,但有错误。a = n // 100b = n / 10 % 10c = n % 10错误在 ______ 这一行,原因是 ______________________________。应改为:________________________________________________________________________________________________________________________________________________________________________________________第 4 题 下面程序想输出 2~100 之间所有素数,但结果不对。for n in range(2, 101):flag = Truefor i in range(2, n):if n % i == 0:flag = Trueif 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) 展开更多...... 收起↑ 资源列表 第17课 模拟比赛(二)——综合题讲评与总结课后练习(学生用).docx 第十七课课后练习(答案版).docx