python第五周⼩测验答案_MOOC《Python语⾔程序设计》第
五周测试题
MOOC《Python语⾔程序设计》第五周测试题
单项选择题
1.以下选项不是函数作⽤的是:
A.复⽤代码
B.增强代码可读性
C.降低编程复杂度
D.提⾼代码执⾏速度
正确答案 D
函数不能直接提⾼代码执⾏速度。
2.下列程序的输出结果为:
def f(a,b):
a=4
return a+b
def main():
a=5
b=6
print(f(a,b),a+b)
main()
A.10 10
B.11 11
C.11 10
D.10 11
正确答案 D
这⾥没有全局变量,都是函数局部变量的运算。
3.以下关于Python函数说法错误的是:
def func(a,b):
c=a**2+b
b=a
return c
a=10
b=100
c=func(a,b)+a
A.执⾏该函数后,变量b的值为100
B.该函数名称为func
C.执⾏该函数后,变量c的值为200
D.执⾏该函数后,变量a的值为10
正确答案 C
这⾥没有全局变量,请在IDLE中执⾏代码观察结果。
4.以下关于函数调⽤描述正确的是:
A.⾃定义函数调⽤前必须定义
B.函数在调⽤前不需要定义,拿来即⽤就好
C.函数和调⽤只能发⽣在同⼀个⽂件中
D.Python内置函数调⽤前需要引⽤相应的库
正确答案 A
函数调⽤前必须已经存在函数定义,否则⽆法执⾏。Python内置函数直接使⽤,不需要引⽤任何模块。
5.以下关于模块化设计描述错误的是:
A.⾼耦合度的特点是复⽤较为困难
B.模块间关系尽可能简单,模块之间耦合度低
C.应尽可能合理划分功能块,功能块内部耦合度⾼
D.应尽可能合理划分功能块,功能块内部耦合度低
正确答案 D
模块内⾼耦合、模块间低耦合。
6.以下对递归描述错误的是:
A.⼀定要有基例
B.递归程序都可以有⾮递归编写⽅法
C.书写简单
D.执⾏效率⾼
正确答案 D
递归不提⾼程序执⾏效率。任何递归程序都可以通过堆栈或队列变成⾮递归程序(这是程序的⾼级应⽤)。
7.以下关于函数说法错误的是:
A.对函数的使⽤必须了解其内部实现原理
B.函数是⼀段具有特定功能的、可重⽤的语句组
C.函数可以看做是⼀段具有名字的⼦程序
D.函数通过函数名来调⽤
正确答案 A
调⽤函数不需要知道函数内部实现原理,只需要知道调⽤⽅法(即接⼝)即可。
8.哪个选项对于函数的定义是错误的?
A.def vfunc(*a,b):
B.def vfunc(a,b=2):
C.def vfunc(a,*b):
D.def vfunc(a,b):
正确答案 A
def vfunc(*a, b) 是错误的定义:*a表⽰可变参数,可变参数只能放在函数参数的最后。
9.关于return语句,以下选项描述正确的是:
A.函数中最多只有⼀个return语句
C.函数必须有⼀个return语句
D.函数可以没有return语句
正确答案 D
函数可以包含0个或多个return语句
10.下关于递归函数基例的说法错误的是:
A.递归函数的基例不再进⾏递归
B.递归函数的基例决定递归的深度
C.递归函数必须有基例
D.每个递归函数都只能有⼀个基例
正确答案 D
每个递归函数⾄少存在⼀个基例,但可能存在多个基例。
编程题:
11.随机密码⽣成
描述
补充编程模板中代码,完成如下功能:
以整数17为随机数种⼦,获取⽤户输⼊整数N为长度,产⽣3个长度为N位的密码,密码的每位是⼀个数字。每个密码单独⼀⾏输出。产⽣密码采⽤random.randint()函数。
输⼊输出⽰例
输⼊
输出
⽰例 1
3
634
524
926
我的代码
import random
def genpwd(length):
a=pow(10,length-1)
b=pow(10,length) #应改为b=pow(10,length)-1
return random.randint(a,b)
length = eval(input())
random.seed(17)
for i in range(3):
print("{}".format(genpwd(length)),end="\n") #要求分⾏输出
参考代码
import random
def genpwd(length):
a = 10**(length-1)
b = 10**length - 1
return "{}".format(random.randint(a, b))
length = eval(input())
random.seed(17)
for i in range(3):
print(genpwd(length))
12.连续质数计算
描述
补充编程模板中代码,完成如下功能:
获得⽤户输⼊数字N,计算并输出从N开始的5个质数,单⾏输出,质数间⽤逗号,分割。
注意:需要考虑⽤户输⼊的数字N可能是浮点数,应对输⼊取整数;最后⼀个输出后不⽤逗号。
输⼊输出⽰例
输⼊
输出
⽰例 1
12
13,17,19,23,29
我的代码
def prime(m):
if m==2:
return True
else:
for i in range(2,m):
c=m%i
if c==0:
return False
编程递归函数elif i>m//2:
return True
n = eval(input())
if n!=int(n):
n=int(n)+1
if n<=1:
n=2
counter=0
while counter<5:
if prime(n) and counter==4: print(n)
counter+=1
elif prime(n) and counter<5: print("{},".format(n),end="") counter+=1
n+=1
print("{},".format(n),end="") n+=1
counter+=1
else:
n+=1
参考代码
def prime(m):
for i in range(2,m):
if m % i == 0:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论