民國110年 第2梯次 電腦軟體設計(C++)乙級 學科
第46題
假設x 為一整數變數,且x 已有初始值若有一C 程式片段如下,請問其執行效果等同下列何者?
題目
假設x 為一整數變數,且x 已有初始值若有一C 程式片段如下,請問其執行效果等同下列何者?
- (1) if((x>5)&&(x<10))x=2;
- (2) if((x>5 )||(x<10))x =0;
- (3) if(x<10)x =2 else if(x>5)x=0;
- (4) if(x<10)x =2 else if(x<5)x=0;
官方答案
(3) if(x<10)x =2 else if(x>5)x=0;
解析
此片段是 if-else if 的串接結構:先判斷 x<10,成立就把 x 設為 2;不成立時才進入 else,再判斷 x>5,成立則把 x 設為 0。C 的 else 會與最近且尚未配對的 if 結合,兩層判斷互斥且有先後順序,效果等同選項3。選項1以 AND 串接,只處理 5<x<10 的情形,其餘 x 不會被設定;選項2以 OR 串接,x<10 或 x>5 幾乎恆真,會把 x 設成 0,行為不同。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。