1 以下不是使用函数进行编程的好处
A、提高程序的模块化
B、提高代码的复杂度
C、提高代码的可读性
D、提高代码的可复用性
2 【多选题】以下哪个函数定义正确
A、
def func1():
return 1
B、
def func1()
return 1
C、
def func1():
x = 5
y = 6
return x+y
D、
def func1():
pass
3 【多选题】以下说法正确的是()
A、如果定义的函数体只有一个pass关键字,这个函数没有什么用
B、定义函数时,使用缩进来确定函数体
C、如果函数内部没有return语句,意味着该函数不会返回值
D、函数返回多个值的是以列表形式将多个值组合起来
4 关于lambda表达式,以下选项中描述正确的是
A、lambda x, y:return x +y 的入参是x与y,返回x+y
B、f = lambda x,y:x+y 执行后,f 的类型为数字类型
C、Python内置的sorted函数的key参数应该接收是一个函数,所以不能接收lambda表达式
D、lambda用于定义简单的、能够在一行内表示的函数
5 以下说法正确的是
def changeXY(x, y):
x = 1
y = 2
return y, x
x, y = 10,20
changeXY(x,y)
print(x, y)
A、以上代码输出:1, 2
B、以上代码输出: 2, 1
C、以上代码输出:10, 20
D、以上代码输出: (10, 20)
6 对于如下代码说法正确的是
def changeList(xList):
i = 0
for e in xList:
xList[i] += 1
i += 1
xList = [1, 2, 3]
changeList(xList)
print(xList)
A、因为函数内部不能修改变量的值,所以代码输出: [1, 2, 3]
B、因为函数内部不能修改变量的值,所以代码输出: 1, 2, 3
C、xList是可变对象,该函数修改了xList变量存储的值,所以代码输出:[2, 3, 4]
D、xList是可变对象,该函数修改了xList所指向列表的内容,所以代码输出:[2, 3, 4]
7 对于如下代码,以下说法正确的是:
def foo(x, xList):
x = 1
xList.append("a")
xList = ["b", "c"]
x = 5
foo(x, xList)
A、执行完foo(x, xList)后x的值等于1,xList的值等于["b","c", "a"]
B、执行完foo(x, xList)后x的值等于5,xList的值等于["b","c", "a"]
C、执行完foo(x, xList)后x的值等于1,xList的值等于["b","c"]
D、执行完foo(x, xList)后x的值等于5,xList的值等于["b","c"]
8 对于如下代码说法正确的是:
x = 5
def foo(x):
x += 1
xList.append("a")
yList = []
print(x, xList)
foo(x)
A、以下代码运行时出错,因为没有将xList传入到foo函数内
B、foo()函数中,x是局部变量, xList是全局变量,yList是全局变量
C、foo()函数中,x是全局变量, xList是局部变量,yList是局部变量
D、foo()函数中,x是局部变量, xList是全局变量,yList是局部变量
9 【多选题】以下函数定义正确的是
A、
def x:
return 1
B、
def _x():
return 1
C、
def !x():
return 1
D、
def 求和(x, y):
return x + y
10【多选题】以下说法正确的是:
def f1(x):
return x+1
def f2():
return None
def f3(x):
print(x)
def f4():
return 1,2
A、f1与f4返回的值的类型一样
B、f2返回了None,f3没有任何返回值
C、f1,f2,f3,f4都有返回值
D、f4返回了一个元组
11【多选题】以下说法正确的是
def f1():
return 1
def f2():
return 1
A、 x = f1()可以正确执行,x = f1不能正确执行
B、f1与f2类型是一样的
C、f1()与f2()都是函数对象
D、依次执行:
x = f1
y = f1
这时候x与y指向的是同一个对象
12【多选题】以下说法正确的是
A、默认参数必须放在函数参数列表的最右侧
B、调用函数时,可以不指定函数默认参数的值
C、调用foo( y = 1, x =3)能运行成功,说明定义foo函数时, x与y是默认参数
D、函数调用时,如果要按照参数名字传递值,而不按照位置传递值,形参与实参的实参的名字必须一模一样
E、使用foo(x = 3, 1)可以调用函数成功。因为x是关键字参数,通过入参名字进行传值
13 ??????
A、调用含有可变数量参数的函数时,一般来说无需关注传入参数的个数
B、可变数量参数是以元组的形式存储
C、可变数量参数是以字典的形式存储
D、Python内置的print函数的参数包含可变数量参数
14【多选题】以下说法错误的是
A、在函数内声明为global的变量为全局变量,该变量不能和函数外定义的变量同名
B、可以在函数内使用形如global x = 5的语句,将x声明为全局变量
C、在函数内声明为global的变量为全局变量,在函数内对该全局变量的改变,可以反映到函数外
D、只有使用global声明的变量才是全局变量
15【多选题】以下说法正确的:
A、可以在函数里面嵌套定义函数
B、函数的参数也可以是函数或者Lambda表达式
C、如果使用def foo():代码定义函数后。那么只能通过foo()来执行该函数
D、函数内创建的变量如果与函数外创建的变量重名,那么执行完该函数后。函数外部创建的变量值就被覆盖了
16【多选题】以下关于递归函数正确的说法是
A、在函数内部调用自己的函数是递归函数
B、递归函数与普通函数的类型不一样,是另外一种特殊的递归函数
C、n! = n*(n-1)!
因此求阶乘的递归函数应该如下定义:
def f(n):
return n*f(n-1)
D、使用递归函数一般用来解决问题规模可以逐渐缩小且规模缩小后的问题与原问题相似的问题
17【多选题】以下说法正确的是
A、list()函数可以用来创建列表
B、sorted(xList)函数可以将xList这个列表进行就地排序
C、判定两个变量是否指向同一个对象,可以使用id()函数
D、执行range(100)函数后就得到了从0到99的所有整数
18【多选题】以下方法正确的是
A、可以直接使用randint函数获取随机数
B、可以直接使用abs函数求绝对值
C、使用Python非内置的模块需要将该模块使用include导入
D、使用Python非内置的模块需要将该模块使用import导入

