资源简介 / 让教学更有效 精品试卷 | 信息第9课 课后练习(答案版 · 教师用)班级:____________ 姓名:____________ 得分:__________一、填空(每空 3 分,共 24 分)1.定义函数使用的关键字是 ______________。2.函数定义中括号里的变量叫 ______________;调用时括号里填的具体值叫 ______________。3.函数要把结果交给调用它的地方,应该用 ______________ 语句。4.def add(a, b): 定义了一个函数,把它用 3 和 5 调用,写法是 ____________。5.函数体内 return 语句执行后,函数会 ______________(继续执行 / 立即结束)。6.如果想在屏幕上显示某个值,用 ______________;如果想把这个值留给后面的代码继续算,用 ______________。二、判断对错(每题 3 分,共 12 分)1.只要写了 def,函数体就会自动执行。( )2.函数可以没有参数,也可以没有返回值。( )3.print(a + b) 和 return a + b 可以互相替换,效果一样。( )4.一个函数里可以有多个 return 语句。( )三、★ 改错题(每题 8 分,共 24 分)第 1 题 下面的程序想问候两位同学,但没有输出。请找出错误并改正。def greet(name):print("你好," + name)greet错误:__________________________________________________________________________________________________________________________________________________________________________________________第 2 题 下面程序想用返回值参与运算,却报了错。def add(a, b):print(a + b)s = add(3, 5)print(s * 2)错误原因:______________________________________________________________________________________________________________________________________________________________________________________改正方法:______________________________________________________________________________________________________________________________________________________________________________________第 3 题 下面函数想返回两个数中的较大者,结果不对。def bigger(a, b):if a > b:return areturn bprint(bigger(8, 3) + bigger(2, 9))程序输出:______________。这是对的吗?(是 / 不是)__________如果把最后一行的加法改成 print(bigger(8, 3), bigger(2, 9)),输出是什么?____________________________________________________________________________________________________________________________四、★★ 提高题(每题 10 分,共 30 分)第 1 题 把重复代码改成函数下面是一段重复了三次的代码,请把它改写成「定义一个函数 + 调用三次」的形式。r = 3print(f"面积是 {3.14 * r * r:.2f}")r = 5print(f"面积是 {3.14 * r * r:.2f}")r = 8print(f"面积是 {3.14 * r * r:.2f}")______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________第 2 题 读程序写结果def f(x):x = x + 10return xa = 5b = f(a)print(a)print(b)输出结果:第一行 ____________,第二行 ____________。想一想:为什么 a 没有被改变?这说明函数里的参数和外面的变量是什么关系?__________________________________________________________________________________________________________________________________________________________________________________________第 3 题 三个数的最大值(一题多解)写一个函数 max3(a, b, c),返回三个数中的最大值。请写出两种不同的实现思路,并说明哪种更好理解。____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________五、★★★ 挑战题(每题 12 分,共 24 分)第 1 题 素数判断函数写一个函数 is_prime(n),判断 n 是否为素数(只能被 1 和自身整除的大于 1 的数),再用它输出 2~100 之间的所有素数,每行输出 5 个。________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________自测数据:2、3、5、7 是素数;1 不是素数;9 不是素数;97 是素数。第 2 题 成绩等级函数写一个函数 grade(score),根据分数返回等级:90 及以上返回 "A",80~89 返回 "B",60~79 返回 "C",60 以下返回 "D"。再用它处理一个成绩列表 [95, 82, 67, 58, 100, 73],输出每个分数和对应等级。________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________教师评语:____________________________________________________________________________________________________________________________________第 9 课 参考答案(教师用)与《教师参考答案》册同源,全部数值均已实际运行核验一、填空1.def 2.形参、实参 3.return 4.add(3, 5) 5.立即结束 6.print、return二、判断对错1.×(def 只是定义,必须再调用才会执行) 2.√ 3.×(print 只是显示,不能参与后续运算) 4.√三、★ 改错题第 1 题:最后一行写的是 greet,少了一对括号。调用函数必须加括号,应改为 greet("小明")。第 2 题:add 函数里用的是 print,没有 return,所以 s 是 None,s * 2 报类型错误。应把 print(a + b) 改成 return a + b。第 3 题:程序输出 8 + 9 = 17。这是对的。改成 print(bigger(8, 3), bigger(2, 9)) 后输出 8 9。四、★★ 提高题第 1 题:def area(r):return f"面积是 {3.14 * r * r:.2f}"print(area(3))print(area(5))print(area(8))第 2 题:第一行输出 5,第二行输出 15。因为 a 是外部变量,传给函数的只是它的值(副本),函数里 x = x + 10 改的是函数内部的 x,外部的 a 不受影响。这说明函数的参数是「按值传递」的,函数内部改不了外面变量的值。第 3 题:思路① 两两比较(bigger(bigger(a,b), c));思路② 用 max(a, b, c) 一行完成。思路②更简洁,但思路①能体现比较的过程,更能说明「为什么它最大」。五、★★★ 挑战题第 1 题:def is_prime(n):if n < 2:return Falsefor i in range(2, n):if n % i == 0:return Falsereturn Truecount = 0for x in range(2, 101):if is_prime(x):print(f"{x:4d}", end="")count += 1if count % 5 == 0:print()第 2 题:def grade(score):if score >= 90:return "A"elif score >= 80:return "B"elif score >= 60:return "C"else:return "D"for s in [95, 82, 67, 58, 100, 73]:print(f"{s} → {grade(s)}")21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)21世纪教育网(www.21cnjy.com)/ 让教学更有效 精品试卷 | 信息第9课 课后练习(学生用)班级:____________ 姓名:____________ 得分:__________一、填空(每空 3 分,共 24 分)1.定义函数使用的关键字是 ______________。2.函数定义中括号里的变量叫 ______________;调用时括号里填的具体值叫 ______________。3.函数要把结果交给调用它的地方,应该用 ______________ 语句。4.def add(a, b): 定义了一个函数,把它用 3 和 5 调用,写法是 ____________。5.函数体内 return 语句执行后,函数会 ______________(继续执行 / 立即结束)。6.如果想在屏幕上显示某个值,用 ______________;如果想把这个值留给后面的代码继续算,用 ______________。二、判断对错(每题 3 分,共 12 分)1.只要写了 def,函数体就会自动执行。( )2.函数可以没有参数,也可以没有返回值。( )3.print(a + b) 和 return a + b 可以互相替换,效果一样。( )4.一个函数里可以有多个 return 语句。( )三、★ 改错题(每题 8 分,共 24 分)第 1 题 下面的程序想问候两位同学,但没有输出。请找出错误并改正。def greet(name):print("你好," + name)greet错误:__________________________________________________________________________________________________________________________________________________________________________________________第 2 题 下面程序想用返回值参与运算,却报了错。def add(a, b):print(a + b)s = add(3, 5)print(s * 2)错误原因:______________________________________________________________________________________________________________________________________________________________________________________改正方法:______________________________________________________________________________________________________________________________________________________________________________________第 3 题 下面函数想返回两个数中的较大者,结果不对。def bigger(a, b):if a > b:return areturn bprint(bigger(8, 3) + bigger(2, 9))程序输出:______________。这是对的吗?(是 / 不是)__________如果把最后一行的加法改成 print(bigger(8, 3), bigger(2, 9)),输出是什么?____________________________________________________________________________________________________________________________四、★★ 提高题(每题 10 分,共 30 分)第 1 题 把重复代码改成函数下面是一段重复了三次的代码,请把它改写成「定义一个函数 + 调用三次」的形式。r = 3print(f"面积是 {3.14 * r * r:.2f}")r = 5print(f"面积是 {3.14 * r * r:.2f}")r = 8print(f"面积是 {3.14 * r * r:.2f}")______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________第 2 题 读程序写结果def f(x):x = x + 10return xa = 5b = f(a)print(a)print(b)输出结果:第一行 ____________,第二行 ____________。想一想:为什么 a 没有被改变?这说明函数里的参数和外面的变量是什么关系?__________________________________________________________________________________________________________________________________________________________________________________________第 3 题 三个数的最大值(一题多解)写一个函数 max3(a, b, c),返回三个数中的最大值。请写出两种不同的实现思路,并说明哪种更好理解。____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________五、★★★ 挑战题(每题 12 分,共 24 分)第 1 题 素数判断函数写一个函数 is_prime(n),判断 n 是否为素数(只能被 1 和自身整除的大于 1 的数),再用它输出 2~100 之间的所有素数,每行输出 5 个。________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________自测数据:2、3、5、7 是素数;1 不是素数;9 不是素数;97 是素数。第 2 题 成绩等级函数写一个函数 grade(score),根据分数返回等级:90 及以上返回 "A",80~89 返回 "B",60~79 返回 "C",60 以下返回 "D"。再用它处理一个成绩列表 [95, 82, 67, 58, 100, 73],输出每个分数和对应等级。________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________教师评语:____________________________________________________________________________________________________________________________________21世纪教育网 www.21cnjy.com 精品试卷·第 2 页 (共 2 页)21世纪教育网(www.21cnjy.com) 展开更多...... 收起↑ 资源列表 第9课 函数基础——把代码打包起来课后练习(学生用).docx 第九课课后练习(答案版).docx