二级单选-函数和代码复用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1关于递归函数的描述,以下选项中正确的是
A 函数内部包含对本函数的再次调用
B 函数比较复杂
C 包含一个循环结构
D 函数名称作为返回值
正确答案:A
2关于递归函数基例的说明,以下选项中错误的是
A 递归函数必须有基例
B 每个递归函数都只能有一个基例
C 递归函数的基例决定递归的深度
D 递归函数的基例不再进行递归
正确答案:B
3以下选项中,不属于函数的作用的是
A 复用代码
B 提高代码执行速度
C 降低编程复杂度
D 增强代码可读性
正确答案:B
4假设函数中不包括global保留字,对于改变参数值的方法,以下选项中错误的是
A 参数是整数类型时,不改变原参数的值
B 参数是组合类型(可变对象)时,改变原参数的值
C 参数是列表类型时,改变原参数的值
D 参数的值是否改变与函数中对变量的操作有关,与参数类型无关
正确答案:D
5在Python中,关于函数的描述,以下选项中正确的是.
A Python函数定义中没有对参数指定类型,这说明,参数在函数中可以当作任意类型使用
B 函数eval()可以用于数值表达式求值,例如eval("2*3+1")
C 一个函数中只允许有一条return语句
D Python中,def和return是函数必须使用的保留字
正确答案:B
6
给出如下代码:
def func(a,b):
c=a**2+b
b=a
return c
a=10
b=100
c=func(a,b)+a
以下选项中描述错误的是
A 执行该函数后,变量c的值为200
B 执行该函数后,变量a的值为10
C 执行该函数后,变量b的值为100
D 该函数名称为func
正确答案:A
7在Python中,关于全局变量和局部变量,以下选项中描述不正确的是
A 一个程序中的变量包含两类:全局变量和局部变量
B 全局变量一般没有缩进
C 全局变量在程序执行的全过程有效
D 全局变量不能和局部变量重名
正确答案:D
8关于面向对象和面向过程编程描述,以下选项中正确的是
A 面向对象编程比面向过程编程更为高级
B 模块化设计就是面向对象的设计
C 面向对象和面向过程是编程语言的分类依据
D 所有面向对象编程能实现的功能采用面向过程同样能完成
正确答案:D
9以下选项中,对于递归程序的描述错误的是
A 书写简单
B 执行效率高
C 递归程序都可以有非递归编写方法
D 一定要有基例
正确答案:B
10
下面代码的输出结果是
>>>f=lambda x,y:y+x
>>>f(10,10)
A 10,10
B 10
C 20
D 100
正确答案:C
11关于形参和实参的描述,以下选项中正确的是
A 程序在调用时,将形参复制给函数的实参
B 参数列表中给出要传入函数内部的参数,这类参数称为形式参数,简称形参
C 函数定义中参数列表里面的参数是实际参数,简称实参
D 程序在调用时,将实参复制给函数的形参
正确答案:D
12 关于lambda函数,以下选项中描述错误的是
A 定义了一种特殊的函数
B lambda不是Python的保留字
C lambda函数将函数名作为函数结果返回
D lambda函数也称为匿名函数
正确答案:B
13以下选项中,对于函数的定义错误的是
A def vfunc(*a,b):
B def vfunc(a,b):
C def vfunc(a,b=2):
D def vfunc(a,*b):
正确答案:A
14关于函数的参数,以下选项中描述错误的是
A 可选参数可以定义在非可选参数的前面
B 一个元组可以传递给带有星号的可变参数
C 在定义函数时,可以设计可变数量参数,通过在参数前增加星号(*)实现
D 在定义函数时,如果有些参数存在默认值,可以在定义函数时直接为这些参数指定默认值
正确答案:A
15关于return语句,以下选项中描述正确的是
A 函数可以没有return语句
B 函数必须有一个return语句
C 函数中最多只有一个return语句
D return只能返回一个值
正确答案:A
16关于函数,以下选项中描述错误的是
A Python使用del保留字定义一个函数
B 使用函数的主要目的是降低编程难度和代码重用
C 函数能完成特定的功能,对函数的使用不需要了解函数内部实现原理,只要了解函数的输入输出方式即可。
D 函数是一段具有特定功能的、可重用的语句组
正确答案:A
17关于Python的全局变量和局部变量,以下选项中描述错误的是
A 简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放
B 全局变量指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效
C 局部变量指在函数内部使用的变量,当函数退出时,变量依然存在,下次函数调用可以继续使用
D 使用global保留字声明简单数据类型变量后,该变量作为全局变量使用
正确答案:C
18关于Python的lambda函数,以下选项中描述错误的是
A lambda函数将函数名作为函数结果返回
B 可以使用lambda函数定义列表的排序原则
C lambda用于定义简单的、能够在一行内表示的函数
D f = lambda x,y:x+y 执行后,f的类型为数字类型
正确答案:D
19
下面代码实现的功能描述为
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的阶乘值
正确答案:D
20
给出如下代码:
def fact(n):
s = 1
for i in range(1,n+1):
s *= i
return s
以下选项中描述错误的是
A fact(n)函数功能为求n的阶乘
B 代码中n是可选参数
C range()函数是Python内置函数
D s是局部变量
正确答案:B
21
给出如下代码:
ls = ["car","truck"]
def funC(a):
ls.append(a)
return
funC("bus")
print(ls)
以下选项中描述错误的是
A ls.append(a) 代码中的ls是列表类型
B 执行代码输出结果为['car', 'truck']
C ls.append(a) 代码中的ls是全局变量
D funC(a)中的a为非可选参数
正确答案:B
22
给出如下代码:
ls = ["car","truck"]
def funC(a):
ls =[]
ls.append(a)
return
funC("bus")
print(ls)
以下选项中描述错误的是
A 执行代码输出结果为['car', 'truck']
B 执行代码输出结果为['car', 'truck', 'bus']
C ls.append(a) 代码中的ls是列表类型
D 代码函数定义中,ls.append(a)中的ls是局部变量
正确答案:B
23
给出如下代码:
import turtle
def drawLine(draw):
turtle.pendown() if draw else turtle.penup()
turtle.fd(50)
turtle.right(90)
drawLine(True)
drawLine(True)
drawLine(True)
drawLine(True)
以下选项中描述错误的是
A 代码drawLine(True)中True替换为–1,运行代码结果不变
B 代码def drawLine(draw)中的draw可取值True或者False
C 运行代码,在Python Turtle Graphics 中,绘制一个正方形
D 代码drawLine(True)中True替换为0,运行代码结果不变
正确答案:D
24给出如下代码:
import turtle
def drawLine(draw):
turtle.pendown() if draw else turtle.penup()
turtle.fd(50)
turtle.right(90)
drawLine(True)
drawLine(0)
drawLine(True)
drawLine(True)
turtle.left(90)
drawLine(0)
drawLine(True)
drawLine(True)
以下选项中描述错误的是:
A 代码drawLine(True)中True替换为0,运行代码结果不变
B 代码def drawLine(draw)中的draw可取数值0、1、–1等
C 代码drawLine(True)中True替换为–1,运行代码结果不变
D 运行代码,在Python Turtle Graphics 中,绘制一个数码管数字2 正确答案:A
25下面代码的运行结果是
def func(num):
num += 1
a =10
func(a)
print(a)
A 11
B int
C 10
D 出错
正确答案:C
26下面代码的输出结果是def func(a,b):
return a>>b
s = func(5,2)
print(s)
A 6
B 1
C 12
D 20
正确答案:B
27下面代码的输出结果是def func(a,b):
a *= b
return a
s = func(5,2)
print(s)
A 10
B 1
C 12
D 20
正确答案:A
28下面代码的输出结果是def f2(a):
if a > 33:
return True
li = [11, 22, 33, 44, 55] res = filter(f2, li)
print(list(res))
A [22,33,44]
B [11,33,55]
C [44,55]
D [33,44,55]
正确答案:C
29下面代码的输出结果是def fib(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
return a
print (fib(7))
A 8
B 21
C 13
D 5
正确答案:C
30下面代码的输出结果是
def hello_world():
print('ST',end="*")
def three_hellos():
for i in range(3):
hello_world()
three_hellos()
A ST*
B ST*ST*ST*
C ***
D ST*ST*
正确答案:B
31下面代码的输出结果是
def exchange(a,b):
a,b = b,a
return (a,b)
x = 10
y = 20
x,y = exchange(x,y)
print(x,y)
A 10 10
B 20 20
C 20 10
D 20,10
正确答案:C
32下面代码的输出结果是
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))
print(MI(a,b))
A
20
10
B
10
20
C
10
10
D
20
20
正确答案:A
33关于下面的代码,以下选项中描述正确的是
>>> list(range(0,10,2))
A 按位置参数调用
B 执行结果为0, 2, 4, 6, 8
C 按关键字参数调用
D 按可变参数调用
正确答案:A
34关于下面代码,以下选项中描述正确的是
def fact(n, m=1) :
s = 1
for i in range(1, n+1):
s *= i
return s//m
print(fact(m=5,n=10))
A 按可变参数调用
B 按位置参数调用
C 执行结果为10886400
D 参数按照名称传递
正确答案:D
35关于函数的返回值,以下选项中描述错误的是
A 函数可以有return,也可以没有
B 函数可以返回0个或多个结果
C 函数必须有返回值
D return可以传递0个返回值,也可以传递任意多个返回值
正确答案:C
36关于函数局部变量和全局变量的使用规则,以下选项中描述错误的是
A return不可以传递任意多个函数局部变量返回值
B 对于基本数据类型的变量,无论是否重名,局部变量与全局变量不同
C 可以通过global保留字在函数内部声明全局变量
D 对于组合数据类型的变量,如果局部变量未真实创建,则是全局变量正确答案:A
37关于函数,以下选项中描述错误的是
A 函数在需要时被调用,其代码被执行
B 函数主要通过接口(interface)与外界通信,传递信息
C 函数使用时需要了解函数内部实现细节
D 函数:具有特定功能的可重用代码片段,实现解决某个特定问题的算法
正确答案:C
38关于函数的目的与意义,以下选项中描述错误的是
A 函数能调用未实现的函数
B 有助于采用分而治之的策略编写大型复杂程序
C 程序功能抽象,以支持代码重用
D 使用时无须了解函数内部实现细节
正确答案:A
39关于函数,以下选项中描述错误的是
A 一条函数定义定义一个用户自定义函数对象
B 函数名称不可赋给其他变量
C 函数定义语句可执行
D 函数也是数据
正确答案:B
40关于函数的参数传递(parameter passing),以下选项中描述错误的是
A 函数调用时,需要将形式参数传递给实际参数
B 形式参数是函数定义时提供的参数
C Python参数传递时不构造新数据对象,而是让形式参数和实际参数共享同一对象
D 实际参数是函数调用时提供的参数
正确答案:A
41关于函数的关键字参数使用限制,以下选项中描述错误的是
A 不得重复提供实际参数
B 关键字参数必须位于位置参数之后
C 关键字参数必须位于位置参数之前
D 关键字参数顺序无限制
正确答案:C
42下面代码的输出结果是
a = 4
a ^= 3
b = a ^ 2
print(a,end=",")
print(b)
A 4,3
B 5,7
C 64, 4096
D 7,5
正确答案:D
43执行下面代码,错误的是
def f(x, y = 0, z = 0): pass # 空语句,定义空函数体
A f(1, 2)
B f(1, 2, 3)
C f(1)
D f(1, , 3)
正确答案:D
44执行下面代码,错误的是
def f(x, y = 0, z = 0): pass # 空语句,定义空函数体
A f(1, z = 3)
B f(z = 3, x = 1, y = 2)
C f(1, y = 2, z = 3)
D f(1, x = 1, z = 3)
正确答案:D
45执行下面的代码,以下选项中正确的是
def f(x, y = 0, z = 0): pass # 空语句,定义空函数体
A f(1, y = 2, t = 3)
B f(x = 1, y = 2, z = 3)
C f(x = 1, 2)
D f(1, x = 1, z = 3)
正确答案:B
46关于嵌套函数,以下选项中描述错误的是
A 嵌套函数是在函数内部定义函数
B
def f():
print("Outer function f")
def g():
print("Inner function g")
g()
f.g()
C
def f():
print("Outer function f")
def g():
print("Inner function g")
g()
f()
D 内层函数仅供外层函数调用,外层函数之外不得调用正确答案:B
47下面代码的执行结果是
>>> def area(r, pi = 3.14159):
return pi * r *r
>>> area(pi = 3.14, r = 4)
A 出错
B 无输出
C 50.24
D 39.4384
正确答案:C
48下面代码的执行结果是
>>> def area(r, pi = 3.14159):
return pi * r * r
>>> area(3.14, 4)
A 无输出
B 出错
C 50.24
D 39.4384
正确答案:D
49下面代码的执行结果是
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 ['HTY', 'LFF', 'ZH']
B 出错
C 无输出
D
Hello,
('HTY', 'LFF', 'ZH')
{'schoolName': 'NJRU', 'City': 'Nanjing'}
正确答案:D
50下面代码的执行结果是
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 出错
B ['HTY', 'LFF', 'ZH']
C
HTY
('LFF', 'ZH', 'Hello,')
{'schoolName': 'NJRU', 'City': 'Nanjing'}
D 无输出
正确答案:C
51以下代码的输出结果是
>>> def f(x, y = 0, z = 0): pass
>>> f(1, , 3)
A not
B pass
C None
D 出错
正确答案:D
52以下代码的输出结果是
def fun1(a,b,*args):
print(a)
print(b)
print(args)
fun1(1,2,3,4,5,6)
A
1
2
[3, 4, 5, 6]
B
1
2
(3, 4, 5, 6)
C
1,2,3,4,5,6
D
1
2
3, 4, 5, 6
正确答案:B
53函数表达式all([1,True,True]) 的结果是:
A 出错
B 无输出
C False
D True
正确答案:D
54以下关于Python 函数对变量的作用,错误的是
A 简单数据类型变量仅在函数内部创建和使用,函数退出后变量被释放
B 对于组合数据类型的全局变量,如果在函数内部没有被真实创建的同名变量,则函数内部不可以直接使用并修改全局变量的值
C 简单数据类型在函数内部用global保留字声明后,函数退出后该变量保留
D 全局变量指在函数之外定义的变量,在程序执行全过程有效
正确答案:B
55关于函数的描述,错误的是.
A 使用函数主要有两个目的:降低编程难度和增加代码复用。
B 函数定义后,可以直接运行,不需要经过调用
C 函数是一段具有特定功能的、可重用的语句组。
D 函数包括两个部分:函数的定义和函数的使用
正确答案:B
56关于函数的参数传递,描述错误的是
A 函数调用时,默认采用按照位置顺序的方式传递给函数。
B 函数调用时,也支持按照参数名称方式传递参数,不需要保持参数传递的顺序,参数之间的顺序可以任意调整,只需要对每个必要参数赋予实际值即可。
C 函数定义时,可选参数可以放在非可选参数前面。
D 函数的参数在定义时可以指定默认值,当函数被调研时,如果没有传入对应的参数值,则使用函数定义时的默认值代替。
正确答案:C
57以下程序的输出结果是
n = 2
def multiply(x,y = 10):
global n
return x*y*n
s = multiply(99,2)
print(s)
A 1980
B 3960
C 198
D 396
正确答案:D
58以下程序的输出结果是
def func(num):
num *= 2
m = 1000
print(func(m))
A 出错
B None
C Null
D 1000000
正确答案:B
59关于下面代码的描述,错误的选项是
a = [1,2,3]
a = "Runoob"
A
修改代码为:
a = [1,2,3]
print(id(a))
a = "Runoob"
print(id(a))
执行时,输出2行的内容相同。
B 以上代码中,[1,2,3] 是List 类型,”Runoob”是Str 类型。
C 变量a 是没有类型,它仅仅是一个对象的引用(一个指针),可以是指向List 类型对象,也可以是指向Str 类型对象。
D 在Python 中,类型属于对象,变量是没有类型的。
正确答案:A
60以下代码执行的输出结果是n = 2
def multiply(x,y = 10):
global n
return x * y * n
s = multiply(10,2)
print(s)
A 1024
B 400
C 200
D 40
正确答案:D。