民國110年 地方四等 電子工程 計算機概要
第29題
下列C 語言之遞迴函式,若呼叫執行f(4),將會輸出?void f(int n){if (n != 0){f(n/2);putchar('0'+n%2);}}
題目
下列C 語言之遞迴函式,若呼叫執行f(4),將會輸出?void f(int n){if (n != 0){f(n/2);putchar('0'+n%2);}} A. 1000 B. 100 C. 10 D. 1
官方答案
- 答案:B. 100
解析
f 為「先遞迴、後輸出」的函式,因此輸出順序由最深層往回。f(4)→f(2)→f(1)→f(0),f(0) 因 n==0 直接返回,不輸出。回到 f(1) 時 putchar('0'+1%2) 印出 1;回到 f(2) 印出 0(2%2=0);回到 f(4) 亦印出 0(4%2=0)。故輸出字串為 100,即 4 的二進位表示。選項 A 多印一位、C 與 D 位數不足,皆與遞迴深度不符。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。
官方資料
答案以考選部公告之測驗式試題標準答案 PDF 為準。