Q20.
當變數w,x,y,z 分別宣告為char w;int x;float y;double z;則表示式w*x/y-z的執行結果,其資料型態為
數位電子 · 乙級 · 程式語言 · Q20
難易度分析
2 / 5
此題考查混合資料型態進行算術運算時的自動型態轉換規則。需要判斷在包含多種不同精度型態(從整數到浮點數)的運算式中,編譯器如何根據精度的等級進行逐級提升,並最終決定運算結果的型態。
正確答案:④double
④ double:依據 C 語言的 算術轉換規則(Usual Arithmetic Conversions),運算式中精度最高的型態為 double,所有較低精度型態(char→int→float→double)會逐級提升,最終結果為 double。
錯誤選項解析
- ① char:char 在算術運算中會先提升為 int,且最終運算結果會受最高精度型態主導,不可能回傳 char。
- ② int:int 雖是 char 提升後的第一階段型態,但後續與 float 及 double 運算時會繼續向上提升,故最終結果不是 int。
- ③ float:float 在與 double 進行減法運算時,會依據 隱含型態轉換(Implicit Type Conversion) 規則再次提升為 double,因此結果不會停留在 float。
Learning Tip
"此題考 C 語言的 隱含型態轉換(Implicit Type Conversion) 與 精度提升階梯:char → int → float → double。在混合型態的算術運算中,編譯器會自動將所有運算元提升至運算式中 最高精度的型態 後再執行計算。切記:只要運算式中出現 double,最終結果必定是 double。"
學員答題分佈
①char0%
②int0%
③float0%
④double0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!