地特四等申論題
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++ 先運算後遞增的特性。
【解答】
計算:
▼ 還有更多解析內容