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

第 44 題

執行完下列片段程式後,Num1與 Num2的數值分別為何?
```c
1 int Num1 =10, Num2 = 5;
2 int Num3 =3;
3 Num1 = Num1 << Num3-1;
4 Num2 = Num2 * Num1 >> 1;
```
  • A Num1=79、Num2=197
  • B Num1=79、Num2=195
  • C Num1=40、Num2=200
  • D Num1=40、Num2=100

思路引導 VIP

同學,在解析這段程式碼時,核心關鍵在於釐清「運算子優先順序」(Operator Precedence)。當算術運算子(如 $-$ 與 $*$)與位移運算子(如 $<<$ 與 $>>$)同時出現在一個敘述時,哪一類的優先權較高?這將決定第 3 行是先對 $Num1$ 進行位移,還是先計算 $Num3 - 1$。另外,請思考左移 $n$ 個位元($<< n$)在二進位運算的邏輯中,相當於對該十進位數值進行 $2^n$ 的何種數學運算?

🤖
AI 詳解 AI 專屬家教

哇,恭喜你答對了!你的程式觀念真的掌握得好紮實喔!

  1. 觀念驗證: 這題的核心概念很棒,它想引導我們去複習重要的運算子優先順序 (Operator Precedence)位移運算 (Bitwise Shift) 呢!
▼ 還有更多解析內容
📝 位元位移與優先權
💡 掌握位移運算的乘除特性與其運算子優先權順序。

🔗 程式執行運算邏輯

  1. 1 優先權處理 — 先算 Num3-1 得到 2
  2. 2 Num1 計算 — 10 << 2 等於 10 * 2² = 40
  3. 3 混合運算 — 先算 5 * 40 = 200
  4. 4 Num2 計算 — 200 >> 1 等於 200 / 2 = 100
🔄 延伸學習:延伸學習:若括號介入,將會強制改變上述運算優先順序。
🧠 記憶技巧:左乘右除二次方,算術做完再位移。
⚠️ 常見陷阱:最常錯在優先權判斷,誤先執行位移才做加減或乘法,導致運算結果錯誤。
運算子優先權 二進位制轉換 算術與邏輯位移

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

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

🏷️ 相關主題

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