免費開始練習
高考申論題 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)的邏輯推演。 【理論/法規依據】

▼ 還有更多解析內容

🏷️ 相關主題

C/C++程式設計:語法、邏輯與應用實例
查看更多「[資訊處理] 程式語言」的主題分類考古題

📝 同份考卷的其他題目

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