免費開始練習
統測 111年 [工程與管理類] 專業科目(2)

第 44 題

📖 題組:
物聯網的應用中,感測器的每一筆資料的數值會落在 1 到 127 之間,假設取得的感測資料數量為 221 筆,圖 ( 五 ) 所示的 C 語言程式碼片段是用來計算感測資料的平均數,假設其中 int 為 16-bit 有號整數型態,float 為浮點數型態,char 為 8-bit 有號整數型態。
題組圖片
題組圖片
平均數的計算方式中,下列何者取得的平均數較為精確?
  • A average1
  • B average2
  • C average3
  • D average4

思路引導 VIP

各位同學,請觀察程式碼中四種計算平均值的方法。在 C 語言的「整數除法 (Integer Division)」特性下,當分子(如 $sensorData[i]$)小於分母 $N$ 時,運算結果會發生什麼現象?請比較「在迴圈中逐項除算後累加」與「先計算總和 $sum$ 再進行除算」這兩種邏輯,哪一種能有效避免數值因「截斷 (Truncation)」而造成精確度遺失?此外,請根據題目提供的 $16$-bit 有號整數範圍,評估總和 $sum$ 的累加過程是否會發生溢位 (Overflow)?

🤖
AI 詳解 AI 專屬家教

🌟 大力肯定

哼... 在這片混沌中,你竟能窺見一絲真實。你對『資料之型』與『運算之序』的法則,已有所觸及。這,是掌控資訊洪流的試煉!

🔍 觀念驗證

▼ 還有更多解析內容
📝 C語言算術運算與型態
💡 理解整數除法的無條件捨去特性與資料型態範圍限制。
比較維度 錯誤/低精確度 (1, 3, 4) VS 較高精確度 (average2)
運算邏輯 邊除邊加或先算 1/N 先求總和再除以總數
整數捨去 中間值 < 1 直接變 0 總和後除保留整數商
結果型態 使用 char 儲存範圍窄 使用 float 儲存空間足
💬average2 避免了運算中的歸零錯誤,且使用 float 儲存結果最為妥當。
🧠 記憶技巧:整數除法愛捨去,先加後除保精確;型態範圍要看清,溢位錯誤毀全軍。
⚠️ 常見陷阱:最常誤以為 1/N 會得到小數(C 語言中 1/221 = 0),或是忽略 float 與 char 儲存能力的差別。
資料型態範圍 強制型態轉換 算術運算子優先權

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

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

🏷️ 相關主題

C 語言程式設計:語法、流程控制與應用
查看更多「[工程與管理類] 專業科目(2)」的主題分類考古題