民國114年 第3梯次 數位電子乙級 學科
第67題
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
官方答案
(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 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。