《Python语言程序设计》刘卫国主编,中国工信出版集团,电子工业出版社
一、选择题
1.下列选项中不属于函数优点的是( D )。
A.减少代码重复
B.使程序模块化
C.使程序便于阅读
D.便于发挥程序员的创造力
2.关于函数的说法中正确的是( B )。
A.函数定义时必须有形参
B.函数中定义的变量只在该函数体中起作用
C.函数定义时必须带return语句
D.实参与形参的个数可以不相同,类型可以任意
3.以下关于函数说法正确的是( D )。
A.函数的实际参数和形式参数必须同名
B.函数的形式参数既可以是变量也可以是常量
C.函数的实际参数不可以是表达式
D.函数的实际参数可以是其他函数的调用
4.关于装饰器,下列说法中错误的是( D )。
A.装饰器是用来包装函数的函数
B.装饰器有利于实现代码的复用
C.装饰器中一定要返回一个函数对象
D.一个函数只能用一个装饰器修饰
5.调用装饰器的格式是( B )。
A.#装饰器名 B.@装饰器名 C.$装饰器名 D.%装饰器名
6.有以下两个程序。
程序一:
x=[1,2,3]
def f(x):
x=x+[4]
f(x)
print(x)
程序二:
x=[1,2,3]
def f(x):
x+=[4]
f(x)
print(x)
下列说法正确的是( A )。
A.两个程序均能正确运行,但结果不同
B.两个程序的运行结果相同
C.程序一能正确运行,程序二不能
D.程序一不能正确运行,程序二能
7.已知f=lambda x,y:x+y,则f([4],[1,2,3])的值是( C )。
A.[1, 2, 3, 4] B.10 C.[4, 1, 2, 3] D.{1, 2, 3, 4}
8.下列程序的运行结果是( D )。
f=[lambda x=1:x*2,lambda x:x**2]
print(f[1](f[0](3)))
A.1 B.6 C.9 D.36
9.下列程序的运行结果是( B )。
def f(x=2,y=0):
return x-y
y=f(y=f(),x=5)
print(y)
A.-3 B.3 C.2 D.5
10.output.py文件和test.py文件内容如下,且output.py和test.py位于同一文件夹中,那么运行test.py的输出结果是( A )。
#output.py
def show():
print(__name__)
#test.py
import output
if __name__=='__main__':
output.show()
A.output B.__name__ C.test D.__main__
二、填空题
1.函数首部以关键字 def 开始,最后以 冒号 结束。
2.函数执行语句“return [1,2,3],4”后,返回值是 ([1, 2, 3], 4) ;没有return语句的函数将返回 None 。
3.使用关键字 global 可以在一个函数中设置一个全局变量。
4.下列程序的输出结果是
before f1
f1
before f1
def deco(func):
print('before f1')
return func
@deco
def f1():
print('f1')
f1()
f1=deco(f1)
5.下列程序的输出结果是 4 0 。
counter=1
num=0
def TestVariable():
global counter
for i in (1,2,3):counter+=1
num=10
TestVariable()
print(counter,num)
6.设有f=lambda x,y:{x:y},则f(5,10)的值是 {5: 10} 。
7.Python包含了数量众多的模块,通过 import 语句,可以导入模块,并使用其定义的功能。
8.设Python中有模块m,如果希望同时导入m中的所有成员,则可以采用 from m import * 的导入形式。
9.Python中每个模块都有一个名称,通过特殊变量 __name__ 可以获取模块的名称。特别地,当一个模块被用户单独运行时,模块名称为 __main__ 。
10.建立模块a.py,模块内容如下。
def B():
print('BBB')
def A():
print('AAA')
为了调用模块中的A()函数,应先使用语句from a import A
三、问答题
5.写出下列程序的输出结果。
def ff(x,y=100):
return {x:y}
print(ff(y=10,x=20))
{20: 10}