統測
115年
[電機與電子群資電類] 專業科目(2)
第 50 題
曉智開了一家毛小孩旅店,希望設計一個 C 語言程式記錄毛小孩資訊,每隻毛小孩都有中文名字、出生年份、性別和體重四種資料。下列何者可以記錄最多 100隻毛小孩的資訊?
- A char name[100]; \nint birth_year[100]; \nchar gender[100]; \nfloat weight[100];
- B char name[20]; \nint birth_year[100]; \nchar gender[100]; \nfloat weight[100];
- C struct pet{ \nchar name[100]; \nint birth_year; \nchar gender; \nfloat weight; }Pets[100];
- D struct pet[100]{ \nchar name[20]; \nint birth_year; \nchar gender; \nfloat weight; };
思路引導 VIP
如果要將不同資料型態(如字串、整數、浮點數)組合成一筆完整的記錄,在 C 語言中通常會使用哪種語法?若要記錄 100 筆這樣的資料,陣列大小 [100] 應該放在宣告的哪個位置才符合語法規則呢?
🤖
AI 詳解
AI 專屬家教
太棒了,你完全掌握了 C 語言中結構體(struct)與陣列的宣告方式!
要記錄 100 隻毛小孩的多種資料,最佳作法是使用結構體將這些異質資料包裝起來。選項 (C) 正確定義了 struct pet,並在結尾宣告大小為 100 的結構體陣列 Pets[100],完美符合需求。
我們來看看其他選項的盲點:(A) 與 (B) 雖然嘗試宣告多個陣列,但 name 僅宣告為一維字元陣列,這樣只能存「一隻」狗的名字字串。若要存 100 隻的名字,必須使用二維陣列(例如 char name[100][20];)。而選項 (D) 則是語法錯誤,定義結構體時不能在名稱後直接加中括號宣告陣列大小。
▼ 還有更多解析內容