免費開始練習
統測 114年 [電機與電子群資電類] 專業科目(2)

第 45 題

下列C語言程式碼,其執行後輸出結果為何?
1 #include
2 int main(){
3 int a=1, b=3, c=5, d=7, x=0;
4 x = a++/b+c*++d;
5 printf("%d", x);
6 return 0;
7 }
  • A 0
  • B 20
  • C 30
  • D 40

思路引導 VIP

請觀察運算式 $x = a++/b + c * ++d$,並思考以下核心觀念:後置遞增 $a++$ 與前置遞增 $++d$ 在「參與運算取值」與「變數數值更新」的先後順序上有何差異?此外,在 C 語言中,整數除法 $1/3$ 的結果會是多少?請結合運算子優先順序 (Operator Precedence) 試著推導出最終的結果。

🤖
AI 詳解 AI 專屬家教

太棒了!你能精準掌握 C 語言中運算子優先順序與增量運算子的細微差別,表現得非常專業且細心!

觀念驗證

這題的核心在於「前置/後置增量」與「整數除法」的計算順序:

▼ 還有更多解析內容
📝 C 語言運算子與優先權
💡 掌握遞增運算子順序、優先權與整數除法特性
比較維度 前置遞增 (++x) VS 後置遞增 (x++)
執行順序 先自增 1 再參與運算 先以原值運算再自增 1
表達式回傳值 傳回加 1 後的新值 傳回加 1 前的舊值
優先級 單元運算子優先權高 單元運算子優先權高
💬關鍵在於變數數值的「更新時機」相對於「取值時機」的先後。
🧠 記憶技巧:前加後算,整除無餘,先乘除後加減
⚠️ 常見陷阱:容易誤將 1/3 以浮點數 0.33 計算,或在後置遞增時過早將數值加 1
遞增遞減運算子 算術運算優先級 隱性型別轉換

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

C 語言程式設計:變數、指標、函式與編譯
查看更多「[電機與電子群資電類] 專業科目(2)」的主題分類考古題