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. 錯

答案:錯


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM