農會 資訊管理類程式設計110 年第 21 題單選題
C語言程式 int a=3.8; cout<<a; 的輸出為4。
B正確答案
C/C++中浮點數賦值給整數會無條件捨去小數,且cout為C++語法,故輸出為3而非4。
為什麼答案是 B
正確答案。int a=3.8 會截斷小數變為3,輸出為3;此外C語言應使用printf而非cout。
考點:型別轉換
載入中…
完整詳解
Pro · 無限重點 C/C++中浮點數賦值給整數會無條件捨去小數,且cout為C++語法,故輸出為3而非4。
看到浮點數轉整數,直接砍小數(3.8變3);看到C語言配cout,語法直接判錯!
逐選項分析
A型別轉換✕
題目敘述錯誤。浮點數賦值給int會無條件捨去小數,結果為3,且cout是C++語法。
B型別轉換✓ 正確
正確答案。int a=3.8 會截斷小數變為3,輸出為3;此外C語言應使用printf而非cout。
浮點數轉整數與輸出語法比較
| 語言 | 賦值行為 (int a = 3.8) | 標準輸出語法 |
|---|
| C語言 | 無條件捨去小數 (a=3) | printf("%d", a); |
| C++ | 無條件捨去小數 (a=3) | cout << a; |
考生常誤以為浮點數轉整數會自動「四捨五入」,但C/C++預設是「無條件捨去」(直接截斷小數)。另外,題目故意寫「C語言」卻用C++的「cout」,這也是個隱藏陷阱!