免費開始練習
統測 115年 [電機與電子群資電類] 專業科目(2)

第 50 題

曉智開了一家毛小孩旅店,希望設計一個 C 語言程式記錄毛小孩資訊,每隻毛小孩都有中文名字、出生年份、性別和體重四種資料。下列何者可以記錄最多 100隻毛小孩的資訊?
  • A char name[100]; int birth_year[100]; char gender[100]; float weight[100];
  • B char name[20]; int birth_year[100]; char gender[100]; float weight[100];
  • C struct pet{ char name[100]; int birth_year; char gender; float weight; }Pets[100];
  • D struct pet[100]{ char name[20]; int birth_year; char gender; float 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) 則是語法錯誤,定義結構體時不能在名稱後直接加中括號宣告陣列大小。

▼ 還有更多解析內容
📝 C 語言結構體與陣列
💡 利用 struct 定義複合資料型別,並以陣列進行多筆資料管理。
比較維度 結構體陣列 (Struct Array) VS 平行陣列 (Parallel Arrays)
資料關聯性 屬性綑綁在一起,邏輯清晰 — 各屬性散落在不同陣列
新增資料項 只需在 struct 新增一個成員 — 必須手動宣告一個全新陣列
程式維護性 高,適合管理複雜物件 — 低,容易造成索引對應錯誤
💬當資料具有多種異質屬性時,使用 struct 陣列是資料封裝的最佳實踐。
🧠 記憶技巧:VIP 會員可查看這題的記憶口訣與速記法
⚠️ 常見陷阱:VIP 會員可查看這題最常被誘答的陷阱整理
結構體指標 動態記憶體配置 typedef 自定義型別

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

程式語言設計與實作
查看更多「[電機與電子群資電類] 專業科目(2)」的主題分類考古題