民國112年 地方四等 電子工程 計算機概要
第25題
執行下列C 遞迴函式若傳入整數10,則輸出為何?void fn(int n){if(n==0)return;else{fn(n/2);printf("%d",…
題目
執行下列C 遞迴函式若傳入整數10,則輸出為何?void fn(int n){if(n==0)return;else{fn(n/2);printf("%d", n%2);}} A. 10 B. 101 C. 1010 D. 10101
官方答案
- 答案:C. 1010
解析
此遞迴函式會先遞迴呼叫 fn(n/2),等返回後才印出 n%2,因此輸出順序是由低位往高位,效果等同印出 n 的二進位表示。追蹤過程:fn(10) 呼叫 fn(5),fn(5) 呼叫 fn(2),fn(2) 呼叫 fn(1),fn(1) 呼叫 fn(0) 後返回;返回時依序印出 1、0、1、0,合起來就是 1010。選項 A、B、D 的位元長度或數值都不符,故答案為 1010。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。
官方資料
答案以考選部公告之測驗式試題標準答案 PDF 為準。