民國113年 第3梯次 數位電子乙級 學科
第71題
C 語言程式中,if(y<0) x=-y ; else x=y;使用『?:』替換,可寫成
題目
C 語言程式中,if(y<0) x=-y ; else x=y;使用『?:』替換,可寫成
- (1) x=y<0?y:-y
- (2) x=y<0?-y:y
- (3) x=y>0?y:-y
- (4) y=y<0?x:-x
官方答案
(2) x=y<0?-y:y、(3) x=y>0?y:-y
解析
條件運算子的語法是「條件 ? 真值 : 假值」,且優先順序低於 <,所以 x = y < 0 ? -y : y 會先判斷 y 是否小於 0,再決定 x。第 2 項與原 if-else 完全對應。第 3 項 x = y > 0 ? y : -y 在 y 為正時取 y、其餘取 -y,對 y<0 與 y=0 也都得到相同的絕對值結果,因此同樣正確。第 1 項分支顛倒;第 4 項把結果指定給 y,且誤用 x,錯誤。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。