國家安全情報人員考試五等考試-資訊組計算機大意114 年第 27 題單選題
針對下列的 Python 函式,已知 f(3)=17, f(4)=15, f(5)=17,請問下列 while 的條件判斷式何者正確?
Def f(x):
while ( ):
x +=2
return x*2+3
Ax*2<10
Bx%2 != 0
Cx+4>10
Dx*x <30正確答案
D正確答案
代入各選項追蹤迴圈,只有 x*x<30 能讓 f(3)=17、f(4)=15、f(5)=17 同時成立。
為什麼答案是 D
x*x<30:x=3→5→7停回傳17✓;x=4→6停回傳15✓;x=5→7停回傳17✓。完全符合。
載入中…
完整詳解
Pro · 無限重點 代入各選項追蹤迴圈,只有 x*x<30 能讓 f(3)=17、f(4)=15、f(5)=17 同時成立。
函式回傳 x*2+3,反推迴圈結束時 x 值:f(3)=17→x=7;f(4)=15→x=6;f(5)=17→x=7。
每次迴圈 x+=2,故:
x=3 須跑到 7(3→5→7,條件在 x=7 時為偽);
x=4 須跑到 6(4→6,條件在 x=6 時為偽);
x=5 須跑到 7(5→7,條件在 x=7 時為偽)。
測試 (D) x*x<30:3²=9<30✓、5²=25<30✓、7²=49≥30停;4²=16<30✓、6²=36≥30停;5²=25<30✓、7²=49≥30停。完全吻合。
逐選項分析
A✕
x*2<10:x=3→5→繼續→7停,結束x=7,f(3)=17✓;但x=4→6停,x=6,f(4)=2*6+3=15✓;x=5→7停,x=7,f(5)=17✓。看似都對,但 x=3 時 3*2=6<10 進入,加2後 x=5,5*2=10 不<10 結束,x=5,回傳 13,非17。錯誤。
B✕
x%2!=0:奇數才進迴圈。x=3(奇)→x=5(奇)→x=7(奇)→...無窮迴圈;x=4 偶數直接結束,回傳 11,非15。錯誤。
C✕
x+4>10 即 x>6:x=3,3+4=7>10?否,不進迴圈,回傳 9,非17。錯誤。
D✓ 正確
x*x<30:x=3→5→7停回傳17✓;x=4→6停回傳15✓;x=5→7停回傳17✓。完全符合。
(A) 看似可行,需仔細模擬 x=3 路徑:x*2<10 在 x=5 時 10 不<10 即停,得 x=5 而非 7,故錯。