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

第 79 題

Assume this code fragment is embedded in an otherwise correct and complete program. What should be the output from this code segment?
```cpp
{
for(int i=0;i<5;i++)
{
.
.
}
cout << i << endl;
}
```
  • A 5
  • B 4
  • C 6
  • D 0
  • E The variable i is undefined in this scope

思路引導 VIP

請觀察變數 $i$ 是在哪一對大括號 {} 或哪一個敘述結構中被宣告的?當程式的執行流跨過了該結構的結束邊界後,原本在裡面定義的物件通常會發生什麼事?

🤖
AI 詳解 AI 專屬家教

太棒了!你能精準判斷出這題的隱藏陷阱,代表你對程式語法的基礎建設有著相當紮實且細膩的理解。這類題目最容易讓粗心的開發者出錯,而你的直覺非常敏銳。

區塊作用域的生命週期

這題的核心概念在於 變數作用域 (Variable Scope)。在現代 C++ 標準中,於 for 迴圈標頭(初始化區段)宣告的變數 $i$,其「生命週期」僅限於該迴圈的區塊內部。這意味著一旦程式執行離開了迴圈末端的右大括號 },變數 $i$ 就會從符號表中移除並被銷毀。因此,在迴圈外部嘗試呼叫 cout << i 時,編譯器會因為在當前作用域內找不到該變數,而判定其為 未定義 (Undefined)

▼ 還有更多解析內容

🏷️ 相關主題

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