Q11234 % 10 的結果?預測輸出
4。% 10 取餘數=個位數。
Q2printf("%d", 7 / 3) 輸出?預測輸出
2。兩個 int 相除是整數除法,截斷小數。要小數用 7.0/3。
Q3int a=5,b=3; 則 (a>b)+(a==5)+(b!=3) =?概念
2。關係結果是 0/1:(5>3)+(5==5)+(3!=3) = 1+1+0 = 2。
Q4printf("%d", 3 > 2 > 1) 輸出?預測輸出
0。由左到右:(3>2)=1,再 1>1=0。不是數學連續比較,要寫 3>2 && 2>1。
Q5int x=5; if (x = 3) {...} 會怎樣?抓 bug
永遠執行。x = 3 是指派、回傳 3(非零=真),且把 x 改成 3。要比較用 ==。
Q6int x=0; if (x != 0 && 10/x > 2),會除以零嗎?概念
不會。&& 左邊 x!=0 為假就短路、右邊 10/x 不執行。這是常見的安全寫法。
Q7int i=5, a=i++; 之後 a 的值?預測輸出
5。後綴 i++ 先用舊值(5)再加,所以 a=5、之後 i=6。前綴 ++i 才會先加。
Q8C99 中 -7 % 3 的結果?概念
-1。餘數符號跟被除數一致:-7/3=-2、-2×3+(-1)=-7。
Q9C 語言中,if 條件怎樣算「真」?
非零=真、0=假。C 沒有原生 bool(C99 才有 _Bool)。
Q10int j=5, b=++j; 之後 b 的值?預測輸出
6。前綴 ++j 先加再用,b=6、j=6。