民國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 為準。