Python程序设计题库——第六章
第六章
一. 单选题(共71题,35.5分)
- 关于递归函数的描述,以下选项中正确的是( )
- A. 函数名称作为返回值
- B. 包含一个循环结构
- C. 函数比较复杂
- D. 函数内部包含对本函数的再次调用
答案:D
- 关于递归函数基例的说明,以下选项中错误的是( )
- A. 递归函数必须有基例
- B. 递归函数的基例不再进行递归
- C. 每个递归函数都只能有一个基例
- D. 递归函数的基例决定递归的深度
答案:C
- 以下选项中,不属于函数的作用的是( )
- A. 提高代码执行速度
- B. 增强代码可读性
- C. 降低编程复杂度
- D. 复用代码
答案:A
- 假设函数中不包括global保留字,对于改变参数值的方法,以下选项中错误的是( )
- A. 参数是列表类型时,改变原参数的值
- B. 参数是组合类型(可变对象)时,改变原参数的值
- C. 参数的值是否改变与函数中对变量的操作有关,与参数类型无关
- D. 参数是整数类型时,不改变原参数的值
答案:C
- Python中,关于函数的描述,以下选项中正确的是( ).
- A. 函数eval()可以用于数值表达式求值,例如eval("2*3+1")
- B. Python函数定义中没有对参数指定类型,这说明,参数在函数中可以当作任意类型使用
- C. 一个函数中只允许有一条return语句
- D. Python中,def和return是函数必须使用的保留字
答案:A
- 在Python中,关于全局变量和局部变量,以下选项中描述不正确的是( )
- A. 一个程序中的变量包含两类:全局变量和局部变量
- B. 全局变量不能和局部变量重名
- C. 全局变量在程序执行的全过程有效
- D. 全局变量一般没有缩进
答案:B
- 关于面向对象和面向过程编程描述,以下选项中正确的是( )
- A. 面向对象编程比面向过程编程更为高级
- B. 所有面向对象编程能实现的功能采用面向过程同样能完成
- C. 面向对象和面向过程是编程语言的分类依据
- D. 模块化设计就是面向对象的设计
答案:B
- 以下选项中,对于递归程序的描述错误的是( )
- A. 书写简单
- B. 执行效率高
- C. 递归程序都可以有非递归编写方法
- D. 一定要有基例
答案:B
- 下面代码的输出结果是( )
>>>f=lambda x,y:y+x
>>>f(10,10)
- A. 100
- B. 10
- C. 20
- D. 10,10
答案:C
- 关于形参和实参的描述,以下选项中正确的是( )
- A. 参数列表中给出要传入函数内部的参数,这类参数称为形式参数,简称形参
- B. 程序在调用时,将形参复制给函数的实参
- C. 函数定义中参数列表里面的参数是实际参数,简称实参
- D. 程序在调用时,将实参复制给函数的形参
答案:D
- 以下选项中,对程序的描述错误的是( )
- A. 程序是由一系列函数组成的
- B. 通过封装可以实现代码复用
- C. 可以利用函数对程序进行模块化设计
- D. 程序是由一系列代码组成的
答案:A
- 以下选项中,对于函数的定义错误的是( )
- A. def vfunc(a,b=2):
- B. def vfunc(*a,b):
- C. def vfunc(a,b):
- D. def vfunc(a,*b):
答案:B
- 关于函数的参数,以下选项中描述错误的是( )
- A. 在定义函数时,如果有些参数存在默认值,可以在定义函数时直接为这些参数指定默认值
- B. 在定义函数时,可以设计可变数量参数,通过在参数前增加星号(*)实现
- C. 可选参数可以定义在非可选参数的前面
- D. 一个元组可以传递给带有星号的可变参数
答案:C
- 关于return语句,以下选项中描述正确的是( )
- A. 函数必须有一个return语句
- B. 函数中最多只有一个return语句
- C. return只能返回一个值
- D. 函数可以没有return语句
答案:D
- 关于函数,以下选项中描述错误的是( )
- A. 函数是一段具有特定功能的、可重用的语句组
- B. Python使用del保留字定义一个函数
- C. 函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。
- D. 使用函数的主要目的是降低编程难度和代码重用
答案:B
- 关于Python的全局变量和局部变量,以下选项中描述错误的是( )
- A. 使用global保留字声明简单数据类型变量后,该变量作为全局变量使用
- B. 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放
- C. 全局变量指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效
- D. 局部变量指在函数内部使用的变量,当函数退出时,变量依然存在,下次函数调用可以继续使用
答案:D
- 关于Python的lambda函数,以下选项中描述错误的是( )
- A. f = lambda x,y:x+y 执行后,f的类型为数字类型
- B. lambda用于定义简单的、能够在一行内表示的函数
- C. 可以使用lambda函数定义列表的排序原则
- D. lambda函数将函数名作为函数结果返回
答案:A
- 关于下面的代码,以下选项中描述正确的是( ) >>> list(range(0,10,2))
- A. 按可变参数调用
- B. 按关键字参数调用
- C. 执行结果为0, 2, 4, 6, 8
- D. 按位置参数调用
答案: D
- 关于函数的返回值,以下选项中描述错误的是( )
- A. 函数可以返回0个或多个结果
- B. 函数必须有返回值
- C. 函数可以有return,也可以没有
- D. return可以传递0个返回值,也可以传递任意多个返回值
答案:B
- 关于函数局部变量和全局变量的使用规则,以下选项中描述错误的是( )
- A. 对于组合数据类型的变量,如果局部变量未真实创建,则是全局变量
- B. 对于基本数据类型的变量,无论是否重名,局部变量与全局变量不同
- C. 可以通过global保留字在函数内部声明全局变量
- D. return不可以传递任意多个函数局部变量返回值
答案:D
- 关于函数,以下选项中描述错误的是( )
- A. 函数使用时需要了解函数内部实现细节
- B. 函数主要通过接口(interface)与外界通信,传递信息
- C. 函数:具有特定功能的可重用代码片段,实现解决某个特定问题的算法
- D. 函数在需要时被调用,其代码被执行
答案:A
- 关于函数的目的与意义,以下选项中描述错误的是( )
- A. 程序功能抽象,以支持代码重用
- B. 函数能调用未实现的函数
- C. 有助于采用分而治之的策略编写大型复杂程序
- D. 使用时无须了解函数内部实现细节
答案:B
- 关于函数,以下选项中描述错误的是( )
- A. 函数也是数据
- B. 函数定义语句可执行
- C. 一条函数定义定义一个用户自定义函数对象
- D. 函数名称不可赋给其他变量
答案:D
- 关于函数的参数传递(parameter passing),以下选项中描述错误的是( )
- A. 实际参数是函数调用时提供的参数
- B. 函数调用时,需要将形式参数传递给实际参数
- C. Python参数传递时不构造新数据对象,而是让形式参数和实际参数共享同一对象
- D. 形式参数是函数定义时提供的参数
答案:B
- 关于函数的关键字参数使用限制,以下选项中描述错误的是( )
- A. 关键字参数顺序无限制
- B. 关键字参数必须位于位置参数之前
- C. 关键字参数必须位于位置参数之后
- D. 不得重复提供实际参数
答案:B
- 使用( )关键字来创建python自定义函数。
- A. function
- B. func
- C. procedure
- D. def
答案:D
- 关于函数参数传递中,形参与实参的描述错误的是( )。
- A. python实行安值传递参数。值传递指调用函数时将常量或变量的值(实参)传递给函数的参数(形参)
- B. 实参与形参存储在各自的内存空间中,是两个不相关的独立变量
- C. 在参数内部改变形参的值,实参的值一般是不会改变的。
- D. 实参与形参的名字必须相同
答案:D
- 构造函数是类的一个特殊函数,在python中,构造函数的名称为( )
- A. 与类同名
- B. __construct
- C. init
- D. init
答案:C
- 在每个python类中,都包含一个特殊的变量( )。它表示当前类自身,可以使用它来引用类中的成员变量和成员函数。
- A. this
- B. me
- C. self
- D. 与类同名
答案:C
- Python定义私有变量的方法为( )。
- A. 使用__private 关键字
- B. 使用public关键字
- C. 使用__xxx__定义变量名
- D. 使用__xxx定义变量名
答案:D
- ( )函数是指直接或间接调用函数本身的函数
- A. 递归
- B. 闭包
- C. lambda
- D. 匿名
答案:A
- 关于函数的下列说法不正确的是( )
- A. 函数可以没有参数
- B. 函数可以有多个返回值
- C. 函数可以没有return语句
- D. 函数都有返回值
答案:B
- 在Python中,以下关于函数的描述错误的是( )项?
- A. 在Python中,关键字参数是让调用者通过使用参数名区分参数,在使用时不允许改变参数列表中的参数顺序。
- B. 在Python中,默认参数的值可以修改。
- C. 在Python中,引入了函数式编程的思想,函数本身亦为对象。
- D. 在Python中,函数的return语句可以以元组tuple的方式返回多个值。
答案:A
- 以下关于Python的说法中正确的是( )项?
- A. Python中函数的返回值如果多于1个,则系统默认将它们处理成一个字典。
- B. 递归调用语句不允许出现在循环结构中。
- C. 在Python中,一个算法的递归实现往往可以用循环实现等价表示,但是大多数情况下递归表达的效率要更高一些。
- D. 可以在函数参数名前面加上星号*,这样用户所有传来的参数都被收集起来然后使用,星号在这里的作用是收集其余的位置参数,这样就实现了变长参数。
答案: D
- 实现以下哪个方法可以让对象像函数一样被调用 ( )
- A. str()
- B. iter()
- C. call()
- D. next()
答案:C
- 以下关于函数参数传递的描述,错误的是:
- A. 定义函数的时候,可选参数必须写在非可选参数的后面
- B. 函数的实参位置可变,需要形参定义和实参调用时都要给出名称
- C. 调用函数时,可变数量参数被当做元组类型传递到函数中
- D. Python 支持可变数量的参数,实参用”*参数名”表示
答案:D
- 给出如下代码:
def func(a,b):
c=a**2+b
b=a
return c
a=10
b=100
c=func(a,b)+a
以下选项中描述错误的是( )
- A. 执行该函数后,变量a的值为10
- B. 执行该函数后,变量b的值为100
- C. 执行该函数后,变量c的值为200
- D. 该函数名称为func
答案:C
- 下面代码实现的功能描述为( )
def fact(n):
if n==0:
return 1
else:
return n*fact(n-1)
num =eval(input("请输入一个整数:"))
print(fact(abs(int(num))))
- A. 接受用户输入的整数N,输出N的阶乘值
- B. 接受用户输入的整数N,判断N是否是素数并输出结论
- C. 接受用户输入的整数N,判断N是否是水仙花数
- D. 接受用户输入的整数N,判断N是否是完数并输出结论
答案:A
- 给出如下代码:
def fact(n):
s = 1 for i in range(1,n+1):
s *= i
return s
以下选项中描述错误的是( )
- A. fact(n)函数功能为求n的阶乘
- B. range()函数是Python内置函数
- C. s是局部变量
- D. 代码中n是可选参数
答案:D
- 给出如下代码:
ls = ["car","truck"]
def funC(a):
ls.append(a)
return funC("bus")
print(ls)
以下选项中描述错误的是( )
- A. funC(a)中的a为非可选参数
- B. ls.append(a)代码中的ls是全局变量
- C. ls.append(a)代码中的ls是列表类型
- D. 执行代码输出结果为['car','truck']
答案:D
- 给出如下代码:
ls = ["car","truck"]
def funC(a):
ls =[]
ls.append(a)
return
funC("bus")
print(ls)
以下选项中描述错误的是( )
- A. 执行代码输出结果为['car', 'truck', 'bus']
- B. 代码函数定义中,ls.append(a)中的ls是局部变量
- C. 执行代码输出结果为['car', 'truck']
- D. ls.append(a)代码中的ls是列表类型
答案:A
- 下面代码的运行结果是( )
def func(num):
num += 1
a =10
func(a)
print(a)
- A. 11
- B. int
- C. 10
- D. 出错
答案:C
- 下面代码的输出结果是( )
def func(a,b):
return a>>b
s = func(5,2)
print(s)
- A. 20
- B. 1
- C. 6
- D. 12
答案:B
- 下面代码的输出结果是( )
def func(a,b):
a *= b
return a
s = func(5,2)
print(s)
- A. 40
- B. 1
- C. 12
- D. 10
答案:D
- 下面代码的输出结果是( )
def f2(a):
if a > 33:
return True
li = [11, 22, 33, 44, 55]
res = filter(f2, li)
print(list(res))
- A. [44,55]
- B. [11,33,55]
- C. [22,33,44]
- D. [33,44,55]
答案:A
- 下面代码的输出结果是( )
def fib(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
return a
print (fib(7))
- A. 5
- B. 13
- C. 21
- D. 8
答案:B
- 下面代码的输出结果是( )
def hello_world():
print('ST',end="*")
def three_hellos():
for i in range(3):
hello_world()
three_hellos()
- A. STSTST*
- B. ST*
- C. STST
- D. ***
答案:A
- 下面代码的输出结果是( )
def exchange(a,b):
a,b = b,a
return (a,b)
x = 10
y = 20
x,y = exchange(x,y)
print(x,y)
- A. 20 10
- B. 20 20
- C. 20,10
- D. 10 10
答案:A
- 下面代码的输出结果是( )
MA = lambda x,y : (x > y) * x + (x < y) * y
MI = lambda x,y : (x > y) * y + (x < y) * x
a = 10
b = 20
print(MA(a,b),end=" ")
print(MI(a,b))
- A. 20 10
- B. 20 20
- C. 10 10
- D. 10 20
答案:A
- 下面代码的输出结果是( )
a = 4
a ^= 3
b = a ^ 2
print(a,end=",")
print(b)
- A. 4,3
- B. 64, 4096
- C. 5,7
- D. 7,5
答案:D
- 执行下面代码,错误的是( )
def f(x, y = 0, z = 0):
pass
- A. f(1, , 3)
- B. f(1, 2)
- C. f(1)
- D. f(1, 2, 3)
答案:A
- 执行下面代码,错误的是( )
def f(x, y = 0, z = 0):
pass
- A. f(1, z = 3)
- B. f(1, x = 1, z = 3)
- C. f(1, y = 2, z = 3)
- D. f(z = 3, x = 1, y = 2)
答案:B
- 执行下面的代码,以下选项中正确的是( )
def f(x, y = 0, z = 0):
pass
- A. f(x = 1, 2)
- B. f(1, y = 2, t = 3)
- C. f(1, x = 1, z = 3)
- D. f(x = 1, y = 2, z = 3)
答案:D
- 关于嵌套函数,以下选项中描述错误的是( )
- A. 嵌套函数是在函数内部定义函数
- B. 内层函数仅供外层函数调用,外层函数之外不得调用
- C. def f(): print("Outer function f") def g(): print("Inner function g") g() f()
- D. def f(): print("Outer function f") def g(): print("Inner function g") g() f.g()
答案:D
- 下面代码的执行结果是( )
>>> def area(r, pi = 3.14159):
return pi * r *r
>>> area(pi = 3.14, r = 4)
- A. 出错
- B. 50.24
- C. 39.4384
- D. 无输出
答案:B
- 下面代码的执行结果是( )
>>> def area(r, pi = 3.14159):
return pi * r * r
>>> area(3.14, 4)
- A. 出错
- B. 39.4384
- C. 50.24
- D. 3.14,4
答案:B
- 下面代码的执行结果是( )
def greeting(args1, *tupleArgs, **dictArgs):
print(args1)
print(tupleArgs)
print(dictArgs)
names = ['HTY', 'LFF', 'ZH']
info = {'schoolName' : 'NJRU', 'City' : 'Nanjing'}
greeting('Hello,', *names, **info)
- A. Hello, ('HTY', 'LFF', 'ZH')
- B. ['HTY', 'LFF', 'ZH']
- C. 出错
- D. 无输出
答案:A
- 下面代码的执行结果是( )
def greeting(args1, *tupleArgs, **dictArgs):
print(args1)
print(tupleArgs)
print(dictArgs)
names = ['HTY', 'LFF', 'ZH']
info = {'schoolName' : 'NJRU', 'City' : 'Nanjing'}
greeting(*names,'Hello,',**info)
- A. HTY ('LFF', 'ZH', 'Hello,')
- B. 出错
- C. 无输出
- D. ['HTY', 'LFF', 'ZH']
答案:A
- 下面程序的运行结果为( )。
a=10
def setNumber():
a=100
setNumber()
print(a)
- A. 10
- B. 100
- C. 10100
- D. 10010
答案:A
- 下面程序的运行结果为( )。
def swap(list):
temp=list[0]
list[0]=list[1]
list[1]=temp
list=[1,2]
swap(list)
print(list)
- A. [1,2]
- B. [2,1]
- C. [2,2]
- D. [1,1]
答案:B
- 对于函数ask,以下调用错误的是( )项?
def ask(prompt = "Do you like Python? ", hint = "yes or no"):
while True:
answer = input(prompt)
if answer.lower() in ('y', 'yes'):
print ("Thank you")
return True
if answer.lower() in ('n', 'no'):
print("Why not ")
return False
else:
print(hint)
- A. answer.lower() 是调用了string自带函数lower(),将输入转换为小写字母。
- B. 调用函数ask(),在交互页面输入N,则会继续打印yes or no提示你继续输入。
- C. 调用函数ask(),在交互页面输入x,则会打印yes or no,如果继续输入y,则会打印Thank you并退出ask()函数的执行同时返回值True。
- D. 函数调用ask("Do you like Python? ")与ask()效果一致
答案:B
- 以下程序的输出结果是( )
ab = 4
def myab(ab, xy):
ab= pow(ab,xy)
print(ab,end=" ")
myab(ab,2)
print( ab)
- A. 4 4
- B. 16 16
- C. 4 16
- D. 16 4
答案:D
- 以下程序的输出结果是:
fr = []
def myf(frame):
fa = ['12','23']
fr = fa
myf(fr)
print( fr)
- A. ['12', '23']
- B. '12', '23'
- C. 12 23
- D. []
答案:D
- 下列有关函数的说法中,正确的是( )
- A. 函数的定义必须在程序的开头
- B. 函数定义后,其中的程序就可以自动执行
- C. 函数定义后需要调用才会执行
- D. 函数体与关键字def必须左对齐
答案:C
- 使用( )关键字创建自定义函数
- A. function
- B. func
- C. def
- D. procedure
答案:C
- 以下代码中的print_menu( )函数是哪种分类
def print_menu():
print('--------------------------')
print(' xx涮涮锅 点菜系统')
print(' 1. 羊肉涮涮锅')
print(' 2. 牛肉涮涮锅')
print(' 3. 猪肉涮涮锅')
print('--------------------------')
print_menu()
- A. 无参无返回值函数
- B. 无参有返回值函数
- C. 有参无返回值函数
- D. 有参有返回值函数
答案:A
- 以下代码中calculate( )函数属于哪个分类
def calculate(number):
result = 0
i = 1
while i <= number:
result = result + i
i += 1
return result
result = calculate(100)
print('1~100的累积和为:', result)
- A. 无参无返回值函数
- B. 无参有返回值函数
- C. 有参无返回值函数
- D. 有参有返回值函数
答案:D
- 写出下面代码的运行结果。
def Sum(a, b=3, c=5):
print(a,b,c)
Sum(a=8, c=2)
- A. 8 2
- B. 8,2
- C. 8 3 2
- D. 8,3,2
答案:C
- 写出下面代码的运行结果。
def Sum(a, b=3, c=5):
print(a,b,c)
Sum(8)
- A. 8
- B. 8 3 5
- C. 8,3,5
- D. 0 3 5
答案:B
- 写出下面代码的运行结果。
def Sum(a, b=3, c=5):
print(a,b,c)
Sum(8,2)
- A. 8 2
- B. 8,2
- C. 8,2,5
- D. 8 2 5
答案:D
- 使用( )关键字声明匿名函数
- A. function
- B. func
- C. def
- D. lambda
答案:D
二. 填空题(共47题,23.5分)
- Python中定义函数的关键字是______________。
- 答案: def
- 在函数内部可以通过关键字来定义全局变量______________。
- 答案: global
- 如果函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为______________。
- 答案: None
- 表达式sum(range(10))的值为______________。
- 答案: 45
- 表达式sum(range(1,10,2))的值为。
- 答案: 25
- 表达式list(filter(None,[0,1,2,3,0,0]))的值为______________。
- 答案: [1,2,3]
- 表达式list(filter(lambda x:x>2,[0,1,2,3,0,0]))的值为______________。
- 答案: [3]
- 表达式list(range(50,60,3))的值为______________。
- 答案: [50,53,56,59]
- 表达式list(filter(lambda x:x%2==0,range(10)))的值为______________。
- 答案: [0,2,4,6,8]
- 表达式list(filter(lambda x:len(x)>3,['a','b','abcd']))的值为______________。
- 答案:['abcd']
- 已知g=lambda x,y=3,z=5:xyz,则语句print(g(1))的输出结果为______________。
- 答案: 15
- 表达式list(map(lambda x: len(x), ['a', 'bb','ccc']))的值为______________。
- 答案: [1,2,3]
- 已知f = lambda x: x+5,那么表达式f(3) 的值为______________。
- 答案: 8
- 表达式sorted(['abc', 'acd', 'ade'], key=lambda x:(x[0],x[2]))的值为______________。
- 答案:['abc', 'acd', 'ade']
- 已知函数定义def demo(x,y,op):return eval(str(x)+op+str(y)),那么表达式demo(3,5,'+') 的值为______________。
- 答案: 8
- 已知函数定义def demo(x,y,op):return eval(str(x)+op+str(y)),那么表达式demo(3,5,'*') 的值为______________。
- 答案: 15
- 已知函数定义def demo(x,y,op):return eval(str(x)+op+str(y)),那么表达式demo(3,5,'-')的值为______________。
- 答案:-2
- 已知f =lambda n: len(bin(n)[bin(n).rfind('1')+1:]),那么表达式f(6) 的值为______________。
- 答案: 1
- 已知f =lambda n: len(bin(n)[bin(n).rfind('1')+1:]),那么表达式f(7) 的值为______________。
- 答案: 0
- 已知g = lambda x, y=3, z=5: x+y+z,那么表达式g(2) 的值为______________。
- 答案: 10
- 已知函数定义def func(*p):return sum(p),那么表达式func(1,2,3)的值为______________。
- 答案: 6
- 已知函数定义def func(*p):return sum(p), 那么表达式func(1,2,3, 4)的值为______________。
- 答案: 10
- 已知函数定义def func(**p):return sum(p.values()),那么表达式func(x=1, y=2, z=3)的值为______________。
- 答案: 6
- 已知函数定义def func(**p):return ''.join(sorted(p)),那么表达式func(x=1,y=2,z=3) 的值为______________。
- 答案: 'xyz'
- 已知f = lambda x:5,那么表达式f(3) 的值为______________。
- 答案: 5
- Python使用关键字来定义类______________。
- 答案: class
- 表达式isinstance('abc',str)的值为______________。
- 答案: True
- 表达式isinstance('abc',int)的值为______________。
- 答案:False
- 表达式isinstance(4j,(int,float,complex))的值为______________。
- 答案: True
- 表达式isinstance('4',(int,float,complex))的值为______________。
- 答案: False
- 表达式type(3) in (int, float,complex)的值为______________。
- 答案:True
- 表达式type(3.0) in (int, float,complex)的值为______________。
- 答案: True
- 表达式type(3+4j) in (int, float,complex)的值为______________。
- 答案: True
- 表达式type('3') in (int, float,complex)的值为______________。
- 答案: False
- 表达式type(3) ==int的值为______________。
- 答案: True
- 函数可以有多个参数,参数之间使用( )分隔
- 答案: 逗号
- 使用( )语句可以返回函数值并退出函数
- 答案: return
- 函数能处理比声明时更多的参数,它们是( )参数
- 答案:不定长
- 运行结果是( )
def Sum(*p):
return sum(p)
print(Sum(3, 5, 8))
- 答案: 16
- 运行结果是( )
def func5(a, b, *c):
print(a,b)
func5(1,2,3,4,5,6)
- 答案: 1 2
- 在函数里面调用另外一个函数,这就是函数的( )调用
- 答案: 嵌套
- 在函数内部定义的变量称作( )变量
- 答案: 局部
- ( )变量定义在函数外,可以在整个程序范围内访问
- 答案: 全局
- 如果想在函数中修改全局变量,需要在变量的前面加上( )关键字
- 答案: global
- 函数的递归是指在一个函数的内部调用函数( )的过程
- 答案: 本身
- 递归必须要有( ),否则就会陷入无限递归的状态,无法结束调用
- 答案:结束条件
- 请在下列程序中横线上填写适当的代码
#使用递归函数,输出斐波拉契数列的前20位
def func(num):
if num==1 or num==2:
return 1
else:
return
print("斐波拉契数列的前20位的数是:",end="")
for i in range(1,21):
print(func(i),end=" ")
- 答案: func(num-1)+func(num-2)
三. 判断题(共65题,41分)
- 调用函数时,在实参前面加一个型号*表示序列解包。
- A. 对
- B. 错
答案:对
- 在Python 中语句 print(*[1,2,3]) 不能正确执行。
- A. 对
- B. 错
答案:错
- 函数是代码复用的一种方式。
- A. 对
- B. 错
答案:对
- 定义函数时,即使该函数不需要接收任何参数,也必须保留一对空的圆括号来表示这是一个函数。
- A. 对
- B. 错
答案:对
- 编写函数时,一般建议先对参数进行合法性检查,然后再编写正常的功能代码。
- A. 对
- B. 错
答案:对
- 一个函数如果带有默认值参数,那么必须所有参数都设置默认值。
- A. 对
- B. 错
答案:错
- 定义Python函数时必须指定函数返回值类型。
- A. 对
- B. 错
答案:错
- 定义Python函数时,如果函数中没有return语句,则默认返回空值None。
- A. 对
- B. 错
答案:对
- 如果在函数中有语句 return 3,那么该函数一定会返回整数3。
- A. 对
- B. 错
答案:错
- 函数中必须包含return语句。
- A. 对
- B. 错
答案:错
- 函数中的return语句一定能够得到执行。
- A. 对
- B. 错
答案:错
- 不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义同名的变量。
- A. 对
- B. 错
答案:对
- 全局变量会增加不同函数之间的隐式耦合度,从而降低代码可读性,因此应尽量避免过多使用全局变量。
- A. 对
- B. 错
答案:对
- 函数内部定义的局部变量当函数调用结束后被自动删除。
- A. 对
- B. 错
答案:对
- 在函数内部,既可以使用global来声明使用外部全局变量,也可以使用global直接定义全局变量。
- A. 对
- B. 错
答案:对
- 在函数内部没有办法定义全局变量。
- A. 对
- B. 错
答案:错
- 在函数内部直接修改形参的值并不影响外部实参的值。
- A. 对
- B. 错
答案:对
- 在函数内部没有任何方法可以影响实参的值。
- A. 对
- B. 错
答案:错
- 调用带有默认值参数的函数时,不能为默认值参数传递任何值,必须使用函数定义时设置的默认值。
- A. 对
- B. 错
答案:错
- 在同一个作用域内,局部变量会隐藏同名的全局变量。
- A. 对
- B. 错
答案:对
- 形参可以看做是函数内部的局部变量,函数运行结束之后形参就不可访问了。
- A. 对
- B. 错
答案:对
- 假设已导入random标准库,那么表达式 max([(1, 10) for i in range(10)]) 的值一定是10。
- A. 对
- B. 错
答案:错
- Python标准库random的方法randint(m,n)用来生成一个[m,n]区间上的随机整数。
- A. 对
- B. 错
答案:对
- 在函数内部没有任何声明的情况下直接为某个变量赋值,这个变量一定是函数内部的局部变量。
- A. 对
- B. 错
答案:对
- 在Python中定义函数时不需要声明函数参数的类型。
- A. 对
- B. 错
答案:对
- 在Python中定义函数时不需要声明函数的返回值类型。
- A. 对
- B. 错
答案:对
- 在函数中没有任何办法可以通过形参来影响实参的值。
- A. 对
- B. 错
答案:错
- 已知 x = 3,那么执行语句 x+=6 之后,x的内存地址不变。
- A. 对
- B. 错
答案:错
- 在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中。
- A. 对
- B. 错
答案:对
- 在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。
- A. 对
- B. 错
答案:对
- 定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的参数。
- A. 对
- B. 错
答案:对
- 在调用函数时,可以通过关键参数的形式进行传值,从而避免必须记住函数形参顺序的麻烦。
- A. 对
- B. 错
答案:对
- 在调用函数时,必须牢记函数形参顺序才能正确传值。
- A. 对
- B. 错
答案:错
- 调用函数时传递的实参个数必须与函数形参个数相等才行。
- A. 对
- B. 错
答案:错
- 在编写函数时,建议首先对形参进行类型检查和数值范围检查之后再编写功能代码,或者使用异常处理结构,尽量避免代码抛出异常而导致程序崩溃。
- A. 对
- B. 错
答案:对
- lambda表达式中可以使用任意复杂的表达式,但是必须只编写一个表达式。
- A. 对
- B. 错
答案:对
- g = lambda x: 3不是一个合法的赋值表达式。
- A. 对
- B. 错
答案:错
- 包含yield语句的函数一般成为生成器函数,可以用来创建生成器对象。
- A. 对
- B. 错
答案:对
- 在函数中yield语句的作用和return完全一样。
- A. 对
- B. 错
答案:错
- 语句pass仅起到占位符的作用,并不会做任何操作。
- A. 对
- B. 错
答案:对
- 无法使用lambda表达式定义有名字的函数。
- A. 对
- B. 错
答案:错
- 执行如下代码后,ls内的值是[5,7,1]
ls = [1,7,5]
reversed(ls)
- A. 对
- B. 错
答案:错
- 有函数如下,如果a = 1, b = 2,然后调用foo(a,b),在函数外a,b的值依然为1,2
def foo(a,b):
a, b = 3,4
- A. 对
- B. 错
答案:错
- 引用库及调用库函数方式之一如下: 引用库 import <库名> 调用库函数 <函数名>(<函数参数>)
- A. 对
- B. 错
答案:错
- 在函数中使用return语句可以返回值,所以函数中的return语句后一定要有值
- A. 对
- B. 错
答案:错
- 调用函数时传递的实参个数必须与函数形参个数相等才行
- A. 对
- B. 错
答案:错
- 使用函数的主要目的是实现代码复用和降低编程难度
- A. 对
- B. 错
答案:对
- 内置函数len()返回指定序列的元素个数,适用于列表、元组、字符串、字典、集合以及range等迭代对象
- A. 对
- B. 错
答案:对
- 在函数内部,既可以使用global来声明使用外部全局变量,也可以使用global直接定义全局变量
- A. 对
- B. 错
答案:错
- 函数定义时,在参数前面加一个星号表示可变数量变量
- A. 对
- B. 错
答案:对
- 函数的名称可以随意命名
- A. 对
- B. 错
答案:错
- 不带return的函数代表返回None
- A. 对
- B. 错
答案:对
- 默认情况下,参数值和参数名称是跟函数声明定义的顺序匹配的
- A. 对
- B. 错
答案:对
- 函数定义完成后,系统会自动执行其内部的功能
- A. 对
- B. 错
答案:错
- 函数体以冒号起始,并且是缩进格式的
- A. 对
- B. 错
答案:对
- 带有默认值的参数位于参数列表的末尾
- A. 对
- B. 错
答案:对
- 定义函数时,即使该函数不需要接收任何参数,也必须保留一对空的圆括号来表示这是一个函数。
- A. 对
- B. 错
答案:对
- 一个函数如果带有默认值参数,那么必须所有参数都设置默认值。
- A. 对
- B. 错
答案:错
- 调用带有默认值参数的函数时,不能为默认值参数传递任何值,必须使用函数定义时设置的默认值。
- A. 对
- B. 错
答案:错
- 在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个位置参数并存放于一个元组之中。
- A. 对
- B. 错
答案:对
- 在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。
- A. 对
- B. 错
答案:对
- 位置参数必须在关键字参数的后面
- A. 对
- B. 错
答案:错
- 在调用函数时,可以通过关键参数的形式进行传值,从而避免必须记住函数形参顺序的麻烦。
- A. 对
- B. 错
答案:对
- 调用函数时传递的实参个数必须与函数形参个数相等才行。
- A. 对
- B. 错
答案:错
- 局部变量的作用域是整个程序,任何时候使用都有效
- A. 对
- B. 错
答案:错
欢迎查阅