免費開始練習
地特四等申論題 109年 [資訊處理] 程式設計概要

第 四 題

四、下列 C 程式的執行結果為何?(20分) #include #include int funA(int x), funB(int y); int main(void){ printf("funA(5)=%d, funB(5)=%d\n", funA(5), funB(5)); return 0; } int funA(int x){ int i, answer=1; if(x<1) return -1; for(i=1;i<=x;i++) answer*=(i*2); return answer; } int funB(int y){ if(y<1) return -1; else if(y==1) return 3; else return 3*y + funB(y-1); }
📝 此題為申論題

思路引導 VIP

本題考查 C 語言中迴圈(迭代)與遞迴函式的執行過程追蹤。遇到這類題目,請分別針對 funA 建立變數狀態表追蹤迴圈變化,並針對 funB 展開遞迴呼叫堆疊直到滿足終止條件。最後將兩者的計算結果準確代入 printf 的格式化字串中即可得出正確輸出。

🤖
AI 詳解 AI 專屬家教

【解題思路】分別手動追蹤迴圈變數的狀態變化,以及遞迴呼叫的展開與反向代回過程。 【詳解】 一、計算 funA(5)

▼ 還有更多解析內容

升級 VIP 解鎖