Examly題庫立即開始練習
國中教甄|資訊科技資訊科技112 年第 65 題單選題

What is the output of the following code? #include <stdio.h> int f( int x ) { if( x == 0 ) return -1; if( x == 1 ) return 1; return f(x/2) * 2; } int main() { printf( "%d", f(78) ); return 0; }

A64正確答案
B-64
C128
D-128
答案與詳解
A
正確答案
透過追蹤遞迴函數的執行過程,計算出 f(78) 最終會遞迴至 f(1) 並乘上 6 次 2,結果為 64。

逐選項解析

A64✓ 正確
f(78) 遞迴 6 次後到達 f(1) 返回 1,再乘上 6 次 2,即 1 * 2^6 = 64。
B-64✕ 錯誤
若遞迴終止條件為 f(0) 才會返回 -1,但 78 不斷除以 2 最終會停在 1,故不會產生負號。
C128✕ 錯誤
D-128✕ 錯誤

立即註冊,看完整詳解

這題的完整詳解,註冊就能看 · 每天 2 題免費

精選詳解
  • 完整逐選項解析
  • 秒殺解題技巧與破題關鍵
  • 關鍵知識表整理
  • 陷阱與易錯提醒
  • 同考點歷屆題庫連續刷題與錯題本

資訊科技 相關題目

想練更多資訊科技考古題?

Examly 收錄 50 萬+ 道歷屆題目,每題都有像這樣的精選詳解。免費下載,立即開練。

Examly