運算與表達式 · 複習測驗

10 題涵蓋算術、關係、邏輯、短路、遞增遞減 · 達 90% 放行
尚未作答
作答後按交卷自動算正確率:≥ 90% 過關;未達則回 Quizlet / 講義 複習再測。每題交卷後顯示正解與解析。

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。