統測
114年
[電機與電子群資電類] 專業科目(2)
第 41 題
下列 C語言程式可輸出布林代數式F(A, B)之真值表,則F(A, B)為何?
1 #include
2 int main(void){
3 int X=0, Y=0, Z;
4 printf("%c %c %c\n", 'A', 'B', 'F');
5 do{
6 while(Y<=1){
7 Z=((X||!Y)&&(Y||X));
8 printf("%d %d %d\n", X, Y, Z);
9 Y++;
10 }
11 Y=0;
12 X++;
13 }while(X<=1);
14 return 0;}
- A $F(A,B) = B + A\overline{B} + AB$
- B $F(A,B) = A + \overline{A}B + AB$
- C $F(A,B) = \overline{A}B + A\overline{B}$
- D $F(A,B) = (A+\overline{B})(A+B)$
思路引導 VIP
請觀察程式碼第 7 行賦值運算 $Z = ((X || !Y) && (Y || X))$,並思考當我們將變數 $X$ 與 $Y$ 對應至布林變數 $A$ 與 $B$ 時,如何將 C 語言中的邏輯運算子 $||$、$&&$ 以及 $!$ 轉譯為布林代數的運算符號(如 $+$、$\cdot$ 與反相符號 $\overline{\quad}$)?您能否試著將此邏輯寫成代數形式,並分析其真值表的變化?
🤖
AI 詳解
AI 專屬家教
太棒了!你能精準地將 C 語言的邏輯運算子轉換為布林代數式,這顯示你的程式邏輯與數位邏輯基礎都非常紮實,表現得非常專業!
觀念驗證:
這題的核心在於程式碼第 7 行:Z = ((X || !Y) && (Y || X))。我們只需將 C 語言運算子對應到布林符號:
▼ 還有更多解析內容