close
無聊時來做普考的計概題目,被這2個程式題騙到了= =
-----
第1題.
-----
#include
main()
{ int m1=123,m2=5;
while(m2--) { m1 %= m2;};
printf("%d=n",m1);
}
-----
這題一開始還以為會compile error,因為while那一行最後多出一個;
其實是可以的= =...之後把結果跑完還跑錯XDD
一開始最好把while(m2--)跟{m1%=m2;};拆成兩行來看
因為while的判斷第一次一做完後,m2的值就等於4...
最後當m2的值等於1時,執行while(m2--)的條件還會過
可是之後馬上m2的值就等於0…最後跑進去當除數
就會發生Floating point exception...執行錯誤..
-----
第2題.
-----
#include
#define MAX(a,b) a>b?a:b
int main()
{
int m=10,n=10;
printf("%d",MAX(++n,m));
return 0;
}
-----
用cpp abc.c abc.i先經過前置處理器翻譯後就成了
int main()
{
int m=10,n=10;
printf("%d",++n>m?++n:m);
return 0;
}
最後輸出的結果就是12了...
arrow
arrow
    全站熱搜

    fvalinux 發表在 痞客邦 留言(0) 人氣()