Q96.
下列那些對運算式a/(b+c)*d-e 的敘述為正確?
電腦軟體設計共同科目 · 乙級 · Q96
難易度分析
4 / 5
本題要求同時掌握前置式與後置式的轉換邏輯,且屬於多選題型,必須對所有選項的正確性進行完整判別。由於涉及運算優先級的分析以及複雜的符號順序推導,對精確度要求較高。
正確答案 (複選):①, ②
- ① 其前置式(Prefix)為 -*/a+bcde:前置式(Prefix) 轉換需從運算樹根節點開始,最後運算為減號 `-`,左子樹依序為乘法 `*`、除法 `/`、加法 `+`,故結果為 `-*/a+bcde`,符合運算式樹狀結構的前序走訪規則。
- ② 其後置式(Postfix)為 abc+/d*e-:後置式(Postfix) 轉換採用後序走訪,依序輸出運算元後再輸出運算子,括號內 `b c +` 優先處理,接著 `/`、`d`、`*`、`e`、`-`,結果為 `abc+/d*e-`,符合堆疊運算的正確順序。
錯誤選項解析
- ③ 其前置式(Prefix)為 -*/+bcade:此前置式 `-*/+bcade` 錯誤地將 `+bc` 置於 `a` 之前,正確的前置式應為 `-*/a+bcde`,運算元 `a` 必須緊接在除法 `/` 之後,此選項違反運算樹前序走訪的節點輸出順序。
- ④ 其後置式(Postfix)為 abc+d/e-:此後置式 `abc+d/e-` 遺漏了乘法運算子 `*` 且順序錯誤,正確的後置式應為 `abc+/d*e-`,除法 `/` 應在 `+` 之後、`d` 之前出現,此選項不符合運算式樹狀結構的後序走訪結果。
Learning Tip
"前置式與後置式轉換的核心在於建構運算式樹:前置式採前序走訪(根→左→右),後置式採後序走訪(左→右→根)。常考陷阱包括:① 忽略運算子優先順序導致樹狀結構錯誤,② 混淆左結合性(如 `/` 與 `*` 同優先級時由左至右),③ 後置式遺漏運算子或運算元順序顛倒。實務上可利用堆疊法驗證:後置式由左至右掃描,遇運算子即彈出兩個運算元進行運算,最終堆疊應剩唯一結果。"
學員答題分佈
①其前置式(Prefix)為 -*/a+bcde0%
②其後置式(Postfix)為 abc+/d*e-0%
③其前置式(Prefix)為 -*/+bcade0%
④其後置式(Postfix)為 abc+d/e-0%
此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!
相似類型題目
下列那些對運算式(a+1)/(3-d)的敘述為正確?
運算式:A-B×(C+D)+E/F 的前序式(Prefix)表示法為何?
假設有一個infix 運算式(A – B) * (C + D),我們建造其所對應的運算樹(Expression Tree),下列那些正確?
一運算式如下:a-b/c+d*e/a+3,若採用左結合律(Left Associativity),並依照優先順序(Precedence)由高至低排列((((a-b)/(c+d))✽e)/(a+3)),下述運算子(Operator)的先後順序何者正確?
假設有一個Postfix 運算式A B + C / C B + D * +,而其值為A=3,B=6,C=3,D=2 。該運算式執行之後,十位數為m,個位數為n,下列那些正確?