免費開始練習
統測 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 語言運算子對應到布林符號:

▼ 還有更多解析內容

升級 VIP 解鎖