内容正文:
《程序设计基础-Python》高等教育出版社
第5单元 函数
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共25小题,每题2分,共50分)
1. 在Python中,用于定义函数的关键字是( )
A. function B. def
C. define D. func
【答案】:B
【解析】: Python使用def关键字定义函数,function是JavaScript等语言的关键字。
2. 下列代码的输出结果是( )
def greet():
print("Hello")
greet()
A. 无输出 B. Hello
C. 空 D. None
【答案】:B
【解析】: 定义函数后调用greet(),执行函数体内的print语句,输出Hello。
3. 关于Python函数的参数,下列说法正确的是( )
A. 函数必须有参数 B. 函数不能有参数
C. 函数可以有0个或多个参数 D. 函数只能有1个参数
【答案】:C
【解析】: Python函数的参数可以为0个或多个,根据需要灵活定义。
4. 执行代码后,变量x的值是( )
def add(a, b):
return a + b
x = add(3, 5)
A. 8 B. 5
C. 3 D. None
【答案】:A
【解析】: 函数add返回a+b的结果,3+5=8,赋值给x。
5. 下列方法中,用于在函数内返回结果的是( )
A. back B. break
C. exit D. return
【答案】:D
【解析】: return语句用于从函数返回值,break用于跳出循环。
6. 下列代码的输出结果是( )
def func(x=10):
print(x)
func()
A. 0 B. 10
C. x D. 无输出
【答案】:B
【解析】: x有默认值10,调用时未传参,使用默认值,输出10。
7. 想要定义可变参数,应使用的符号是( )
A. * B. &
C. # D. @
【答案】:A
【解析】: *用于定义可变参数,如*args接收任意数量的位置参数。
8. 下列代码的输出结果是( )
def test(*nums):
print(len(nums))
test(1, 2, 3, 4)
A. 1 B. 3
C. 4 D. *nums
【答案】:C
【解析】: *nums接收4个参数形成元组,len(nums)为4。
9. 关于局部变量,下列说法正确的是( )
A. 在函数外部定义 B. 在函数内部定义
C. 全局都可以访问 D. 程序结束才销毁
【答案】:B
【解析】: 局部变量在函数内部定义,只能在函数内部访问。
10. 在函数中修改全局变量,应使用的关键字是( )
A. local B. nonlocal
C. outer D. global
【答案】:D
【解析】: global关键字用于在函数内声明并修改全局变量。
11. 下列代码的输出结果是( )
def func(a, b=5):
return a + b
print(func(3))
A. 3 B. 5
C. 3 , 5 D. 8
【答案】:D
【解析】: a=3,b使用默认值5,返回3+5=8。
12. 执行代码 `print(type(lambda x: x*2))` 的输出结果是( )
A. int B. str
C. function D. list
【答案】:C
【解析】: lambda创建的是匿名函数,类型为function。
13. 下列代码中,能正确定义函数的是( )
A. `def func():` B. `function func():`
C. `define func():` D. `func def():`
【答案】:A
【解析】: Python函数定义语法为def 函数名():
14. 关于return语句,下列说法正确的是( )
A. 函数必须有return B. return可以返回多个值
C. return后代码继续执行 D. return只能返回1个值
【答案】:B
【解析】: return可以返回多个值,实际是返回元组;函数可以没有return。
15. 下列代码的输出结果是( )
def func():
pass
print(func())
A. 0 B. None
C. pass D. 空
【答案】:B
【解析】: 函数没有return语句时,默认返回None。
16. 下列参数传递方式中,可以打乱参数顺序的是( )
A. 位置传递 B. 默认传递
C. 名称传递 D. 可变传递
【答案】:C
【解析】: 名称传递可以打乱参数顺序。
17. 执行代码后,s的值是( )
s = 10
def func():
global s
s = 20
func()
A. 20 B. 10
C. 0 D. 200
【答案】:A
【解析】: global声明s为全局变量,函数内修改影响全局s,值为20。
18. 下列代码的输出结果是( )
def func(**info):
print(len(info))
func(name="小明", age=18)
A. 1 B. 3
C. 2 D. name="小明", age=18【答案】:C
【解析】: info接收关键字参数形成字典,有2个键值对。
19. 在Python中,函数的文档字符串使用什么包裹( )
A. # B. """ """
C. // D. /* */
【答案】:B
【解析】: 文档字符串使用三引号包裹。
20. 下列代码的输出结果是( )
def func(x):
x = x + 1
return x
a = 5
print(func(a), a)
A. 5 5 B. 6 6
C. 5 6 D. 6 5
【答案】:D
【解析】: 函数内x是局部变量,修改不影响外部a,返回6,a仍为5。
21. 关于递归函数,下列说法正确的是( )
A. 函数不能调用自身 B. 函数可以调用自身
C. 递归不需要终止条件 D. 递归效率最高
【答案】:B
【解析】: 递归函数可以调用自身,但需要终止条件避免无限递归。
22. 下列代码的输出结果是( )
def func(a, *args):
print(a, len(args))
func(1, 2, 3, 4)
A. 1 3 B. 1 4
C. 4 1 D. 1, 2, 3, 4
【答案】:A
【解析】: a=1,*args接收(2,3,4),长度为3。
23. 列表作为函数参数时,下列说法正确的是( )
A. 不能修改列表 B. 可以修改列表内容
C. 会创建新列表 D. 必须使用global
【答案】:B
【解析】: 列表是可变对象,函数内可以直接修改列表内容。
24. 下列代码的输出结果是( )
def func():
"""这是一个测试函数"""
pass
print(func.__doc__)
A. 无输出 B. 这是一个测试函数
C. func.__doc__ D. None
【答案】:B
【解析】: __doc__属性获取函数的文档字符串。
25. 执行代码后,result的值是( )
def func(a, b):
return a, b
result = func(1, 2)
A. 1 B. 2
C. (1, 2) D. [1, 2]
【答案】:C
【解析】: return多个值时,实际返回元组(1, 2)。
二、判断题(共10题,每题1分,共10分)
1. Python函数定义后必须立即调用。( )
【答案】:错误
【解析】: 函数定义后可以不调用,只有调用时才会执行函数体。
2. 在Python中,函数可以没有返回值。( )
【答案】:正确
【解析】: 函数可以没有return语句,此时默认返回None。
3. 局部变量可以在函数外部访问。( )
【答案】:错误
【解析】: 局部变量只能在定义它的函数内部访问。
4. 函数的默认参数值在定义时确定。( )
【答案】:正确
【解析】: 默认参数值在函数定义时确定,调用时可使用默认值。
5. *args参数接收的是字典类型数据。( )
【答案】:错误
【解析】: *args接收位置参数形成元组,**kwargs接收关键字参数形成字典。
6. 一个函数中可以有多个return语句。( )
【答案】:正确
【解析】: 函数可以有多个return,执行到第一个return时函数结束。
7. global关键字用于定义局部变量。( )
【答案】:错误
【解析】: global用于在函数内声明和修改全局变量。
8. 函数参数列表中,必选参数必须在可选参数之前。( )
【答案】:正确
【解析】: 必选参数在前,可选参数在后。
9. 递归函数必须有终止条件。( )
【答案】:正确
【解析】: 递归必须有终止条件,否则会导致无限递归。
10. 列表作为参数传递给函数时,函数内修改会影响原列表。( )
【答案】:正确
【解析】: 列表是可变对象,传递的是引用,修改会影响原列表。
3、 名词解释题(共4题,每题3分,共12分)
1. 函数
【答案】: 函数是带名字的代码块,用于完成具体的工作。通过def关键字定义,包含函数名、参数列表和函数体。函数可以实现代码复用,将特定任务封装后,需要时调用即可,无需重复编写代码。Python有内置函数和自定义函数两种。
2. 局部变量
【答案】: 局部变量是定义在函数内部的变量,只能在函数内部访问和使用。当函数执行完毕后,局部变量会被销毁。函数的参数也属于局部变量。局部变量的作用域仅限于定义它的函数内部,不能在函数外部引用。
3. 全局变量
【答案】: 全局变量是定义在函数外部的变量,在整个程序执行过程中都有效。全局变量的作用域是整个模块,所有函数内部都可以访问全局变量。但要注意,在函数内部修改全局变量需要使用global关键字声明。
4. return语句
【答案】: return语句用于结束函数调用并返回指定的值给调用者。return可以返回0个、1个或多个值。函数执行到return语句时立即结束,return后的代码不再执行。没有return语句的函数默认返回None。
四、简答题(共4题,每题4分,共16分)
1. 请简述函数定义的基本语法及各部分含义。
【答案】:
(1)语法:def 函数名(参数列表):
函数体
(2)def:定义函数的关键字
(3)函数名:遵循变量命名规则,用于调用函数
(4)参数列表:圆括号内的参数,可以为0个或多个
(5)冒号:表示函数头结束,函数体开始
(6)函数体:缩进的代码块,实现函数功能
2. 请说明位置传递参数和名称传递参数的区别。
【答案】:
(1)位置传递:实参按顺序对应形参,要求数量和顺序一致
(2)名称传递:指定参数名传递,顺序可以打乱
(3)名称传递可读性更好,适合参数较多的情况
(4)位置参数必须在名称参数之前
3. 请列举可变参数的两种形式及各自特点。
【答案】:
(1)*args:接收任意数量的位置参数,形成元组
(2)**kwargs:接收任意数量的关键字参数,形成字典
(3)*args用于不确定位置参数个数的情况
(4)**kwargs用于不确定关键字参数个数的情况
4. 请说明局部变量和全局变量的主要区别。
【答案】:
(1)定义位置:局部变量在函数内定义,全局变量在函数外定义
(2)作用域:局部变量只在函数内有效,全局变量整个程序有效
(3)生命周期:函数结束局部变量销毁,全局变量程序结束才销毁
(4)修改方式:局部变量直接修改,全局变量需用global声明
(5)优先级:函数内同名变量,局部变量优先级高于全局变量
五、编程题(本题共1小题,每题12分,共12分)
按要求编写学生成绩管理系统如下:
1. 定义函数calculate_average,接收任意数量的成绩参数,计算并返回平均分(6分)
2. 定义函数get_grade,接收一个分数参数,并且根据分数返回等级,分数等级定为:≥90为A,≥80为B,≥70为C,≥60为D,<60为E。(6分)
【答案】:
第1问:计算平均分函数
def calculate_average(*scores):
"""计算平均分"""
if len(scores) == 0:
return 0
return sum(scores) / len(scores)
# 第2问:获取等级函数
def get_grade(score):
"""根据分数返回等级"""
if score >= 90:
return "A"
elif score >= 80:
return "B"
elif score >= 70:
return "C"
elif score >= 60:
return "D"
else:
return "E"
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$
《程序设计基础-Python》高等教育出版社
第5单元 函数
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共25小题,每题2分,共50分)
1. 在Python中,用于定义函数的关键字是( )
A. function B. def
C. define D. func
2. 下列代码的输出结果是( )
def greet():
print("Hello")
greet()
A. 无输出 B. Hello
C. 空 D. None
3. 关于Python函数的参数,下列说法正确的是( )
A. 函数必须有参数 B. 函数不能有参数
C. 函数可以有0个或多个参数 D. 函数只能有1个参数
4. 执行代码后,变量x的值是( )
def add(a, b):
return a + b
x = add(3, 5)
A. 8 B. 5
C. 3 D. None
5. 下列方法中,用于在函数内返回结果的是( )
A. back B. break
C. exit D. return
6. 下列代码的输出结果是( )
def func(x=10):
print(x)
func()
A. 0 B. 10
C. x D. 无输出
7. 想要定义可变参数,应使用的符号是( )
A. * B. &
C. # D. @
8. 下列代码的输出结果是( )
def test(*nums):
print(len(nums))
test(1, 2, 3, 4)
A. 1 B. 3
C. 4 D. *nums
9. 关于局部变量,下列说法正确的是( )
A. 在函数外部定义 B. 在函数内部定义
C. 全局都可以访问 D. 程序结束才销毁
10. 在函数中修改全局变量,应使用的关键字是( )
A. local B. nonlocal
C. outer D. global
11. 下列代码的输出结果是( )
def func(a, b=5):
return a + b
print(func(3))
A. 3 B. 5
C. 3 , 5 D. 8
12. 执行代码 `print(type(lambda x: x*2))` 的输出结果是( )
A. int B. str
C. function D. list
13. 下列代码中,能正确定义函数的是( )
A. `def func():` B. `function func():`
C. `define func():` D. `func def():`
14. 关于return语句,下列说法正确的是( )
A. 函数必须有return B. return可以返回多个值
C. return后代码继续执行 D. return只能返回1个值
15. 下列代码的输出结果是( )
def func():
pass
print(func())
A. 0 B. None
C. pass D. 空
16. 下列参数传递方式中,可以打乱参数顺序的是( )
A. 位置传递 B. 默认传递
C. 名称传递 D. 可变传递
17. 执行代码后,s的值是( )
s = 10
def func():
global s
s = 20
func()
A. 20 B. 10
C. 0 D. 200
18. 下列代码的输出结果是( )
def func(**info):
print(len(info))
func(name="小明", age=18)
A. 1 B. 3
C. 2 D. name="小明", age=1
19. 在Python中,函数的文档字符串使用什么包裹( )
A. # B. """ """
C. // D. /* */
20. 下列代码的输出结果是( )
def func(x):
x = x + 1
return x
a = 5
print(func(a), a)
A. 5 5 B. 6 6
C. 5 6 D. 6 5
21. 关于递归函数,下列说法正确的是( )
A. 函数不能调用自身 B. 函数可以调用自身
C. 递归不需要终止条件 D. 递归效率最高
22. 下列代码的输出结果是( )
def func(a, *args):
print(a, len(args))
func(1, 2, 3, 4)
A. 1 3 B. 1 4
C. 4 1 D. 1, 2, 3, 4
23. 列表作为函数参数时,下列说法正确的是( )
A. 不能修改列表 B. 可以修改列表内容
C. 会创建新列表 D. 必须使用global
24. 下列代码的输出结果是( )
def func():
"""这是一个测试函数"""
pass
print(func.__doc__)
A. 无输出 B. 这是一个测试函数
C. func.__doc__ D. None
25. 执行代码后,result的值是( )
def func(a, b):
return a, b
result = func(1, 2)
A. 1 B. 2
C. (1, 2) D. [1, 2]
二、判断题(共10题,每题1分,共10分)
1. Python函数定义后必须立即调用。( )
2. 在Python中,函数可以没有返回值。( )
3. 局部变量可以在函数外部访问。( )
4. 函数的默认参数值在定义时确定。( )
5. *args参数接收的是字典类型数据。( )
6. 一个函数中可以有多个return语句。( )
7. global关键字用于定义局部变量。( )
8. 函数参数列表中,必选参数必须在可选参数之前。( )
9. 递归函数必须有终止条件。( )
10. 列表作为参数传递给函数时,函数内修改会影响原列表。( )
3、 名词解释题(共4题,每题3分,共12分)
1. 函数
2. 局部变量
3. 全局变量
4. return语句
四、简答题(共4题,每题4分,共16分)
1. 请简述函数定义的基本语法及各部分含义。
2. 请说明位置传递参数和名称传递参数的区别。
3. 请列举可变参数的两种形式及各自特点。
4. 请说明局部变量和全局变量的主要区别。
五、编程题(本题共1小题,每题12分,共12分)
按要求编写学生成绩管理系统如下:
1. 定义函数calculate_average,接收任意数量的成绩参数,计算并返回平均分(6分)
2. 定义函数get_grade,接收一个分数参数,并且根据分数返回等级,分数等级定为:≥90为A,≥80为B,≥70为C,≥60为D,<60为E。(6分)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$