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

第67題

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

官方答案

(1) x=y>0?y:-y、(3) x=y<0?-y:y

解析

條件運算子的語法為「條件 ? 真值 : 假值」。原式在 y<0 時令 x=-y,否則 x=y,直接改寫即 x = y<0 ? -y : y,故選項 3 正確。選項 1 寫成 y>0 ? y : -y:y>0 取 y、y<0 取 -y、y=0 取 -0=0,結果與原式完全相同,因此也是正確的改寫。選項 2 把真假值顛倒,y<0 時反而取負的 y,數值錯誤;選項 4 將結果指定給 y,賦值對象錯誤。

AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。

官方資料