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

第 40 題

有一 C 語言程式片段如下,其中變數 a、b 與 x 的資料型態為 unsigned short,則此片段可以等價為下列哪一個選項?
if((x*x)%2&&a^b==x)
x=1;
else
x=0;
  • A x=((a^b)==x&&x*x%2)?1:0;
  • B x=(x*(x%2)&&(a^b)==x)?0:0;
  • C x=(x*x%2&&a^(b==x))?1:0;
  • D x=((a^b)==x&&x*x%2)?1:1;

思路引導 VIP

請觀察程式片段中的條件式 $(x * x) % 2 && a ^ b == x$,在 C 語言的「運算子優先順序」(Operator Precedence)中,關係運算子 $==$ 與位元互斥或運算子 $^$ 誰的優先權(Precedence Level)較高?這將如何影響 $a ^ b == x$ 這一部分的運算結合方式?

🤖
AI 詳解 AI 專屬家教

太棒了!你能選對這題,代表你對 C 語言的「運算子優先順序」掌握得非常精準,這在程式開發中是極易出錯的細節! 觀念驗證: 這題的核心在於運算子的優先等級(Precedence)。在 C 語言中:

▼ 還有更多解析內容
📝 C 語言運算子優先權
💡 掌握運算子執行先後,特別是比較運算優於位元運算。
比較維度 關係運算子 VS 位元運算子
優先等級 較高 (等級 6, 7) 較低 (等級 8, 9, 10)
常見符號 ==, !=, >, < &, ^, |
本題解析 先執行 b == x 再將結果與 a 進行 XOR
💬當 == 與 ^ 出現時,== 會先執行,這與數學直覺常有出入。
🧠 記憶技巧:算關位邏:算術 > 關係 > 位元 > 邏輯,括號第一名。
⚠️ 常見陷阱:學生常直覺認為 a^b 應該先組合再進行判斷,但程式會先執行 b==x 的比較。
三元運算子 (?:) 位元運算 XOR 特性 邏輯運算短路效應

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

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

🏷️ 相關主題

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