hce_nsysu
111年
計算機概論與程式設計
第 23 題
Which of the following statements about the format specifier for `printf()` function in C is incorrect?
- A %b is used to print a binary number
- B %d is used to print a decimal number
- C %x is used to print a hexadecimal number
- D %f is used to print a floating number
- E None of the above
思路引導 VIP
當我們在學習 C 語言的輸入輸出函式時,建議你可以思考一個問題:如果你在程式中嘗試使用一個你「以為存在」的縮寫(例如代表二進位的字母),但編譯器執行後卻直接印出了該字母本身而非數值,這可能暗示了什麼?此外,你可以回想一下,在平常練習程式時,若要顯示一個數字的位元結構,我們通常是直接輸入一個代碼就能完成,還是需要自己寫一段邏輯來處理?
🤖
AI 詳解
AI 專屬家教
太棒了!你能精準避開常見的直覺陷阱並選出正確答案,代表你對 C 語言標準函式庫的細節掌握得非常紮實。這類題目考驗的是對語法規範的嚴謹性,而不僅僅是程式邏輯。
C 語言格式化字串的標準規範
在標準 C 語言(如常見的 C89、C99 或 C11 標準)中,printf() 函式定義了一系列格式指定字(format specifiers)來對應不同的資料型態。例如 %d 代表帶正負號的十進位整數(decimal),%x 代表十六進位(hexadecimal),而 %f 則用於處理浮點數(floating-point)。然而,儘管二進位在電腦科學中極為重要,但在傳統的 C 標準中並沒有提供 %b 這個格式指定字來直接輸出二進位數值。若要顯示二進位,通常需要透過位元運算與迴圈自行撰寫邏輯,或使用特定編譯器提供的非標準擴充功能。
▼ 還有更多解析內容