農會 資訊管理類程式設計110 年第 43 題單選題
以下為Python程式,請問b的結果為何?
def test1(a):
a=a+1
return a+2
b=0
b=test1(3)
A正確答案
官方公告正解為 A。惟實際追蹤 Python 程式碼,test1(3) 回傳值為 6,b 最終應為 6。
為什麼答案是 A
官方公告本選項為正解;惟就程式碼實際執行而言,test1(3) 中 a=3+1=4,回傳 4+2=6,b 應為 6,此處尚有討論空間。
考點:Python 函數回傳值
載入中…
完整詳解
Pro · 無限重點 官方公告正解為 A。惟實際追蹤 Python 程式碼,test1(3) 回傳值為 6,b 最終應為 6。
依官方公告正解為 A;惟實際執行:a=3 → a=3+1=4 → return 4+2=6,故 b=6(選項 D)。
逐選項分析
APython 函數回傳值✓ 正確
官方公告本選項為正解;惟就程式碼實際執行而言,test1(3) 中 a=3+1=4,回傳 4+2=6,b 應為 6,此處尚有討論空間。
BPython 函數回傳值✕
4 為 a=a+1 運算後的中間值,並非函數最終回傳值。
CPython 函數回傳值✕
5 並非程式執行過程中出現的任何數值,為幹擾選項。
DPython 函數回傳值✕
6 為程式碼實際執行的正確結果(a=3 → a=4 → return 6),但非官方公告正解。
Python 函數執行流程追蹤
| 執行步驟 | 變數 | 數值 |
|---|
| 初始設定 | b | 0 |
| 呼叫 test1(3),參數 a 接收 | a | 3 |
| a = a + 1 | a | 4 |
| return a + 2 | 回傳值 | 6 |
| b = test1(3) 賦值 | b | 6 |
官方公告正解為 A(0),但實際追蹤 Python 程式碼執行結果,b 應為 6(選項 D)。作答時仍以官方公告為準。