民國110年 第2梯次 電腦軟體設計(C++)乙級 學科

第46題

假設x 為一整數變數,且x 已有初始值若有一C 程式片段如下,請問其執行效果等同下列何者?

題目

假設x 為一整數變數,且x 已有初始值若有一C 程式片段如下,請問其執行效果等同下列何者?

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

官方資料