民國113年 第3梯次 數位電子乙級 學科

第71題

C 語言程式中,if(y<0) x=-y ; else x=y;使用『?:』替換,可寫成

題目

C 語言程式中,if(y<0) x=-y ; else x=y;使用『?:』替換,可寫成

  1. (1) x=y<0?y:-y
  2. (2) x=y<0?-y:y
  3. (3) x=y>0?y:-y
  4. (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 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料