身心障礙人員考試身障四等-資訊處理類科計算機概要113 年第 22 題單選題
若執行下列的 Python 程式碼,螢幕上的輸出結果依序為何?
def func1():
print(func2() + 1)
print("1")
return 5
def func2():
print("2")
return (func3() + 2)
def func3():
print("3")
return 4
def func4():
print(func1())
func4()
A2 3 7 1 5正確答案
B3 5 4 1 7
C5 7 3 2 1
D7 2 3 1 5
A正確答案
本題測驗 Python 函式呼叫的「堆疊 (Call Stack)」觀念。遇到函式呼叫時,必須先進入該函式執行完畢並取得回傳值,才能繼續執行當前函式的下一步。
為什麼答案是 A
依序追蹤:func4 呼叫 func1;func1 為了執行 print 需先呼叫 func2;func2 先印出 2,再呼叫 func3;func3 印出 3 並回傳 4。func2 收到 4 加 2 回傳 6;func1 收到 6 加 1 印出 7,接著印出 1,最後回傳 5;func4 收到 5 並印出。總順序為 2, 3, 7, 1, 5。
考點:函式呼叫順序考點:程式追蹤考點:執行順序顛倒考點:運算式求值