Python程序设计题库——第六章

第六章

一. 单选题(共71题,35.5分)

  1. 关于递归函数的描述,以下选项中正确的是( )
  • A. 函数名称作为返回值
  • B. 包含一个循环结构
  • C. 函数比较复杂
  • D. 函数内部包含对本函数的再次调用

答案:D

  1. 关于递归函数基例的说明,以下选项中错误的是( )
  • A. 递归函数必须有基例
  • B. 递归函数的基例不再进行递归
  • C. 每个递归函数都只能有一个基例
  • D. 递归函数的基例决定递归的深度

答案:C

  1. 以下选项中,不属于函数的作用的是( )
  • A. 提高代码执行速度
  • B. 增强代码可读性
  • C. 降低编程复杂度
  • D. 复用代码

答案:A

  1. 假设函数中不包括global保留字,对于改变参数值的方法,以下选项中错误的是( )
  • A. 参数是列表类型时,改变原参数的值
  • B. 参数是组合类型(可变对象)时,改变原参数的值
  • C. 参数的值是否改变与函数中对变量的操作有关,与参数类型无关
  • D. 参数是整数类型时,不改变原参数的值

答案:C

  1. Python中,关于函数的描述,以下选项中正确的是( ).
  • A. 函数eval()可以用于数值表达式求值,例如eval("2*3+1")
  • B. Python函数定义中没有对参数指定类型,这说明,参数在函数中可以当作任意类型使用
  • C. 一个函数中只允许有一条return语句
  • D. Python中,def和return是函数必须使用的保留字

答案:A

  1. 在Python中,关于全局变量和局部变量,以下选项中描述不正确的是( )
  • A. 一个程序中的变量包含两类:全局变量和局部变量
  • B. 全局变量不能和局部变量重名
  • C. 全局变量在程序执行的全过程有效
  • D. 全局变量一般没有缩进

答案:B

  1. 关于面向对象和面向过程编程描述,以下选项中正确的是( )
  • A. 面向对象编程比面向过程编程更为高级
  • B. 所有面向对象编程能实现的功能采用面向过程同样能完成
  • C. 面向对象和面向过程是编程语言的分类依据
  • D. 模块化设计就是面向对象的设计

答案:B

  1. 以下选项中,对于递归程序的描述错误的是( )
  • A. 书写简单
  • B. 执行效率高
  • C. 递归程序都可以有非递归编写方法
  • D. 一定要有基例

答案:B

  1. 下面代码的输出结果是( )
>>>f=lambda x,y:y+x 
>>>f(10,10)
  • A. 100
  • B. 10
  • C. 20
  • D. 10,10

答案:C

  1. 关于形参和实参的描述,以下选项中正确的是( )
  • A. 参数列表中给出要传入函数内部的参数,这类参数称为形式参数,简称形参
  • B. 程序在调用时,将形参复制给函数的实参
  • C. 函数定义中参数列表里面的参数是实际参数,简称实参
  • D. 程序在调用时,将实参复制给函数的形参

答案:D

  1. 以下选项中,对程序的描述错误的是( )
  • A. 程序是由一系列函数组成的
  • B. 通过封装可以实现代码复用
  • C. 可以利用函数对程序进行模块化设计
  • D. 程序是由一系列代码组成的

答案:A

  1. 以下选项中,对于函数的定义错误的是( )
  • A. def vfunc(a,b=2):
  • B. def vfunc(*a,b):
  • C. def vfunc(a,b):
  • D. def vfunc(a,*b):

答案:B

  1. 关于函数的参数,以下选项中描述错误的是( )
  • A. 在定义函数时,如果有些参数存在默认值,可以在定义函数时直接为这些参数指定默认值
  • B. 在定义函数时,可以设计可变数量参数,通过在参数前增加星号(*)实现
  • C. 可选参数可以定义在非可选参数的前面
  • D. 一个元组可以传递给带有星号的可变参数

答案:C

  1. 关于return语句,以下选项中描述正确的是( )
  • A. 函数必须有一个return语句
  • B. 函数中最多只有一个return语句
  • C. return只能返回一个值
  • D. 函数可以没有return语句

答案:D

  1. 关于函数,以下选项中描述错误的是( )
  • A. 函数是一段具有特定功能的、可重用的语句组
  • B. Python使用del保留字定义一个函数
  • C. 函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。
  • D. 使用函数的主要目的是降低编程难度和代码重用

答案:B

  1. 关于Python的全局变量和局部变量,以下选项中描述错误的是( )
  • A. 使用global保留字声明简单数据类型变量后,该变量作为全局变量使用
  • B. 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放
  • C. 全局变量指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效
  • D. 局部变量指在函数内部使用的变量,当函数退出时,变量依然存在,下次函数调用可以继续使用

答案:D

  1. 关于Python的lambda函数,以下选项中描述错误的是( )
  • A. f = lambda x,y:x+y 执行后,f的类型为数字类型
  • B. lambda用于定义简单的、能够在一行内表示的函数
  • C. 可以使用lambda函数定义列表的排序原则
  • D. lambda函数将函数名作为函数结果返回

答案:A

  1. 关于下面的代码,以下选项中描述正确的是( ) >>> list(range(0,10,2))
  • A. 按可变参数调用
  • B. 按关键字参数调用
  • C. 执行结果为0, 2, 4, 6, 8
  • D. 按位置参数调用

答案: D

  1. 关于函数的返回值,以下选项中描述错误的是( )
  • A. 函数可以返回0个或多个结果
  • B. 函数必须有返回值
  • C. 函数可以有return,也可以没有
  • D. return可以传递0个返回值,也可以传递任意多个返回值

答案:B

  1. 关于函数局部变量和全局变量的使用规则,以下选项中描述错误的是( )
  • A. 对于组合数据类型的变量,如果局部变量未真实创建,则是全局变量
  • B. 对于基本数据类型的变量,无论是否重名,局部变量与全局变量不同
  • C. 可以通过global保留字在函数内部声明全局变量
  • D. return不可以传递任意多个函数局部变量返回值

答案:D

  1. 关于函数,以下选项中描述错误的是( )
  • A. 函数使用时需要了解函数内部实现细节
  • B. 函数主要通过接口(interface)与外界通信,传递信息
  • C. 函数:具有特定功能的可重用代码片段,实现解决某个特定问题的算法
  • D. 函数在需要时被调用,其代码被执行

答案:A

  1. 关于函数的目的与意义,以下选项中描述错误的是( )
  • A. 程序功能抽象,以支持代码重用
  • B. 函数能调用未实现的函数
  • C. 有助于采用分而治之的策略编写大型复杂程序
  • D. 使用时无须了解函数内部实现细节

答案:B

  1. 关于函数,以下选项中描述错误的是( )
  • A. 函数也是数据
  • B. 函数定义语句可执行
  • C. 一条函数定义定义一个用户自定义函数对象
  • D. 函数名称不可赋给其他变量

答案:D

  1. 关于函数的参数传递(parameter passing),以下选项中描述错误的是( )
  • A. 实际参数是函数调用时提供的参数
  • B. 函数调用时,需要将形式参数传递给实际参数
  • C. Python参数传递时不构造新数据对象,而是让形式参数和实际参数共享同一对象
  • D. 形式参数是函数定义时提供的参数

答案:B

  1. 关于函数的关键字参数使用限制,以下选项中描述错误的是( )
  • A. 关键字参数顺序无限制
  • B. 关键字参数必须位于位置参数之前
  • C. 关键字参数必须位于位置参数之后
  • D. 不得重复提供实际参数

答案:B

  1. 使用( )关键字来创建python自定义函数。
  • A. function
  • B. func
  • C. procedure
  • D. def

答案:D

  1. 关于函数参数传递中,形参与实参的描述错误的是( )。
  • A. python实行安值传递参数。值传递指调用函数时将常量或变量的值(实参)传递给函数的参数(形参)
  • B. 实参与形参存储在各自的内存空间中,是两个不相关的独立变量
  • C. 在参数内部改变形参的值,实参的值一般是不会改变的。
  • D. 实参与形参的名字必须相同

答案:D

  1. 构造函数是类的一个特殊函数,在python中,构造函数的名称为( )
  • A. 与类同名
  • B. __construct
  • C. init
  • D. init

答案:C

  1. 在每个python类中,都包含一个特殊的变量( )。它表示当前类自身,可以使用它来引用类中的成员变量和成员函数。
  • A. this
  • B. me
  • C. self
  • D. 与类同名

答案:C

  1. Python定义私有变量的方法为( )。
  • A. 使用__private 关键字
  • B. 使用public关键字
  • C. 使用__xxx__定义变量名
  • D. 使用__xxx定义变量名

答案:D

  1. ( )函数是指直接或间接调用函数本身的函数
  • A. 递归
  • B. 闭包
  • C. lambda
  • D. 匿名

答案:A

  1. 关于函数的下列说法不正确的是( )
  • A. 函数可以没有参数
  • B. 函数可以有多个返回值
  • C. 函数可以没有return语句
  • D. 函数都有返回值

答案:B

  1. 在Python中,以下关于函数的描述错误的是( )项?
  • A. 在Python中,关键字参数是让调用者通过使用参数名区分参数,在使用时不允许改变参数列表中的参数顺序。
  • B. 在Python中,默认参数的值可以修改。
  • C. 在Python中,引入了函数式编程的思想,函数本身亦为对象。
  • D. 在Python中,函数的return语句可以以元组tuple的方式返回多个值。

答案:A

  1. 以下关于Python的说法中正确的是( )项?
  • A. Python中函数的返回值如果多于1个,则系统默认将它们处理成一个字典。
  • B. 递归调用语句不允许出现在循环结构中。
  • C. 在Python中,一个算法的递归实现往往可以用循环实现等价表示,但是大多数情况下递归表达的效率要更高一些。
  • D. 可以在函数参数名前面加上星号*,这样用户所有传来的参数都被收集起来然后使用,星号在这里的作用是收集其余的位置参数,这样就实现了变长参数。

答案: D

  1. 实现以下哪个方法可以让对象像函数一样被调用 ( )
  • A. str()
  • B. iter()
  • C. call()
  • D. next()

答案:C

  1. 以下关于函数参数传递的描述,错误的是:
  • A. 定义函数的时候,可选参数必须写在非可选参数的后面
  • B. 函数的实参位置可变,需要形参定义和实参调用时都要给出名称
  • C. 调用函数时,可变数量参数被当做元组类型传递到函数中
  • D. Python 支持可变数量的参数,实参用”*参数名”表示

答案:D

  1. 给出如下代码:
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

  1. 下面代码实现的功能描述为( )
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

  1. 给出如下代码:
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

  1. 给出如下代码:
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

  1. 给出如下代码:
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

  1. 下面代码的运行结果是( )
def func(num):
    num += 1 
a =10 
func(a) 
print(a)
  • A. 11
  • B. int
  • C. 10
  • D. 出错

答案:C

  1. 下面代码的输出结果是( )
def func(a,b):
    return a>>b 
s = func(5,2) 
print(s)
  • A. 20
  • B. 1
  • C. 6
  • D. 12

答案:B

  1. 下面代码的输出结果是( )
def func(a,b): 
    a *= b 
    return a 
s = func(5,2) 
print(s)
  • A. 40
  • B. 1
  • C. 12
  • D. 10

答案:D

  1. 下面代码的输出结果是( )
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

  1. 下面代码的输出结果是( )
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

  1. 下面代码的输出结果是( )
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

  1. 下面代码的输出结果是( )
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

  1. 下面代码的输出结果是( )
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

  1. 下面代码的输出结果是( )
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

  1. 执行下面代码,错误的是( )
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

  1. 执行下面代码,错误的是( )
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

  1. 执行下面的代码,以下选项中正确的是( )
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

  1. 关于嵌套函数,以下选项中描述错误的是( )
  • 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

  1. 下面代码的执行结果是( )
>>> 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

  1. 下面代码的执行结果是( )
>>> 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

  1. 下面代码的执行结果是( )
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

  1. 下面代码的执行结果是( )
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

  1. 下面程序的运行结果为( )。
a=10
def setNumber():
    a=100 
setNumber() 
print(a)
  • A. 10
  • B. 100
  • C. 10100
  • D. 10010

答案:A

  1. 下面程序的运行结果为( )。
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

  1. 对于函数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

  1. 以下程序的输出结果是( )
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

  1. 以下程序的输出结果是:
fr = []
def myf(frame):
    fa = ['12','23']
    fr = fa
myf(fr) 
print( fr)
  • A. ['12', '23']
  • B. '12', '23'
  • C. 12 23
  • D. []

答案:D

  1. 下列有关函数的说法中,正确的是( )
  • A. 函数的定义必须在程序的开头
  • B. 函数定义后,其中的程序就可以自动执行
  • C. 函数定义后需要调用才会执行
  • D. 函数体与关键字def必须左对齐

答案:C

  1. 使用( )关键字创建自定义函数
  • A. function
  • B. func
  • C. def
  • D. procedure

答案:C

  1. 以下代码中的print_menu( )函数是哪种分类
def print_menu():
    print('--------------------------')
    print('      xx涮涮锅 点菜系统')
    print('  1.  羊肉涮涮锅')
    print('  2.  牛肉涮涮锅')
    print('  3.  猪肉涮涮锅')
    print('--------------------------')
print_menu()
  • A. 无参无返回值函数
  • B. 无参有返回值函数
  • C. 有参无返回值函数
  • D. 有参有返回值函数

答案:A

  1. 以下代码中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

  1. 写出下面代码的运行结果。
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

  1. 写出下面代码的运行结果。
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

  1. 写出下面代码的运行结果。
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

  1. 使用( )关键字声明匿名函数
  • A. function
  • B. func
  • C. def
  • D. lambda

答案:D

二. 填空题(共47题,23.5分)

  1. Python中定义函数的关键字是______________。
  • 答案: def
  1. 在函数内部可以通过关键字来定义全局变量______________。
  • 答案: global
  1. 如果函数中没有return语句或者return语句不带任何返回值,那么该函数的返回值为______________。
  • 答案: None
  1. 表达式sum(range(10))的值为______________。
  • 答案: 45
  1. 表达式sum(range(1,10,2))的值为。
  • 答案: 25
  1. 表达式list(filter(None,[0,1,2,3,0,0]))的值为______________。
  • 答案: [1,2,3]
  1. 表达式list(filter(lambda x:x>2,[0,1,2,3,0,0]))的值为______________。
  • 答案: [3]
  1. 表达式list(range(50,60,3))的值为______________。
  • 答案: [50,53,56,59]
  1. 表达式list(filter(lambda x:x%2==0,range(10)))的值为______________。
  • 答案: [0,2,4,6,8]
  1. 表达式list(filter(lambda x:len(x)>3,['a','b','abcd']))的值为______________。
  • 答案:['abcd']
  1. 已知g=lambda x,y=3,z=5:xyz,则语句print(g(1))的输出结果为______________。
  • 答案: 15
  1. 表达式list(map(lambda x: len(x), ['a', 'bb','ccc']))的值为______________。
  • 答案: [1,2,3]
  1. 已知f = lambda x: x+5,那么表达式f(3) 的值为______________。
  • 答案: 8
  1. 表达式sorted(['abc', 'acd', 'ade'], key=lambda x:(x[0],x[2]))的值为______________。
  • 答案:['abc', 'acd', 'ade']
  1. 已知函数定义def demo(x,y,op):return eval(str(x)+op+str(y)),那么表达式demo(3,5,'+') 的值为______________。
  • 答案: 8
  1. 已知函数定义def demo(x,y,op):return eval(str(x)+op+str(y)),那么表达式demo(3,5,'*') 的值为______________。
  • 答案: 15
  1. 已知函数定义def demo(x,y,op):return eval(str(x)+op+str(y)),那么表达式demo(3,5,'-')的值为______________。
  • 答案:-2
  1. 已知f =lambda n: len(bin(n)[bin(n).rfind('1')+1:]),那么表达式f(6) 的值为______________。
  • 答案: 1
  1. 已知f =lambda n: len(bin(n)[bin(n).rfind('1')+1:]),那么表达式f(7) 的值为______________。
  • 答案: 0
  1. 已知g = lambda x, y=3, z=5: x+y+z,那么表达式g(2) 的值为______________。
  • 答案: 10
  1. 已知函数定义def func(*p):return sum(p),那么表达式func(1,2,3)的值为______________。
  • 答案: 6
  1. 已知函数定义def func(*p):return sum(p), 那么表达式func(1,2,3, 4)的值为______________。
  • 答案: 10
  1. 已知函数定义def func(**p):return sum(p.values()),那么表达式func(x=1, y=2, z=3)的值为______________。
  • 答案: 6
  1. 已知函数定义def func(**p):return ''.join(sorted(p)),那么表达式func(x=1,y=2,z=3) 的值为______________。
  • 答案: 'xyz'
  1. 已知f = lambda x:5,那么表达式f(3) 的值为______________。
  • 答案: 5
  1. Python使用关键字来定义类______________。
  • 答案: class
  1. 表达式isinstance('abc',str)的值为______________。
  • 答案: True
  1. 表达式isinstance('abc',int)的值为______________。
  • 答案:False
  1. 表达式isinstance(4j,(int,float,complex))的值为______________。
  • 答案: True
  1. 表达式isinstance('4',(int,float,complex))的值为______________。
  • 答案: False
  1. 表达式type(3) in (int, float,complex)的值为______________。
  • 答案:True
  1. 表达式type(3.0) in (int, float,complex)的值为______________。
  • 答案: True
  1. 表达式type(3+4j) in (int, float,complex)的值为______________。
  • 答案: True
  1. 表达式type('3') in (int, float,complex)的值为______________。
  • 答案: False
  1. 表达式type(3) ==int的值为______________。
  • 答案: True
  1. 函数可以有多个参数,参数之间使用( )分隔
  • 答案: 逗号
  1. 使用( )语句可以返回函数值并退出函数
  • 答案: return
  1. 函数能处理比声明时更多的参数,它们是( )参数
  • 答案:不定长
  1. 运行结果是( )
def Sum(*p):
    return sum(p)
print(Sum(3, 5, 8))
  • 答案: 16
  1. 运行结果是( )
def func5(a, b, *c):
    print(a,b)
func5(1,2,3,4,5,6)
  • 答案: 1 2
  1. 在函数里面调用另外一个函数,这就是函数的( )调用
  • 答案: 嵌套
  1. 在函数内部定义的变量称作( )变量
  • 答案: 局部
  1. ( )变量定义在函数外,可以在整个程序范围内访问
  • 答案: 全局
  1. 如果想在函数中修改全局变量,需要在变量的前面加上( )关键字
  • 答案: global
  1. 函数的递归是指在一个函数的内部调用函数( )的过程
  • 答案: 本身
  1. 递归必须要有( ),否则就会陷入无限递归的状态,无法结束调用
  • 答案:结束条件
  1. 请在下列程序中横线上填写适当的代码
#使用递归函数,输出斐波拉契数列的前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分)

  1. 调用函数时,在实参前面加一个型号*表示序列解包。
  • A. 对
  • B. 错

答案:对

  1. 在Python 中语句 print(*[1,2,3]) 不能正确执行。
  • A. 对
  • B. 错

答案:错

  1. 函数是代码复用的一种方式。
  • A. 对
  • B. 错

答案:对

  1. 定义函数时,即使该函数不需要接收任何参数,也必须保留一对空的圆括号来表示这是一个函数。
  • A. 对
  • B. 错

答案:对

  1. 编写函数时,一般建议先对参数进行合法性检查,然后再编写正常的功能代码。
  • A. 对
  • B. 错

答案:对

  1. 一个函数如果带有默认值参数,那么必须所有参数都设置默认值。
  • A. 对
  • B. 错

答案:错

  1. 定义Python函数时必须指定函数返回值类型。
  • A. 对
  • B. 错

答案:错

  1. 定义Python函数时,如果函数中没有return语句,则默认返回空值None。
  • A. 对
  • B. 错

答案:对

  1. 如果在函数中有语句 return 3,那么该函数一定会返回整数3。
  • A. 对
  • B. 错

答案:错

  1. 函数中必须包含return语句。
  • A. 对
  • B. 错

答案:错

  1. 函数中的return语句一定能够得到执行。
  • A. 对
  • B. 错

答案:错

  1. 不同作用域中的同名变量之间互相不影响,也就是说,在不同的作用域内可以定义同名的变量。
  • A. 对
  • B. 错

答案:对

  1. 全局变量会增加不同函数之间的隐式耦合度,从而降低代码可读性,因此应尽量避免过多使用全局变量。
  • A. 对
  • B. 错

答案:对

  1. 函数内部定义的局部变量当函数调用结束后被自动删除。
  • A. 对
  • B. 错

答案:对

  1. 在函数内部,既可以使用global来声明使用外部全局变量,也可以使用global直接定义全局变量。
  • A. 对
  • B. 错

答案:对

  1. 在函数内部没有办法定义全局变量。
  • A. 对
  • B. 错

答案:错

  1. 在函数内部直接修改形参的值并不影响外部实参的值。
  • A. 对
  • B. 错

答案:对

  1. 在函数内部没有任何方法可以影响实参的值。
  • A. 对
  • B. 错

答案:错

  1. 调用带有默认值参数的函数时,不能为默认值参数传递任何值,必须使用函数定义时设置的默认值。
  • A. 对
  • B. 错

答案:错

  1. 在同一个作用域内,局部变量会隐藏同名的全局变量。
  • A. 对
  • B. 错

答案:对

  1. 形参可以看做是函数内部的局部变量,函数运行结束之后形参就不可访问了。
  • A. 对
  • B. 错

答案:对

  1. 假设已导入random标准库,那么表达式 max([(1, 10) for i in range(10)]) 的值一定是10。
  • A. 对
  • B. 错

答案:错

  1. Python标准库random的方法randint(m,n)用来生成一个[m,n]区间上的随机整数。
  • A. 对
  • B. 错

答案:对

  1. 在函数内部没有任何声明的情况下直接为某个变量赋值,这个变量一定是函数内部的局部变量。
  • A. 对
  • B. 错

答案:对

  1. 在Python中定义函数时不需要声明函数参数的类型。
  • A. 对
  • B. 错

答案:对

  1. 在Python中定义函数时不需要声明函数的返回值类型。
  • A. 对
  • B. 错

答案:对

  1. 在函数中没有任何办法可以通过形参来影响实参的值。
  • A. 对
  • B. 错

答案:错

  1. 已知 x = 3,那么执行语句 x+=6 之后,x的内存地址不变。
  • A. 对
  • B. 错

答案:错

  1. 在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个普通实参并存放于一个元组之中。
  • A. 对
  • B. 错

答案:对

  1. 在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。
  • A. 对
  • B. 错

答案:对

  1. 定义函数时,带有默认值的参数必须出现在参数列表的最右端,任何一个带有默认值的参数右边不允许出现没有默认值的参数。
  • A. 对
  • B. 错

答案:对

  1. 在调用函数时,可以通过关键参数的形式进行传值,从而避免必须记住函数形参顺序的麻烦。
  • A. 对
  • B. 错

答案:对

  1. 在调用函数时,必须牢记函数形参顺序才能正确传值。
  • A. 对
  • B. 错

答案:错

  1. 调用函数时传递的实参个数必须与函数形参个数相等才行。
  • A. 对
  • B. 错

答案:错

  1. 在编写函数时,建议首先对形参进行类型检查和数值范围检查之后再编写功能代码,或者使用异常处理结构,尽量避免代码抛出异常而导致程序崩溃。
  • A. 对
  • B. 错

答案:对

  1. lambda表达式中可以使用任意复杂的表达式,但是必须只编写一个表达式。
  • A. 对
  • B. 错

答案:对

  1. g = lambda x: 3不是一个合法的赋值表达式。
  • A. 对
  • B. 错

答案:错

  1. 包含yield语句的函数一般成为生成器函数,可以用来创建生成器对象。
  • A. 对
  • B. 错

答案:对

  1. 在函数中yield语句的作用和return完全一样。
  • A. 对
  • B. 错

答案:错

  1. 语句pass仅起到占位符的作用,并不会做任何操作。
  • A. 对
  • B. 错

答案:对

  1. 无法使用lambda表达式定义有名字的函数。
  • A. 对
  • B. 错

答案:错

  1. 执行如下代码后,ls内的值是[5,7,1]
ls = [1,7,5] 
reversed(ls)
  • A. 对
  • B. 错

答案:错

  1. 有函数如下,如果a = 1, b = 2,然后调用foo(a,b),在函数外a,b的值依然为1,2
def foo(a,b): 
a, b = 3,4
  • A. 对
  • B. 错

答案:错

  1. 引用库及调用库函数方式之一如下: 引用库 import <库名> 调用库函数 <函数名>(<函数参数>)
  • A. 对
  • B. 错

答案:错

  1. 在函数中使用return语句可以返回值,所以函数中的return语句后一定要有值
  • A. 对
  • B. 错

答案:错

  1. 调用函数时传递的实参个数必须与函数形参个数相等才行
  • A. 对
  • B. 错

答案:错

  1. 使用函数的主要目的是实现代码复用和降低编程难度
  • A. 对
  • B. 错

答案:对

  1. 内置函数len()返回指定序列的元素个数,适用于列表、元组、字符串、字典、集合以及range等迭代对象
  • A. 对
  • B. 错

答案:对

  1. 在函数内部,既可以使用global来声明使用外部全局变量,也可以使用global直接定义全局变量
  • A. 对
  • B. 错

答案:错

  1. 函数定义时,在参数前面加一个星号表示可变数量变量
  • A. 对
  • B. 错

答案:对

  1. 函数的名称可以随意命名
  • A. 对
  • B. 错

答案:错

  1. 不带return的函数代表返回None
  • A. 对
  • B. 错

答案:对

  1. 默认情况下,参数值和参数名称是跟函数声明定义的顺序匹配的
  • A. 对
  • B. 错

答案:对

  1. 函数定义完成后,系统会自动执行其内部的功能
  • A. 对
  • B. 错

答案:错

  1. 函数体以冒号起始,并且是缩进格式的
  • A. 对
  • B. 错

答案:对

  1. 带有默认值的参数位于参数列表的末尾
  • A. 对
  • B. 错

答案:对

  1. 定义函数时,即使该函数不需要接收任何参数,也必须保留一对空的圆括号来表示这是一个函数。
  • A. 对
  • B. 错

答案:对

  1. 一个函数如果带有默认值参数,那么必须所有参数都设置默认值。
  • A. 对
  • B. 错

答案:错

  1. 调用带有默认值参数的函数时,不能为默认值参数传递任何值,必须使用函数定义时设置的默认值。
  • A. 对
  • B. 错

答案:错

  1. 在定义函数时,某个参数名字前面带有一个*符号表示可变长度参数,可以接收任意多个位置参数并存放于一个元组之中。
  • A. 对
  • B. 错

答案:对

  1. 在定义函数时,某个参数名字前面带有两个*符号表示可变长度参数,可以接收任意多个关键参数并将其存放于一个字典之中。
  • A. 对
  • B. 错

答案:对

  1. 位置参数必须在关键字参数的后面
  • A. 对
  • B. 错

答案:错

  1. 在调用函数时,可以通过关键参数的形式进行传值,从而避免必须记住函数形参顺序的麻烦。
  • A. 对
  • B. 错

答案:对

  1. 调用函数时传递的实参个数必须与函数形参个数相等才行。
  • A. 对
  • B. 错

答案:错

  1. 局部变量的作用域是整个程序,任何时候使用都有效
  • A. 对
  • B. 错

答案:错

posted @ 2021-10-23 19:53  subeiLY  阅读(20548)  评论(0编辑  收藏  举报