Python程式設計題庫——第六章
阿新 • • 發佈:2021-10-23
第六章
一. 單選題(共71題,35.5分)
- 關於遞迴函式的描述,以下選項中正確的是( )
- A. 函式名稱作為返回值
- B. 包含一個迴圈結構
- C. 函式比較複雜
- D. 函式內部包含對本函式的再次呼叫
答案:D
- 關於遞迴函式基例的說明,以下選項中錯誤的是( )
- A. 遞迴函式必須有基例
- B. 遞迴函式的基例不再進行遞迴
- C. 每個遞迴函式都只能有一個基例
- D. 遞迴函式的基例決定遞迴的深度
答案:C
- 以下選項中,不屬於函式的作用的是( )
- A. 提高程式碼執行速度
- B. 增強程式碼可讀性
- C. 降低程式設計複雜度
- D. 複用程式碼
答案:A
- 假設函式中不包括global保留字,對於改變引數值的方法,以下選項中錯誤的是( )
- A. 引數是列表型別時,改變原引數的值
- B. 引數是組合型別(可變物件)時,改變原引數的值
- C. 引數的值是否改變與函式中對變數的操作有關,與引數型別無關
- D. 引數是整數型別時,不改變原引數的值
答案:C
- Python中,關於函式的描述,以下選項中正確的是( ).
- A. 函式eval()可以用於數值表示式求值,例如eval("2*3+1")
- B. Python函式定義中沒有對引數指定型別,這說明,引數在函式中可以當作任意型別使用
- C. 一個函式中只允許有一條return語句
- D. Python中,def和return是函式必須使用的保留字
答案:A
- 在Python中,關於全域性變數和區域性變數,以下選項中描述不正確的是( )
- A. 一個程式中的變數包含兩類:全域性變數和區域性變數
- B. 全域性變數不能和區域性變數重名
- C. 全域性變數在程式執行的全過程有效
- D. 全域性變數一般沒有縮排
答案:B
- 關於面向物件和麵向過程程式設計描述,以下選項中正確的是( )
- A. 面向物件程式設計比面向過程程式設計更為高階
- B. 所有面向物件程式設計能實現的功能採用面向過程同樣能完成
- C. 面向物件和麵向過程是程式語言的分類依據
- D. 模組化設計就是面向物件的設計
答案:B
- 以下選項中,對於遞迴程式的描述錯誤的是( )
- A. 書寫簡單
- B. 執行效率高
- C. 遞迴程式都可以有非遞迴編寫方法
- D. 一定要有基例
答案:B
- 下面程式碼的輸出結果是( )
>>>f=lambda x,y:y+x
>>>f(10,10)
- A. 100
- B. 10
- C. 20
- D. 10,10
答案:C
- 關於形參和實參的描述,以下選項中正確的是( )
- A. 引數列表中給出要傳入函式內部的引數,這類引數稱為形式引數,簡稱形參
- B. 程式在呼叫時,將形參複製給函式的實參
- C. 函式定義中引數列表裡面的引數是實際引數,簡稱實參
- D. 程式在呼叫時,將實參複製給函式的形參
答案:D
- 以下選項中,對程式的描述錯誤的是( )
- A. 程式是由一系列函式組成的
- B. 通過封裝可以實現程式碼複用
- C. 可以利用函式對程式進行模組化設計
- D. 程式是由一系列程式碼組成的
答案:A
- 以下選項中,對於函式的定義錯誤的是( )
- A. def vfunc(a,b=2):
- B. def vfunc(*a,b):
- C. def vfunc(a,b):
- D. def vfunc(a,*b):
答案:B
- 關於函式的引數,以下選項中描述錯誤的是( )
- A. 在定義函式時,如果有些引數存在預設值,可以在定義函式時直接為這些引數指定預設值
- B. 在定義函式時,可以設計可變數量引數,通過在引數前增加星號(*)實現
- C. 可選引數可以定義在非可選引數的前面
- D. 一個元組可以傳遞給帶有星號的可變引數
答案:C
- 關於return語句,以下選項中描述正確的是( )
- A. 函式必須有一個return語句
- B. 函式中最多隻有一個return語句
- C. return只能返回一個值
- D. 函式可以沒有return語句
答案:D
- 關於函式,以下選項中描述錯誤的是( )
- A. 函式是一段具有特定功能的、可重用的語句組
- B. Python使用del保留字定義一個函式
- C. 函式能完成特定的功能,對函式的使用不需要了解函式內部實現原理,只要瞭解函式的輸入輸出方式即可。
- D. 使用函式的主要目的是降低程式設計難度和程式碼重用
答案:B
- 關於Python的全域性變數和區域性變數,以下選項中描述錯誤的是( )
- A. 使用global保留字宣告簡單資料型別變數後,該變數作為全域性變數使用
- B. 簡單資料型別變數無論是否與全域性變數重名,僅在函式內部建立和使用,函式退出後變數被釋放
- C. 全域性變數指在函式之外定義的變數,一般沒有縮排,在程式執行全過程有效
- D. 區域性變數指在函式內部使用的變數,當函式退出時,變數依然存在,下次函式呼叫可以繼續使用
答案:D
- 關於Python的lambda函式,以下選項中描述錯誤的是( )
- A. f = lambda x,y:x+y 執行後,f的型別為數字型別
- B. lambda用於定義簡單的、能夠在一行內表示的函式
- C. 可以使用lambda函式定義列表的排序原則
- D. lambda函式將函式名作為函式結果返回
答案:A
- 關於下面的程式碼,以下選項中描述正確的是( ) >>> list(range(0,10,2))
- A. 按可變引數呼叫
- B. 按關鍵字引數呼叫
- C. 執行結果為0, 2, 4, 6, 8
- D. 按位置引數呼叫
答案: D
- 關於函式的返回值,以下選項中描述錯誤的是( )
- A. 函式可以返回0個或多個結果
- B. 函式必須有返回值
- C. 函式可以有return,也可以沒有
- D. return可以傳遞0個返回值,也可以傳遞任意多個返回值
答案:B
- 關於函式區域性變數和全域性變數的使用規則,以下選項中描述錯誤的是( )
- A. 對於組合資料型別的變數,如果區域性變數未真實建立,則是全域性變數
- B. 對於基本資料型別的變數,無論是否重名,區域性變數與全域性變數不同
- C. 可以通過global保留字在函式內部宣告全域性變數
- D. return不可以傳遞任意多個函式區域性變數返回值
答案:D
- 關於函式,以下選項中描述錯誤的是( )
- A. 函式使用時需要了解函式內部實現細節
- B. 函式主要通過介面(interface)與外界通訊,傳遞資訊
- C. 函式:具有特定功能的可重用程式碼片段,實現解決某個特定問題的演算法
- D. 函式在需要時被呼叫,其程式碼被執行
答案:A
- 關於函式的目的與意義,以下選項中描述錯誤的是( )
- A. 程式功能抽象,以支援程式碼重用
- B. 函式能呼叫未實現的函式
- C. 有助於採用分而治之的策略編寫大型複雜程式
- D. 使用時無須瞭解函式內部實現細節
答案:B
- 關於函式,以下選項中描述錯誤的是( )
- A. 函式也是資料
- B. 函式定義語句可執行
- C. 一條函式定義定義一個使用者自定義函式物件
- D. 函式名稱不可賦給其他變數
答案:D
- 關於函式的引數傳遞(parameter passing),以下選項中描述錯誤的是( )
- A. 實際引數是函式呼叫時提供的引數
- B. 函式呼叫時,需要將形式引數傳遞給實際引數
- C. Python引數傳遞時不構造新資料物件,而是讓形式引數和實際引數共享同一物件
- D. 形式引數是函式定義時提供的引數
答案:B
- 關於函式的關鍵字引數使用限制,以下選項中描述錯誤的是( )
- A. 關鍵字引數順序無限制
- B. 關鍵字引數必須位於位置引數之前
- C. 關鍵字引數必須位於位置引數之後
- D. 不得重複提供實際引數
答案:B
- 使用( )關鍵字來建立python自定義函式。
- A. function
- B. func
- C. procedure
- D. def
答案:D
- 關於函式引數傳遞中,形參與實參的描述錯誤的是( )。
- A. python實行安值傳遞引數。值傳遞指呼叫函式時將常量或變數的值(實參)傳遞給函式的引數(形參)
- B. 實參與形參儲存在各自的記憶體空間中,是兩個不相關的獨立變數
- C. 在引數內部改變形參的值,實參的值一般是不會改變的。
- D. 實參與形參的名字必須相同
答案:D
- 建構函式是類的一個特殊函式,在python中,建構函式的名稱為( )
- A. 與類同名
- B. __construct
- C. init
- D. init
答案:C
- 在每個python類中,都包含一個特殊的變數( )。它表示當前類自身,可以使用它來引用類中的成員變數和成員函式。
- A. this
- B. me
- C. self
- D. 與類同名
答案:C
- Python定義私有變數的方法為( )。
- A. 使用__private 關鍵字
- B. 使用public關鍵字
- C. 使用__xxx__定義變數名
- D. 使用__xxx定義變數名
答案:D
- ( )函式是指直接或間接呼叫函式本身的函式
- A. 遞迴
- B. 閉包
- C. lambda
- D. 匿名
答案:A
- 關於函式的下列說法不正確的是( )
- A. 函式可以沒有引數
- B. 函式可以有多個返回值
- C. 函式可以沒有return語句
- D. 函式都有返回值
答案:B
- 在Python中,以下關於函式的描述錯誤的是( )項?
- A. 在Python中,關鍵字引數是讓呼叫者通過使用引數名區分引數,在使用時不允許改變引數列表中的引數順序。
- B. 在Python中,預設引數的值可以修改。
- C. 在Python中,引入了函數語言程式設計的思想,函式本身亦為物件。
- D. 在Python中,函式的return語句可以以元組tuple的方式返回多個值。
答案:A
- 以下關於Python的說法中正確的是( )項?
- A. Python中函式的返回值如果多於1個,則系統預設將它們處理成一個字典。
- B. 遞迴呼叫語句不允許出現在迴圈結構中。
- C. 在Python中,一個演算法的遞迴實現往往可以用迴圈實現等價表示,但是大多數情況下遞迴表達的效率要更高一些。
- D. 可以在函式引數名前面加上星號*,這樣使用者所有傳來的引數都被收集起來然後使用,星號在這裡的作用是收集其餘的位置引數,這樣就實現了變長引數。
答案: D
- 實現以下哪個方法可以讓物件像函式一樣被呼叫 ( )
- A. str()
- B. iter()
- C. call()
- D. next()
答案:C
- 以下關於函式引數傳遞的描述,錯誤的是:
- A. 定義函式的時候,可選引數必須寫在非可選引數的後面
- B. 函式的實參位置可變,需要形參定義和實參呼叫時都要給出名稱
- C. 呼叫函式時,可變數量引數被當做元組型別傳遞到函式中
- D. Python 支援可變數量的引數,實參用”*引數名”表示
答案:D
- 給出如下程式碼:
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
- 下面程式碼實現的功能描述為( )
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
- 給出如下程式碼:
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
- 給出如下程式碼:
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
- 給出如下程式碼:
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
- 下面程式碼的執行結果是( )
def func(num):
num += 1
a =10
func(a)
print(a)
- A. 11
- B. int
- C. 10
- D. 出錯
答案:C
- 下面程式碼的輸出結果是( )
def func(a,b):
return a>>b
s = func(5,2)
print(s)
- A. 20
- B. 1
- C. 6
- D. 12
答案:B
- 下面程式碼的輸出結果是( )
def func(a,b):
a *= b
return a
s = func(5,2)
print(s)
- A. 40
- B. 1
- C. 12
- D. 10
答案:D
- 下面程式碼的輸出結果是( )
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
- 下面程式碼的輸出結果是( )
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
- 下面程式碼的輸出結果是( )
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
- 下面程式碼的輸出結果是( )
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
- 下面程式碼的輸出結果是( )
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
- 下面程式碼的輸出結果是( )
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
- 執行下面程式碼,錯誤的是( )
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
- 執行下面程式碼,錯誤的是( )
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
- 執行下面的程式碼,以下選項中正確的是( )
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
- 關於巢狀函式,以下選項中描述錯誤的是( )
- 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
- 下面程式碼的執行結果是( )
>>> 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
- 下面程式碼的執行結果是( )
>>> 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
- 下面程式碼的執行結果是( )
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') {'schoolName': 'NJRU', 'City': 'Nanjing'}
- B. ['HTY', 'LFF', 'ZH']
- C. 出錯
- D. 無輸出
答案:A
- 下面程式碼的執行結果是( )
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,') {'schoolName': 'NJRU', 'City': 'Nanjing'}
- B. 出錯
- C. 無輸出
- D. ['HTY', 'LFF', 'ZH']
答案:A
- 下面程式的執行結果為( )。
a=10
def setNumber():
a=100
setNumber()
print(a)
- A. 10
- B. 100
- C. 10100
- D. 10010
答案:A
- 下面程式的執行結果為( )。
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
- 對於函式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
- 以下程式的輸出結果是( )
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
- 以下程式的輸出結果是:
fr = []
def myf(frame):
fa = ['12','23']
fr = fa
myf(fr)
print( fr)
- A. ['12', '23']
- B. '12', '23'
- C. 12 23
- D. []
答案:D
- 下列有關函式的說法中,正確的是( )
- A. 函式的定義必須在程式的開頭
- B. 函式定義後,其中的程式就可以自動執行
- C. 函式定義後需要呼叫才會執行
- D. 函式體與關鍵字def必須左對齊
答案:C
- 使用( )關鍵字建立自定義函式
- A. function
- B. func
- C. def
- D. procedure
答案:C
- 以下程式碼中的print_menu( )函式是哪種分類
def print_menu():
print('--------------------------')
print(' xx涮涮鍋 點菜系統')
print(' 1. 羊肉涮涮鍋')
print(' 2. 牛肉涮涮鍋')
print(' 3. 豬肉涮涮鍋')
print('--------------------------')
print_menu()
- A. 無參無返回值函式
- B. 無參有返回值函式
- C. 有參無返回值函式
- D. 有參有返回值函式
答案:A
- 以下程式碼中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
- 寫出下面程式碼的執行結果。
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
- 寫出下面程式碼的執行結果。
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
- 寫出下面程式碼的執行結果。
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
- 使用( )關鍵字宣告匿名函式
- A. function
- B. func
- C. def
- D. lambda
答案:D
二. 填空題(共47題,23.5分)
- Python中定義函式的關鍵字是______________。
- 答案: def
- 在函式內部可以通過關鍵字來定義全域性變數______________。
- 答案: global
- 如果函式中沒有return語句或者return語句不帶任何返回值,那麼該函式的返回值為______________。
- 答案: None
- 表示式sum(range(10))的值為______________。
- 答案: 45
- 表示式sum(range(1,10,2))的值為。
- 答案: 25
- 表示式list(filter(None,[0,1,2,3,0,0]))的值為______________。
- 答案: [1,2,3]
- 表示式list(filter(lambda x:x>2,[0,1,2,3,0,0]))的值為______________。
- 答案: [3]
- 表示式list(range(50,60,3))的值為______________。
- 答案: [50,53,56,59]
- 表示式list(filter(lambda x:x%2==0,range(10)))的值為______________。
- 答案: [0,2,4,6,8]
- 表示式list(filter(lambda x:len(x)>3,['a','b','abcd']))的值為______________。
- 答案:['abcd']
- 已知g=lambda x,y=3,z=5:xyz,則語句print(g(1))的輸出結果為______________。
- 答案: 15
- 表示式list(map(lambda x: len(x), ['a', 'bb','ccc']))的值為______________。
- 答案: [1,2,3]
- 已知f = lambda x: x+5,那麼表示式f(3) 的值為______________。
- 答案: 8
- 表示式sorted(['abc', 'acd', 'ade'], key=lambda x:(x[0],x[2]))的值為______________。
- 答案:['abc', 'acd', 'ade']
- 已知函式定義def demo(x,y,op):return eval(str(x)+op+str(y)),那麼表示式demo(3,5,'+') 的值為______________。
- 答案: 8
- 已知函式定義def demo(x,y,op):return eval(str(x)+op+str(y)),那麼表示式demo(3,5,'*') 的值為______________。
- 答案: 15
- 已知函式定義def demo(x,y,op):return eval(str(x)+op+str(y)),那麼表示式demo(3,5,'-')的值為______________。
- 答案:-2
- 已知f =lambda n: len(bin(n)[bin(n).rfind('1')+1:]),那麼表示式f(6) 的值為______________。
- 答案: 1
- 已知f =lambda n: len(bin(n)[bin(n).rfind('1')+1:]),那麼表示式f(7) 的值為______________。
- 答案: 0
- 已知g = lambda x, y=3, z=5: x+y+z,那麼表示式g(2) 的值為______________。
- 答案: 10
- 已知函式定義def func(*p):return sum(p),那麼表示式func(1,2,3)的值為______________。
- 答案: 6
- 已知函式定義def func(*p):return sum(p), 那麼表示式func(1,2,3, 4)的值為______________。
- 答案: 10
- 已知函式定義def func(**p):return sum(p.values()),那麼表示式func(x=1, y=2, z=3)的值為______________。
- 答案: 6
- 已知函式定義def func(**p):return ''.join(sorted(p)),那麼表示式func(x=1,y=2,z=3) 的值為______________。
- 答案: 'xyz'
- 已知f = lambda x:5,那麼表示式f(3) 的值為______________。
- 答案: 5
- Python使用關鍵字來定義類______________。
- 答案: class
- 表示式isinstance('abc',str)的值為______________。
- 答案: True
- 表示式isinstance('abc',int)的值為______________。
- 答案:False
- 表示式isinstance(4j,(int,float,complex))的值為______________。
- 答案: True
- 表示式isinstance('4',(int,float,complex))的值為______________。
- 答案: False
- 表示式type(3) in (int, float,complex)的值為______________。
- 答案:True
- 表示式type(3.0) in (int, float,complex)的值為______________。
- 答案: True
- 表示式type(3+4j) in (int, float,complex)的值為______________。
- 答案: True
- 表示式type('3') in (int, float,complex)的值為______________。
- 答案: False
- 表示式type(3) ==int的值為______________。
- 答案: True
- 函式可以有多個引數,引數之間使用( )分隔
- 答案: 逗號
- 使用( )語句可以返回函式值並退出函式
- 答案: return
- 函式能處理比宣告時更多的引數,它們是( )引數
- 答案:不定長
- 執行結果是( )
def Sum(*p):
return sum(p)
print(Sum(3, 5, 8))
- 答案: 16
- 執行結果是( )
def func5(a, b, *c):
print(a,b)
func5(1,2,3,4,5,6)
- 答案: 1 2
- 在函式裡面呼叫另外一個函式,這就是函式的( )呼叫
- 答案: 巢狀
- 在函式內部定義的變數稱作( )變數
- 答案: 區域性
- ( )變數定義在函式外,可以在整個程式範圍內訪問
- 答案: 全域性
- 如果想在函式中修改全域性變數,需要在變數的前面加上( )關鍵字
- 答案: global
- 函式的遞迴是指在一個函式的內部呼叫函式( )的過程
- 答案: 本身
- 遞迴必須要有( ),否則就會陷入無限遞迴的狀態,無法結束呼叫
- 答案:結束條件
- 請在下列程式中橫線上填寫適當的程式碼
#使用遞迴函式,輸出斐波拉契數列的前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分)
- 呼叫函式時,在實參前面加一個型號*表示序列解包。
- A. 對
- B. 錯
答案:對
- 在Python 中語句 print(*[1,2,3]) 不能正確執行。
- A. 對
- B. 錯
答案:錯
- 函式是程式碼複用的一種方式。
- A. 對
- B. 錯
答案:對
- 定義函式時,即使該函式不需要接收任何引數,也必須保留一對空的圓括號來表示這是一個函式。
- A. 對
- B. 錯
答案:對
- 編寫函式時,一般建議先對引數進行合法性檢查,然後再編寫正常的功能程式碼。
- A. 對
- B. 錯
答案:對
- 一個函式如果帶有預設值引數,那麼必須所有引數都設定預設值。
- A. 對
- B. 錯
答案:錯
- 定義Python函式時必須指定函式返回值型別。
- A. 對
- B. 錯
答案:錯
- 定義Python函式時,如果函式中沒有return語句,則預設返回空值None。
- A. 對
- B. 錯
答案:對
- 如果在函式中有語句 return 3,那麼該函式一定會返回整數3。
- A. 對
- B. 錯
答案:錯
- 函式中必須包含return語句。
- A. 對
- B. 錯
答案:錯
- 函式中的return語句一定能夠得到執行。
- A. 對
- B. 錯
答案:錯
- 不同作用域中的同名變數之間互相不影響,也就是說,在不同的作用域內可以定義同名的變數。
- A. 對
- B. 錯
答案:對
- 全域性變數會增加不同函式之間的隱式耦合度,從而降低程式碼可讀性,因此應儘量避免過多使用全域性變數。
- A. 對
- B. 錯
答案:對
- 函式內部定義的區域性變數當函式呼叫結束後被自動刪除。
- A. 對
- B. 錯
答案:對
- 在函式內部,既可以使用global來宣告使用外部全域性變數,也可以使用global直接定義全域性變數。
- A. 對
- B. 錯
答案:對
- 在函式內部沒有辦法定義全域性變數。
- A. 對
- B. 錯
答案:錯
- 在函式內部直接修改形參的值並不影響外部實參的值。
- A. 對
- B. 錯
答案:對
- 在函式內部沒有任何方法可以影響實參的值。
- A. 對
- B. 錯
答案:錯
- 呼叫帶有預設值引數的函式時,不能為預設值引數傳遞任何值,必須使用函式定義時設定的預設值。
- A. 對
- B. 錯
答案:錯
- 在同一個作用域內,區域性變數會隱藏同名的全域性變數。
- A. 對
- B. 錯
答案:對
- 形參可以看做是函式內部的區域性變數,函式執行結束之後形參就不可訪問了。
- A. 對
- B. 錯
答案:對
- 假設已匯入random標準庫,那麼表示式 max([(1, 10) for i in range(10)]) 的值一定是10。
- A. 對
- B. 錯
答案:錯
- Python標準庫random的方法randint(m,n)用來生成一個[m,n]區間上的隨機整數。
- A. 對
- B. 錯
答案:對
- 在函式內部沒有任何宣告的情況下直接為某個變數賦值,這個變數一定是函式內部的區域性變數。
- A. 對
- B. 錯
答案:對
- 在Python中定義函式時不需要宣告函式引數的型別。
- A. 對
- B. 錯
答案:對
- 在Python中定義函式時不需要宣告函式的返回值型別。
- A. 對
- B. 錯
答案:對
- 在函式中沒有任何辦法可以通過形參來影響實參的值。
- A. 對
- B. 錯
答案:錯
- 已知 x = 3,那麼執行語句 x+=6 之後,x的記憶體地址不變。
- A. 對
- B. 錯
答案:錯
- 在定義函式時,某個引數名字前面帶有一個*符號表示可變長度引數,可以接收任意多個普通實參並存放於一個元組之中。
- A. 對
- B. 錯
答案:對
- 在定義函式時,某個引數名字前面帶有兩個*符號表示可變長度引數,可以接收任意多個關鍵引數並將其存放於一個字典之中。
- A. 對
- B. 錯
答案:對
- 定義函式時,帶有預設值的引數必須出現在引數列表的最右端,任何一個帶有預設值的引數右邊不允許出現沒有預設值的引數。
- A. 對
- B. 錯
答案:對
- 在呼叫函式時,可以通過關鍵引數的形式進行傳值,從而避免必須記住函式形參順序的麻煩。
- A. 對
- B. 錯
答案:對
- 在呼叫函式時,必須牢記函式形參順序才能正確傳值。
- A. 對
- B. 錯
答案:錯
- 呼叫函式時傳遞的實參個數必須與函式形參個數相等才行。
- A. 對
- B. 錯
答案:錯
- 在編寫函式時,建議首先對形參進行型別檢查和數值範圍檢查之後再編寫功能程式碼,或者使用異常處理結構,儘量避免程式碼丟擲異常而導致程式崩潰。
- A. 對
- B. 錯
答案:對
- lambda表示式中可以使用任意複雜的表示式,但是必須只編寫一個表示式。
- A. 對
- B. 錯
答案:對
- g = lambda x: 3不是一個合法的賦值表示式。
- A. 對
- B. 錯
答案:錯
- 包含yield語句的函式一般成為生成器函式,可以用來建立生成器物件。
- A. 對
- B. 錯
答案:對
- 在函式中yield語句的作用和return完全一樣。
- A. 對
- B. 錯
答案:錯
- 語句pass僅起到佔位符的作用,並不會做任何操作。
- A. 對
- B. 錯
答案:對
- 無法使用lambda表示式定義有名字的函式。
- A. 對
- B. 錯
答案:錯
- 執行如下程式碼後,ls內的值是[5,7,1]
ls = [1,7,5]
reversed(ls)
- A. 對
- B. 錯
答案:錯
- 有函式如下,如果a = 1, b = 2,然後呼叫foo(a,b),在函式外a,b的值依然為1,2
def foo(a,b):
a, b = 3,4
- A. 對
- B. 錯
答案:錯
- 引用庫及呼叫庫函式方式之一如下: 引用庫 import <庫名> 呼叫庫函式 <函式名>(<函式引數>)
- A. 對
- B. 錯
答案:錯
- 在函式中使用return語句可以返回值,所以函式中的return語句後一定要有值
- A. 對
- B. 錯
答案:錯
- 呼叫函式時傳遞的實參個數必須與函式形參個數相等才行
- A. 對
- B. 錯
答案:錯
- 使用函式的主要目的是實現程式碼複用和降低程式設計難度
- A. 對
- B. 錯
答案:對
- 內建函式len()返回指定序列的元素個數,適用於列表、元組、字串、字典、集合以及range等迭代物件
- A. 對
- B. 錯
答案:對
- 在函式內部,既可以使用global來宣告使用外部全域性變數,也可以使用global直接定義全域性變數
- A. 對
- B. 錯
答案:錯
- 函式定義時,在引數前面加一個星號表示可變數量變數
- A. 對
- B. 錯
答案:對
- 函式的名稱可以隨意命名
- A. 對
- B. 錯
答案:錯
- 不帶return的函式代表返回None
- A. 對
- B. 錯
答案:對
- 預設情況下,引數值和引數名稱是跟函式宣告定義的順序匹配的
- A. 對
- B. 錯
答案:對
- 函式定義完成後,系統會自動執行其內部的功能
- A. 對
- B. 錯
答案:錯
- 函式體以冒號起始,並且是縮排格式的
- A. 對
- B. 錯
答案:對
- 帶有預設值的引數位於引數列表的末尾
- A. 對
- B. 錯
答案:對
- 定義函式時,即使該函式不需要接收任何引數,也必須保留一對空的圓括號來表示這是一個函式。
- A. 對
- B. 錯
答案:對
- 一個函式如果帶有預設值引數,那麼必須所有引數都設定預設值。
- A. 對
- B. 錯
答案:錯
- 呼叫帶有預設值引數的函式時,不能為預設值引數傳遞任何值,必須使用函式定義時設定的預設值。
- A. 對
- B. 錯
答案:錯
- 在定義函式時,某個引數名字前面帶有一個*符號表示可變長度引數,可以接收任意多個位置引數並存放於一個元組之中。
- A. 對
- B. 錯
答案:對
- 在定義函式時,某個引數名字前面帶有兩個*符號表示可變長度引數,可以接收任意多個關鍵引數並將其存放於一個字典之中。
- A. 對
- B. 錯
答案:對
- 位置引數必須在關鍵字引數的後面
- A. 對
- B. 錯
答案:錯
- 在呼叫函式時,可以通過關鍵引數的形式進行傳值,從而避免必須記住函式形參順序的麻煩。
- A. 對
- B. 錯
答案:對
- 呼叫函式時傳遞的實參個數必須與函式形參個數相等才行。
- A. 對
- B. 錯
答案:錯
- 區域性變數的作用域是整個程式,任何時候使用都有效
- A. 對
- B. 錯
答案:錯
歡迎查閱