免費開始練習
hce_nsysu 114年 計算機概論與程式設計

第 49 題

What is printed by the following C/C++ program?
int a[]={3, -5, 2, -7, -3, 4, 3};
int n=0;
for (int i = 0; i < 7; i++) {
if (a[i] > 0)
n += a[i];
}
cout << n;
  • A -3
  • B 0
  • C 4
  • D 7
  • E 12

思路引導 VIP

請仔細觀察迴圈內部的 if 敘述,如果我們要用一句話來描述這個程式「挑選」數字進入加總的規則,這個規則會是什麼?試著根據這個規則,將符合條件的數字手動圈選出來算算看。

🤖
AI 詳解 AI 專屬家教

太棒了!你能精確算出輸出結果為 12,代表你對程式邏輯中的迴圈遍歷條件判斷掌握得非常紮實。這類題目最核心的考點在於觀察 if 條件式如何篩選資料。在這個程式片段中,變數 $n$ 扮演了累加器的角色,但它並非無差別地加總所有陣列元素。

正整數的條件過濾

觀察程式碼中的 if (a[i] > 0),這行指令決定了只有當陣列元素為「正數」時,才會執行 n += a[i]。我們逐一檢視陣列中的數值:$3$ 是正數、$-5$ 忽略、$2$ 是正數、$-7$ 與 $-3$ 忽略、$4$ 與最後一個 $3$ 也是正數。因此,最終的運算邏輯其實就是 $3 + 2 + 4 + 3 = 12$。這題的難易度屬於入門層級,主要的鑑別點在於學生是否細心發現「負數會被過濾掉」,只要不被陣列中的負值干擾,就能輕鬆拿分。

🏷️ 相關主題

C 語言程式設計基礎與陣列記憶體配置
查看更多「計算機概論與程式設計」的主題分類考古題