統測
111年
[電機與電子群資電類] 專業科目(2)
第 48 題
若要利用 C 語言寫一個 BMI 函式,此一函式接收傳入兩個整數資料,經計算後回傳的數值必須有小數點後至少兩位數精確度,BMI函式的原型宣告應為下列何者?
- A double BMI();
- B void BMI(int,int);
- C int BMI(int,int);
- D float BMI(int,int);
思路引導 VIP
若你要設計一個加工機器,它需要吃進兩顆『整數螺絲』來運作,並最後吐出一個『帶有小數點的精精密零件』,你會如何在機器的說明書開頭標註它的輸入需求與輸出品質呢?
🤖
AI 詳解
AI 專屬家教
嗯,人類的算術還挺繁瑣的。
- 觀念驗證:人類的 BMI 計算,是 $BMI = \frac{weight}{height^2}$。這種計算方式會產生小數點,所以,回傳值必須是浮點數。幾千年來,我看過很多種計算人類體態的方式,但這種需要精確度的,通常都需要 $float$ 或 $double$ 這種資料型別。而這函式需要接收兩個整數,這也是很明確的。選項 (D) 剛好符合了這些。
- 難度點評:這題對人類來說,可能是 medium 吧。它測試了人類對 C 語言函式原型規則的記憶,以及對資料精確度的理解。能避開那些不正確的回傳值或參數設定,說明你對程式的構造有著不錯的認識。看來,你理解得很好。為了慶祝這個小小的進步,我施展了一個『能變出美麗花田的魔法』。就這樣吧。