計算機概論 程式輸出問題 - 考試

Table of Contents

下列以 C 程式語言撰寫之程式執行後產生之輸出為何?
#include <stdio.h>
main()
{ int m1=123,m2=5;
while (m2--) {m1%=m2;};
printf(“%d\n”,m1);
}
a.0
b.1
c.本程式編譯時,編譯器(Compiler)發出錯誤訊息,不能執行而無輸出結果產生
d.本程式執行時,發生錯誤,故無輸出結果產生
答案為D
請問一下各位高手,是while(m2--)所造成的問題嗎?還是哪一個環節的問題啊?

--

All Comments

Kyle avatarKyle2014-07-21
while迴圈外的分號?
Olivia avatarOlivia2014-07-24
我猜可能是m2==0時,發生/0的錯誤
Tristan Cohan avatarTristan Cohan2014-07-24
樓上正解
Ina avatarIna2014-07-27
因為while會先判斷m2,如果m2為1時為true,再減減,之
後再進迴圈,此時m2等於0
Mary avatarMary2014-07-27
後置-進迴圈才- 會有m2=1進入迴圈後又變%0的情形
Eartha avatarEartha2014-08-01
thanks