文档库

最新最全的文档下载
当前位置:文档库 > 二级单选-函数和代码复用

二级单选-函数和代码复用

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以下代码的输出结果是

d ef 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以下程序的输出结果是

d ef 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