民國110年 普通考試 電子工程 計算機概要
第30題
下列C 程式語言的指令執行完之後,會產生什麼輸出?inti=1,j=1;while(i<100){i*=j++;}printf("i=%d,j=%d", i,j…
題目
下列C 程式語言的指令執行完之後,會產生什麼輸出?inti=1,j=1;while(i<100){i*=j++;}printf("i=%d,j=%d", i,j); A. i=120, j=5 B. i=120, j=6 C. i=128, j=6 D. i=128, j=7
官方答案
- 答案:B. i=120, j=6
解析
i*=j++ 是先取 j 目前的值參與乘法,再把 j 加一。初始 i=1、j=1:第一次 i=1×1=1、j=2;第二次 i=1×2=2、j=3;第三次 i=2×3=6、j=4;第四次 i=6×4=24、j=5;第五次 i=24×5=120、j=6。此時判斷 i<100 為 120<100 不成立,迴圈結束,故輸出 i=120、j=6。C 與 D 的 128 是把乘法誤作每次乘 2 的次方累乘;A 的 j=5 則是漏算最後一次遞增,因為 j++ 在該次運算後仍會執行。正確為 B。
AI 參考解析(推得答案已與官方答案比對一致),非官方公告內容,僅供備考參考。
官方資料
答案以考選部公告之測驗式試題標準答案 PDF 為準。