國家安全情報人員考試五等考試-資訊組資料處理大意114 年第 15 題單選題考點:前置運算誤解考點:static vs auto 混淆
下列程式碼的輸出結果為何?
void increment() {
static int num = 0;
num++;
printf("%d", num);
}
int main() {
increment(); // 第一次呼叫
increment(); // 第二次呼叫
return 0;
}
C正確答案
static 區域變數只初始化一次,函式結束後值會保留,故兩次呼叫分別印出 1、2。
逐選項解析
A0, 0前置運算誤解✕ 錯誤
num++ 是先加再印,不會印出 0;且 static 初始化的 0 只在第一次生效。
B1, 1static vs auto 混淆✕ 易錯陷阱
這是把 static 當成一般區域變數的錯誤想法:若每次都重新初始化為 0,才會兩次都印 1。static 不會重設。
立即註冊,看完整詳解
這題的完整詳解,註冊就能看 · 每天 2 題免費
精選詳解- 完整逐選項解析
- 秒殺解題技巧與破題關鍵
- 關鍵知識表整理
- 陷阱與易錯提醒
- 同考點歷屆題庫連續刷題與錯題本