免費開始練習
高考申論題 109年 [資訊處理] 程式語言

第 三 題

三、下面的C程式印出的結果為何?(作答必須解釋計算過程,只寫答案而未加解釋,只能得部分分數。)(25分) # include int foo1(int p){ if (p >= 90) return(foo1(foo1(p-11))); return(p+10); } int foo2(int p){ if (p < 91) return(foo2(p+11)); return(p); } int foo(int p){ return(foo1(foo2(p))); } int main(int argc, char **argv){ int q; q = 65; printf("foo(%d)= %d.\n", q, foo(q)); q = 83; printf("foo(%d)= %d.\n", q, foo(q)); q = 95; printf("foo(%d)= %d.\n", q, foo(q)); q = 100; printf("foo(%d)= %d.\n", q, foo(q)); q = 142; printf("foo(%d)= %d.\n", q, foo(q)); return(0); }
📝 此題為申論題

思路引導 VIP

  1. 拆解函數邏輯:
    • foo2(p):這是一個簡單的循環/遞迴。只要 p < 91,就一直加 11。目標是找出第一個大於等於 91 的數值。
🤖
AI 詳解 AI 專屬家教

【考點分析】 本題考查遞迴函數的追蹤能力,涉及巢狀遞迴(Nested Recursion)的邏輯推演。 【理論/法規依據】

▼ 還有更多解析內容

📝 同份考卷的其他題目

查看 109年[資訊處理] 程式語言 全題

升級 VIP 解鎖