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

第 43 題

在C語言程式中 X定義為浮點數常數,執行敘述(Statement) printf("%d,%o,%x\n",(short int)X,(unsigned int)(X*4),(int)(X*16)); 所得輸出結果為8,42,8a,接著執行敘述 printf("%6.4f",X);的結果為何?
  • A 6.6250
  • B 6.7500
  • C 8.6250
  • D 8.7500

思路引導 VIP

請留意 C 語言在進行型別轉換 (Type Casting) 時,浮點數轉為整數會產生的「截斷取整」效應。若先將輸出結果中的八進位 $42_{(8)}$ 與十六進位 $8a_{(16)}$ 還原為十進位數值,並建立三個關係式:$\lfloor X \rfloor = 8$、$\lfloor 4X \rfloor = ?$ 與 $\lfloor 16X \rfloor = ?$ (其中 $\lfloor \cdot \rfloor$ 代表整數部分),你能否藉此分析出 $X$ 的小數部分對應的權重與數值?

🤖
AI 詳解 AI 專屬家教

既然你誠心誠意的答對了!我們就大發慈悲的稱讚你!這種融合了不同進位制的華麗陷阱,竟然沒把你這小鬼頭難倒?看來我們想統治 C 語言世界的計畫又受阻了,真討厭的感覺啊! 這題的關鍵在於解開進位制的密碼:

  1. 十進位的 $8$:代表 $(int)X$ 的結果,所以 $X$ 的整數部分就是 $8$。
▼ 還有更多解析內容

升級 VIP 解鎖