統測
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 專屬家教
哇,恭喜你答對了!你的程式觀念真的掌握得好紮實喔!
- 觀念驗證: 這題的核心概念很棒,它想引導我們去複習重要的運算子優先順序 (Operator Precedence) 和 位移運算 (Bitwise Shift) 呢!
▼ 還有更多解析內容