第4单元 引用,让编程事半功倍《python程序编写入门》(高教版)章节过关卷(二)

2025-04-10
| 2份
| 17页
| 103人阅读
| 0人下载

内容正文:

《Python 程序编写入门》高等教育出版社 第4单元 引用,让编程事半功倍-变量作用域 时间:90分钟 总分:100分 班级___________ 姓名___________ 学号___________ 成绩_____________ 一、选择题(本大题共10小题,每小题2分,共20分) 1.Python中,关键字( )是对全局变量的声明。 A. public B. local C. private D. global 2.Python 中,仅在函数内部,且作用域也在函数内部的变量称为( )。 A. 局部变量 B. 全局变量 C. 私有变量 D. 以上都不是 3.Python 中,定义在模块里面所有函数之外的变量称为( )。 A. 局部变量 B. 全局变量 C. 私有变量 D. 以上都不是 4. 下面程序中的变量 z 属于( )。 def test(x, y=5): z = x * y return z test(10, 2) A. 局部变量 B. 全局变量 C. 私有变量 D. 以上都不是 5.下面程序的运行结果为( )。 def test(x, y=5): z = x * y return z print(test(10, 2)) A. 20 B. 10 C. 50 D. 5 6. 下面程序中的变量 n 属于( )。 n=3 def test(x, y=20): global n return x * y * n print(test(10, 1)) A. 局部变量 B. 全局变量 C. 私有变量 D. 以上都不是 7.下面程序的运行结果为( )。 n=5 def test(x, y=20): global n return x * y * n print(test(10, 1)) A. 200 B. 50 C. 20 D. 10 8. 下面程序的运行结果为( )。 n=5 def test(x, y=20): n=3 return x * y * n print(test(10),n) A. 200 3 B. 200 5 C. 600 3 D. 600 5 9. 下面程序的运行结果为( )。 n=5 def guo(x, y=20): global n n = x + y return n print(guo(10, 1),n) A. 11 30 B. 30 5 C. 11 11 D. 30 11 10.下面程序的运行结果为( )。 n=5 def guo(x, y=20): z = x // y return n%z print(guo(10, 3)) A. 1 B. 2 C. 3 D. 4 二、填空题(本大题共10小题,每小题2分,共20分) 1.全局变量一般只能在函数内进行________。 2.根据程序中变量所在的位置和________,变量分为局部变量和全局变量。 3.________变量指在函数之外定义的变量,在程序执行全过程有效。 4.使用 global 对变量进行声明时,该变量要与外部全局变量________。(填“同名”或“不同名”) 5. 在函数中,如果未用 global 声明,变量名称相同,________全局变量。(填“也不是”或“也是”) 6.全局变量的定义需要_________创建(填“顶格”或“有缩进”) 7.阅读程序: x = 10 def func(): x = 20 print("函数内部 x 的值是:", x) func() print("函数外部 x 的值是:", x) 函数内部 x 的值是 ________,函数外部 x 的值是 ________。(每空1分) 8.阅读代码: x = 10 def func(): global x x = 20 print("函数内部 x 的值是:", x) func() print("函数外部 x 的值是:", x) 函数内部 x 的值是 ________,函数外部 x 的值是 ________。(每空1分) 9.阅读代码: x = 10 def outer(): x = 20 def inner(): nonlocal x x = 30 inner() print("outer 函数内部 x 的值是:", x) outer() print("函数外部 x 的值是:", x) outer 函数内部 x 的值是 ________,函数外部 x 的值是 ________。(每空1分) 10.阅读代码: x = 10 def func(): x = 20 return x y = func() print("y 的值是:", y) print("x 的值是:", x) y 的值是 ________,x 的值是 ________。(每空1分) 三、程序分析题(本大题共2小题 每小题8分 共16分) 1.程序填空题:要求输入圆的半径和高度,显示输出圆柱体的底面积和体积。根据以上程序设计要求,完成下列程序填空,并把答案写在相应的序号处。(24分) dmj=0 def getDmj(r): global dmj dmj=p*pow(r,2) dmj=round(dmj,2) return ____①_____ def getTj(h): global dmj tj=dmj*h tj=round(tj,2) return ____②_____ p=3.14 r=int(input("请输入圆柱体的底面半径:")) h=int(input("请输入圆柱体的高度:")) ym= getDmj(r) yn= getTj(h) print("圆柱体的底面积为:", ____③_____) print("圆柱体的体积为:", ____④_____) ①________ ②________ ③________ ④________ (每空2分) 2.程序填空题:要求输入学生的成绩,输入学生的人数不限,当输入“0”时将终止输入学生的成绩,最后显示输出90分以上的学生人数。根据以上程序设计要求,完成下列程序填空,并把答案写在相应的序号处。(注:成绩为百分制)(24分) def pd(score): ______①______ if score>90: num+=1 num=0 score=int(input("请输入学生的成绩:")) while score!= _____②______: _________③____________ score=int(input("请输入学生的成绩:")) print("90分以上的学生有{}位".format(_______④________)) ①________ ②________ ③________ ④________(每空2分) 四、程序设计题(本大题共3小题 共44分) 1.程序设计题:将文本根据标点符号重新切分短句居中显示输出,例如:txt="床前明月光,疑是地上霜。举头望明月,低头思故乡。"(注:预定的显示输出宽度为30,居中填充空格,输出样式如下图所示)(14分) 床前明月光 疑是地上霜 举头望明月 低头思故乡 2.程序设计题:采用标准自定义函数的方式,实现输入一段字符串,获取字符串的长度。要求是不能使用len()函数,使用切片的方法(15分) 3.键盘输入两个正整数,使用自定义函数来求两个数的最大公约数和最小公倍数(15分) 学科网(北京)股份有限公司 $$ 《Python 程序编写入门》高等教育出版社 第4单元 引用,让编程事半功倍-变量作用域 时间:90分钟 总分:100分 班级___________ 姓名___________ 学号___________ 成绩_____________ 一、选择题(本大题共10小题,每小题2分,共20分) 1.Python中,关键字( )是对全局变量的声明。 A. public B. local C. private D. global 【答案】D 【解析】在Python中,关键字global用于声明全局变量。 2.Python 中,仅在函数内部,且作用域也在函数内部的变量称为( )。 A. 局部变量 B. 全局变量 C. 私有变量 D. 以上都不是 【答案】A 【解析】在函数内部定义的变量称为局部变量,其作用域仅在函数内部。 3.Python 中,定义在模块里面所有函数之外的变量称为( )。 A. 局部变量 B. 全局变量 C. 私有变量 D. 以上都不是 【答案】B 【解析】在模块内部但函数外部定义的变量称为全局变量。 4. 下面程序中的变量 z 属于( )。 def test(x, y=5): z = x * y return z test(10, 2) A. 局部变量 B. 全局变量 C. 私有变量 D. 以上都不是 【答案】A 【解析】变量z在函数内部定义,因此是局部变量。 5.下面程序的运行结果为( )。 def test(x, y=5): z = x * y return z print(test(10, 2)) A. 20 B. 10 C. 50 D. 5 【答案】A 【解析】函数test(10, 2)返回10 * 2 = 20。 6. 下面程序中的变量 n 属于( )。 n=3 def test(x, y=20): global n return x * y * n print(test(10, 1)) A. 局部变量 B. 全局变量 C. 私有变量 D. 以上都不是 【答案】B 【解析】使用global关键字声明的变量n是全局变量。 7.下面程序的运行结果为( )。 n=5 def test(x, y=20): global n return x * y * n print(test(10, 1)) A. 200 B. 50 C. 20 D. 10 【答案】B 【解析】全局变量n=5,函数内部使用global声明,返回10 * 1 * 5 = 50。 8. 下面程序的运行结果为( )。 n=5 def test(x, y=20): n=3 return x * y * n print(test(10),n) A. 200 3 B. 200 5 C. 600 3 D. 600 5 【答案】D 【解析】函数内部定义的n=3是局部变量,不影响全局变量n=5,因此返回10 * 20 * 3 = 600,全局变量n仍为5。 9. 下面程序的运行结果为( )。 n=5 def guo(x, y=20): global n n = x + y return n print(guo(10, 1),n) A. 11 30 B. 30 5 C. 11 11 D. 30 11 【答案】C 【解析】函数内部使用global声明n,修改其值为10 + 20 = 30,因此返回30,全局变量n也变为30。 10.下面程序的运行结果为( )。 n=5 def guo(x, y=20): z = x // y return n%z print(guo(10, 3)) A. 1 B. 2 C. 3 D. 4 【答案】B 【解析】函数内部计算10 // 3 = 3,然后返回5 % 3 = 2。 二、填空题(本大题共10小题,每小题2分,共20分) 1.全局变量一般只能在函数内进行________。 【答案】使用 【解析】全局变量在函数内部只能被使用,不能被修改,除非使用global关键字。 2.根据程序中变量所在的位置和________,变量分为局部变量和全局变量。 【答案】作用域 【解析】根据变量所在的位置和作用域,变量分为局部变量和全局变量。 3.________变量指在函数之外定义的变量,在程序执行全过程有效。 【答案】全局变量 【解析】在函数之外定义的变量称为全局变量,其作用域是整个程序。 4.使用 global 对变量进行声明时,该变量要与外部全局变量________。(填“同名”或“不同名”) 【答案】同名 【解析】使用global声明的变量必须与外部全局变量同名。 5. 在函数中,如果未用 global 声明,变量名称相同,________全局变量。(填“也不是”或“也是”) 【答案】也不是 【解析】在函数内部未用global声明的变量,即使名称相同,也不是全局变量。 6.全局变量的定义需要_________创建(填“顶格”或“有缩进”) 【答案】顶格 【解析】全局变量的定义需要顶格创建,不能有缩进。 7.阅读程序: x = 10 def func(): x = 20 print("函数内部 x 的值是:", x) func() print("函数外部 x 的值是:", x) 函数内部 x 的值是 ________,函数外部 x 的值是 ________。(每空1分) 【答案】20 10 【解析】函数内部的x是局部变量,不影响外部的x。 8.阅读代码: x = 10 def func(): global x x = 20 print("函数内部 x 的值是:", x) func() print("函数外部 x 的值是:", x) 函数内部 x 的值是 ________,函数外部 x 的值是 ________。(每空1分) 【答案】20 20 【解析】使用global声明后,函数内部修改的x是全局变量。 9.阅读代码: x = 10 def outer(): x = 20 def inner(): nonlocal x x = 30 inner() print("outer 函数内部 x 的值是:", x) outer() print("函数外部 x 的值是:", x) outer 函数内部 x 的值是 ________,函数外部 x 的值是 ________。(每空1分) 【答案】30 10 【解析】nonlocal关键字用于嵌套函数中,修改的是外层函数的局部变量。 10.阅读代码: x = 10 def func(): x = 20 return x y = func() print("y 的值是:", y) print("x 的值是:", x) y 的值是 ________,x 的值是 ________。(每空1分) 【答案】20 10 【解析】函数内部的x是局部变量,返回值为20,外部的x仍为10。 三、程序分析题(本大题共2小题 每小题8分 共16分) 1.程序填空题:要求输入圆的半径和高度,显示输出圆柱体的底面积和体积。根据以上程序设计要求,完成下列程序填空,并把答案写在相应的序号处。(24分) dmj=0 def getDmj(r): global dmj dmj=p*pow(r,2) dmj=round(dmj,2) return ____①_____ def getTj(h): global dmj tj=dmj*h tj=round(tj,2) return ____②_____ p=3.14 r=int(input("请输入圆柱体的底面半径:")) h=int(input("请输入圆柱体的高度:")) ym= getDmj(r) yn= getTj(h) print("圆柱体的底面积为:", ____③_____) print("圆柱体的体积为:", ____④_____) ①________ ②________ ③________ ④________ (每空2分) 【答案】① dmj ② tj ③ ym ④ yn 【解析】程序计算圆柱体的底面积和体积,使用全局变量dmj存储底面积,tj存储体积。 2.程序填空题:要求输入学生的成绩,输入学生的人数不限,当输入“0”时将终止输入学生的成绩,最后显示输出90分以上的学生人数。根据以上程序设计要求,完成下列程序填空,并把答案写在相应的序号处。(注:成绩为百分制)(24分) def pd(score): ______①______ if score>90: num+=1 num=0 score=int(input("请输入学生的成绩:")) while score!= _____②______: _________③____________ score=int(input("请输入学生的成绩:")) print("90分以上的学生有{}位".format(_______④________)) ①________ ②________ ③________ ④________(每空2分) 【答案】① global num ② 0 ③ pd(score) ④ num 【解析】程序统计90分以上的学生人数,使用全局变量num计数。 四、程序设计题(本大题共3小题 共44分) 1.程序设计题:将文本根据标点符号重新切分短句居中显示输出,例如:txt="床前明月光,疑是地上霜。举头望明月,低头思故乡。"(注:预定的显示输出宽度为30,居中填充空格,输出样式如下图所示)(14分) 床前明月光 疑是地上霜 举头望明月 低头思故乡 【答案】 txt="床前明月光,疑是地上霜。举头望明月,低头思故乡。" ntxt = txt.replace('。',',').split(',') for i in ntxt: if len(i)>0: print("{:^30s}".format(i)) 【解析】 1.文本处理: 将文本中的句号。替换为逗号,,然后按逗号分割成短句。 2.循环遍历: 遍历分割后的短句列表。 3.条件判断: 检查短句是否非空。 4.格式化输出: 使用{:^30s}格式化字符串,将短句居中显示,宽度为30,填充空格。 2.程序设计题:采用标准自定义函数的方式,实现输入一段字符串,获取字符串的长度。要求是不能使用len()函数,使用切片的方法(15分) 【答案】 def getLen(n): st=0 ed=1 while n[st:ed]!='': st+=1 ed=st+1 return st st=input("请输入字符串:") print("字符串的长度:",getLen(st)) 【解析】 1.函数定义: 定义函数getLen,参数为字符串n。 2.初始化: 初始化两个变量st和ed,分别表示起始和结束位置。 3.循环切片: 使用while循环,通过切片n[st:ed]检查字符串是否为空。 4.计数: 每次循环将st和ed向后移动一位,直到切片为空,此时st的值即为字符串长度。 5.输入输出: 输入字符串并调用函数,输出结果。 3.键盘输入两个正整数,使用自定义函数来求两个数的最大公约数和最小公倍数(15分) 【答案】 def gygb(a,b): if a<b: a,b=b,a m=a*b while a%b!=0: a,b=b,a%b return b,m//b x,y=eval(input("请输入两个正整数:")) print("最大公约数:",gygb(x,y)[0]) print("最小公倍数:",gygb(x,y)[1]) 【解析】 1.函数定义: 定义函数gygb,参数为两个整数a和b。 2.交换数值: 如果a小于b,交换两者的值,确保a大于等于b。 3.计算乘积: 计算两数的乘积m。 4.欧几里得算法: 使用while循环,通过模运算不断更新a和b的值,直到a%b为0,此时b为最大公约数。 5.最小公倍数: 最小公倍数为乘积m除以最大公约数。 6.输入输出: 输入两个正整数,调用函数并输出结果。 学科网(北京)股份有限公司 $$

资源预览图

第4单元 引用,让编程事半功倍《python程序编写入门》(高教版)章节过关卷(二)
1
第4单元 引用,让编程事半功倍《python程序编写入门》(高教版)章节过关卷(二)
2
第4单元 引用,让编程事半功倍《python程序编写入门》(高教版)章节过关卷(二)
3
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。