Python第五周作业之选择题

Python第五周作业之选择题

1. 下面代码的运行结果是‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

def func(num):
    num+=1
a=10
func(a)
print(a)
A. int

B. 11

C. 10

D. 出错

正确答案:C

函数在传递参数时,指将实参复制给形参,并未对实参本身发生改变。

2. 下面代码的输出结果是‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

def func(a,b):
    a*=b
    return a

s = func(5,2)
print(s)
A. 10

B. 1

C. 20

D. 12

正确答案:A

实参按位置传递

3. 下面代码的输出结果是‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

def fib(n):
    a,b =1,1
    for i in range(n-1):
        a,b=b,a+b
    return a
print(fib(7))
A. 21

B. 13

C. 5

D. 8

正确答案:B

注意a,b = b,a+b并不等价于a=b b=a+b

4. 下面代码的输出结果是‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬

ef hello_world():
    print('ST',end="*")
def three_hellos():
    for i in range(3):
        hello_world()

three_hellos()
A. ST*ST*

B. ST*

C. ***

D. ST*ST*ST*

正确答案:D

本题为函数与函数之间调用,three_hello调用了3次hello_world函数,因此输出为ST* ST* ST*

5. 下面代码的输出结果是‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

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,10

C. 20 20

D. 10 10

正确答案:A

6. 关于下面代码,以下选项中描述正确的是‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

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. 按位置参数调用

D. 执行结果为10886400

正确答案:B

fact(m =5,n =10),参数是按照名称传递的,注意m=5将覆盖m=1

7. 关于函数的返回值,以下选项中描述错误的是 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

A. 函数必须有返回值 

B. return可以传递0个返回值,也可以传递任意多个返回值

C. 函数可以有return,也可以没有 

D. 函数可以返回0个或多个结果

正确答案:A

函数返回值的个数可以任意,也可以没有返回值

8. 关于函数,以下选项中描述错误的是

A. 函数使用时需要了解函数内部实现细节

B. 函数在需要时被调用,其代码被执行 

C. 函数:具有特定功能的可重用代码片段,实现解决某个特定问题的算法

D. 函数主要通过接口(interface)与外界通信,传递信息 

正确答案:A

函数使用时可以不需要了解函数内部实现细节,只需要了解其功能以及接口的使用

9. 关于函数的目的与意义,以下选项中描述错误的是‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

A. 使用时无须了解函数内部实现细节

B. 程序功能抽象,以支持代码重用 

C. 函数能调用未实现的函数 

D. 有助于采用分而治之的策略编写大型复杂程序 

正确答案:C

函数不能调用未完成的函数

10. 关于函数的参数传递(parameter passing),以下选项中描述错误的是‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪

A. 形式参数是函数定义时提供的参数 

B. Python参数传递时不构造新数据对象,而是让形式参数和实际参数共享同一对象 

C. 函数调用时,需要将形式参数传递给实际参数

D. 实际参数是函数调用时提供的参数 

正确答案:C

函数调用时,需要将实参传递给形参

11. 执行下面代码,错误的是

 def f(x, y = 0, z = 0): 
     pass # 空语句,定义空函数体
A. f(1, y = 2, z = 3)

B. f(1, z = 3)

C. f(1, x = 1, z = 3)

D. f(z = 3, x = 1, y = 2)

正确答案:C

C选项中,没有y的参数,因此错误

12. 执行下面的代码,以下选项中正确的是

def f(x, y = 0, z = 0):
	pass #空语句,定义空函数体
A. f(x = 1, y = 2, z = 3)

B. f(1, x = 1, z = 3)

C. f(x = 1, 2)

D. f(1, y = 2, t = 3)

正确答案:A

13. 下面代码的执行结果是‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

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

当实参是按参数名称传递参数,可以不按照位置顺序存放。因此area(pi = 3.14, r = 4)可能正确执行。最终输出为50.24

14. 下面代码的执行结果是 ‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬

 def area(r, pi = 3.14159):
 	return pi * r * r

area(3.14, 4)
A. 39.4384

B. 50.24

C. 无输出

D. 出错

正确答案:A

按位置参数传递,结果为39.4384


版权声明:本文为weixin_44579433原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。