python123习题5(1)

发布时间:2020-09-07   来源:文档文库   
字号:
一、选择题

1.以下选项不是函数作用的是: A复用代码
B提高代码执行速度 C降低编程复杂度 D增强代码可读性 正确答案: B 函数不能直接提高代码执行速度。

2.下列程序的输出结果为: def f(a,b: a=4
return a+b def main(: a=5 b=6
print(f(a,b,a+b main(

A 11 10 B 10 11 C 10 10 D 11 11
正确答案: B 这里没有全局变量,都是函数局部变量的运算。 解题思路: 调用main(函数 执行print(f(a,b,a+b f(5,6,5+6
调用f(函数,由于a=4,return 4+6,就是return 10; 因此print输出第一项是10
5+6=11,所以print输出第二项是11

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执行该函数后,变量c的值为200

C执行该函数后,变量a的值为10 D该函数名称为func 正确答案: B 解题思路:
执行c=func(a,b+a func(10,100+10
调用func(函数,c全局变量,c=10**2+100=200; 因此c=200+10=210
执行该函数后,变量a,b值不变,仍旧是a=10,b=100

4.以下关于函数调用描述正确的是: A函数和调用只能发生在同一个文件中
B Python内置函数调用前需要引用相应的库 C自定义函数调用前必须定义
D函数在调用前不需要定义,拿来即用就好 正确答案: C 函数调用前必须已经存在函数定义,否则无法执行。 Python内置函数直接使用,不需要引用任何模块。

5.以下关于模块化设计描述错误的是:
A应尽可能合理划分功能块,功能块内部耦合度低 B模块间关系尽可能简单,模块之间耦合度低 C应尽可能合理划分功能块,功能块内部耦合度高 D高耦合度的特点是复用较为困难 正确答案: A 模块内高耦合、模块间低耦合。

6.以下对递归描述错误的是:
A递归程序都可以有非递归编写方法 B一定要有基例 C书写简单 D执行效率高 正确答案: D 递归不提高程序执行效率。
任何递归程序都可以通过堆栈或队列变成非递归程序(这是程序的高级应用)

7.以下关于函数说法错误的是:
A对函数的使用必须了解其内部实现原理 B函数通过函数名来调用
C函数可以看做是一段具有名字的子程序
D函数是一段具有特定功能的、可重用的语句组 正确答案: A 调用函数不需要知道函数内部实现原理,只需要知道调用方法(即接口)即可。


8.哪个选项对于函数的定义是错误的? A def vfunc(*a,b: B def vfunc(a,b: C def vfunc(a,*b: D def vfunc(a,b=2: 正确答案: A def vfunc(*a, b 是错误的定义:*a表示可变参数,可变参数只能放在函数参数的最后。

9.关于return语句,以下选项描述正确的是: A 函数中最多只有一个return语句 B return只能返回一个值
C函数必须有一个return语句 D函数可以没有return语句 正确答案: D 函数可以包含0个或多个return语句

10.以下关于递归函数基例的说法错误的是: A递归函数的基例决定递归的深度 B递归函数的基例不再进行递归 C递归函数必须有基例
D每个递归函数都只能有一个基例 正确答案: D 基例是问题的最小规模下的解,每个递归函数至少存在一个基例,但可能存在多个基例。

二、编程题
1. 随机密码生成 描述
补充编程模板中代码,完成如下功能:
以整数17为随机数种子,获取用户输入整数N为长度,产生3个长度为N位的密码,密码的每位是一个数字。每个密码单独一行输出。 产生密码采用random.randint(函数。 import random

def genpwd(length: a = 10**(length-1 b = 10**length - 1
return "{}".format(random.randint(a, b

length = eval(input(#获取用户输入整数N为长度 random.seed(17# 以整数17为随机数种子 for i in range(3:# 产生3个长度密码
print(genpwd(length# 每个密码长度为N,单独一行输出

2.连续质数计算 描述
补充编程模板中代码,完成如下功能:
获得用户输入数字N计算并输出从N开始的5个质数,单行输出,质数间用逗,分割。
注意:用户输入的数字N可能是浮点数,都是正数;最后一个输出后不用逗号。 def prime(m:
for i in range(2,m: if m % i == 0: return False return True

n = eval(input( n_ = int(n
n_ = n_+1 if n_ < n else n_ count = 5

while count > 0: if prime(n_: if count > 1:
print(n_, end="," else:
print(n_, end="" count -= 1 n_ += 1
这个代码注意:
(1 需要对输入小数情况进行判断,获取超过该输入的最小整数(这里没用floor(函数)
(2 对输出格式进行判断,最后一个输出后不增加逗号(这里没用.join(方法)


本文来源:https://www.2haoxitong.net/k/doc/8864fb7f9c3143323968011ca300a6c30c22f1ce.html

《python123习题5(1).doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式