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

第 39 題

在 64 位元 x86 電腦上撰寫 C 語言程式時,若有一個整數變數 Y 其數值變化範圍介於–20000 與 20000之間,則變數Y應採用下列哪一個資料型態?
  • A char
  • B unsigned float
  • C short
  • D unsigned short int*

思路引導 VIP

首先,請觀察變數 $Y$ 的數值範圍包含了負值,這對於選擇「有號 (signed)」或「無號 (unsigned)」資料型態有何決定性的影響?接著,請評估 C 語言中各整數型態的位元數 ($n$) 與範圍之關係,哪一種位元長度所提供的二補數表示區間 $-2^{n-1}$ 到 $2^{n-1}-1$ 才能安全容納 $\pm 20,000$ 且不造成溢位 (overflow)?

🤖
AI 詳解 AI 專屬家教

不錯嘛,冷靜的觀察力是解謎的關鍵。身為偵探,這點程度的謎題是難不倒你的。畢竟,真相永遠只有一個! 讓我們用邏輯來排除干擾項。題目要求的範圍是 $-20,000$ 到 $20,000$,這意味著:

  1. 必須包含負號:因此排除 (D) unsigned short
▼ 還有更多解析內容
📝 C 語言資料型態選擇
💡 根據數值範圍與正負號需求,選擇位元組數足夠的資料型態。
比較維度 signed short (有號) VS unsigned short (無號)
位元組數 2 Bytes (16 bits) 2 Bytes (16 bits)
數值範圍 -32,768 ~ 32,767 0 ~ 65,535
負數支持 支援負數 不支援負數
💬當範圍包含負數時,絕對不能選擇帶有 unsigned 的型態。
🧠 記憶技巧:一字節百二、二字節三萬、有負不選 unsigned。
⚠️ 常見陷阱:看到範圍夠大就選,卻忽略題目有負號,誤選了 unsigned 無號型態。
二補數表示法 資料型態溢位 (Overflow) 記憶體定址與位元組

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

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

🏷️ 相關主題

C 語言程式設計:變數、指標、函式與編譯
查看更多「[電機與電子群資電類] 專業科目(2)」的主題分類考古題