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

第 三 題

三、下列 C++程式執行後,試問 A、B、C 值分別為多少?(25 分) int F2(int &f, int f1) { int sum = (f1 + f++); return sum; } void F1(int &a, int b, int* c) { for (int i = a, j = b; j >= 0; i++, j--) { if (c[j] % 2 == 0) c[j] = F2(a, b); else c[j] = F2(b, a); } } void main() { int A = 5, B = 3, C[4] = { 1,4,7,6 }; F1(A, B, C); system("pause"); }
📝 此題為申論題

思路引導 VIP

考生看到此題應先釐清變數的「參數傳遞方式」,辨別哪些變數是傳參考(會改變原值)、哪些是傳值(不改變原值)。接著針對迴圈依序追蹤,並特別注意 f++ 是後置遞增(先進行加法運算,變數值再加 1),按步就班推導即可得出結果。

🤖
AI 詳解 AI 專屬家教

【解題關鍵】精確掌握「傳參考 (Call by Reference)」與「傳值 (Call by Value)」的差異,以及後置遞增運算子 f++ 先運算後遞增的特性。 【解答】 計算:

▼ 還有更多解析內容

升級 VIP 解鎖