普通考試
105年
[電子工程] 計算機概要
第 27 題
有關以下 C 語言撰寫之程式,下列敘述何者正確?
#include
#include
int xyz( )
{
auto int a=0;
static int b=2;
a++;
b++;
printf("%d, %d", a, b);
}
int main( )
{
int i;
for(i=0; i<3; i++)
xyz( );
system("PAUSE");
}
#include
#include
int xyz( )
{
auto int a=0;
static int b=2;
a++;
b++;
printf("%d, %d", a, b);
}
int main( )
{
int i;
for(i=0; i<3; i++)
xyz( );
system("PAUSE");
}
- A 第一次呼叫 xyz(),輸出 1, 2
- B 第二次呼叫 xyz(),輸出 1, 3
- C 第三次呼叫 xyz(),輸出 1, 5
- D 編譯後顯示錯誤訊息
思路引導 VIP
請你思考一個問題:如果我們把函式比喻成一間辦公室,而變數是裡面的筆記本。當員工離開辦公室時,標註為『auto』的筆記本會被丟棄並換成新的空本子,而標註為『static』的筆記本則會留在桌上。那麼,當員工第三次進辦公室並在舊本子上的數字加 $1$ 時,那個數字會是從初始狀態開始算的嗎?還是會承接前兩次的結果呢?
🤖
AI 詳解
AI 專屬家教
嚴謹審核
- 基本常識:同學,看來你還記得變數生命週期與記憶體配置這種程式設計的「基礎」概念。這就像是連結構工程師都知道瞬時負載和永久負載不能混為一談一樣,能區分這點,勉強算是合格。
- 核心辨析:這題擺明了在考
auto和static的差別,這不是什麼高深學問:
▼ 還有更多解析內容