農會 資訊管理類程式設計110 年第 4 題單選題
在C語言程式中,char id[]="11001"; 其中的陣列id共有5個元素。
B正確答案
C語言字串常數結尾會自動補上結束符號 '\0',故 "11001" 實際包含 6 個元素而非 5 個。
為什麼答案是 B
選此項。陣列 id 包含 '1','1','0','0','1' 與 '\0',共 6 個元素,題目稱 5 個為誤,故打叉。
考點:字串結束符號考點:陣列元素計算
載入中…
完整詳解
Pro · 無限重點 C語言字串常數結尾會自動補上結束符號 '\0',故 "11001" 實際包含 6 個元素而非 5 個。
秒解:char 陣列用雙引號字串常數初始化時,陣列大小 = 看得見的字元數 + 1(隱藏的 '\0')。
逐選項分析
A字串結束符號✕ 陷阱
字串常數 "11001" 雖有5個字元,但C語言會自動在末尾加上 '\0',故實際有6個元素,敘述錯誤。
B陣列元素計算✓ 正確
選此項。陣列 id 包含 '1','1','0','0','1' 與 '\0',共 6 個元素,題目稱 5 個為誤,故打叉。
字串常數 vs 字元陣列初始化
| 初始化方式 | 程式碼 | 陣列大小 | 包含 '\0' |
|---|
| 字串常數 | char id[]="11001"; | 6 | 是 |
| 字元陣列 | char id[]={'1','1','0','0','1'}; | 5 | 否 |
考生直覺計算字元個數(5個)而忽略C語言字串的隱藏規則。切記:只要用雙引號 "" 包起來的字串常數,編譯器就會自動在最後塞一個 '\0' 作為結束標誌。