普考申論題
109年
[資訊處理] 程式設計概要
第 一 題
一、下面的遞迴程式執行後,印出的信息為何?(作答必須解釋計算過程,只寫答案而未加解釋,只能得部分分數。)(25分)
#include
int new1(int p) {
if (p > 90) return(new1(new1(p-11)));
return(p-10);
}
int new2(int p) {
if (p < 91) return(new2(p+11));
return(p);
}
int new(int p) {
return(new1(new2(p)));
}
int main(int argc, char **argv){
int q;
q = 65;
printf("new(%d)= %d.\n", q, new(q));
q = 95;
printf("new(%d)= %d.\n", q, new(q));
q = 100;
printf("new(%d)= %d.\n", q, new(q));
q = 104;
printf("new(%d)= %d.\n", q, new(q));
q = 110;
printf("new(%d)= %d.\n", q, new(q));
return(0);
}
📝 此題為申論題
思路引導 VIP
看到本題,首先要辨識出這是一個 C 語言的遞迴函式問題。考點在於如何正確追蹤函式的呼叫堆疊與回傳值。
- 程式碼結構分析:
🤖
AI 詳解
AI 專屬家教
【考點分析】 本題主要考驗考生對 C 語言遞迴函式 (Recursion) 的理解與追蹤能力,包含:
- 函式呼叫的順序與參數傳遞。
▼ 還有更多解析內容