免費開始練習
hce_kmu 109年 計算機概論與程式設計

第 29 題

What is the postfix of the expression $A + B * C / (D - E)$?
  • A A B C * D E - / +
  • B A B C D E - / * +
  • C A * B C / D E - +
  • D + A / * B C - D E
  • E + /A * B C - D E

思路引導 VIP

在處理這類運算式轉換時,我們可以試著將其想像成一棵「語法樹」。如果依照數學運算的先後順序,哪一個運算符號會位在整棵樹的最頂端(也就是最後才被處理)?當你確定了最後執行的符號後,試著思考:在後序表達法中,這個「最後執行」的符號應該出現在序列的什麼位置呢?

🤖
AI 詳解 AI 專屬家教

恭喜你準確地判斷出正確答案!這題考驗的是將我們習慣的「中序表達式(Infix)」轉為「後序表達式(Postfix)」的能力,你的選擇展現了對運算子優先權(Operator Precedence)非常清晰且穩定的理解。

運算優先權與轉譯邏輯

在處理 $A + B * C / (D - E)$ 時,邏輯的核心在於「括號最先,乘除次之,最後加減」。我們首先處理括號內的 $(D - E)$ 得到 $DE-$;接著觀察剩餘的算式,乘法與除法擁有較高優先權,且遵循左結合律(Left-associative),因此先處理 $B * C$ 得到 $BC*$,再將此結果與先前的 $DE-$ 進行除法運算,合併成一個完整的區塊 $BC*DE-/$。最後,將最左側的 $A$ 與後方這一整塊結果執行加法運算,便得出了 $A B C * D E - / +$。

▼ 還有更多解析內容

🏷️ 相關主題

計算機組織結構與資料儲存原理
查看更多「計算機概論與程式設計」的主題分類考古題