Q1printf("%d", 'C' - 'A') 輸出?預測輸出
2。'C'=67、'A'=65,相減得 2。常用來把字元轉成索引。
Q2printf("%c", 'a' - 32) 輸出?預測輸出
A。'a'=97,減 32 = 65 = 'A'(小寫轉大寫)。用 %c 印成字元。
Q3要存「平均成績 87.5」,該用什麼型態?
double。有小數要用浮點;用 int 會截斷成 87。double 比 float 精度高。
Q4int x = 2147483647; x = x + 1; 之後 x 是?概念
-2147483648。到 int 最大值再 +1 整數溢位、繞回最小負數(不 crash)。需要大數用 long long。
Q50.1 + 0.2 == 0.3 的結果?概念
false。浮點以二進位近似,0.1+0.2 實際是 0.300...004。比較要用容差 fabs(a-0.3)<1e-9。
Q6區域變數 int sum; 沒給初值就 sum += i,問題是?抓 bug
垃圾值、UB。區域變數不會自動歸零;要 int sum = 0;。
Q764-bit 典型平台上 sizeof(int) 通常是?填空
4(bytes)。char=1、double=8。實際以 sizeof 查為準。
Q8字元 '0' 與整數 0 的關係?
不同。'0' 是字元(ASCII 48);c - '0' 才把數字字元轉成整數。
Q9定義常數時,const 比 #define 好在哪?
有型態檢查。#define 是前處理器純文字替換、無型態;const 推薦使用。
Q10char c = '7'; printf("%d", c - '0'); 輸出?預測輸出
7。'7'=55、'0'=48,相減得 7(數字字元轉整數的標準技巧)。