1樓:手機使用者
1-3dowhile()型,必定執行一次,所以第一次迴圈,一定會進入這時 printf("%2d",a-=3);
等價於 a=a-3; //(因為a初值為4,所以a=1)
printf("%2d",a) //輸出1while(!(--a));等價 while(!(a-1)); 等價 while(!
(0);因為!0的值為"true" 所以再迴圈1次
a=a-3;等價 a=0-3; 所以 a=-3;
因此又輸出一個"-3"
因為printf中沒有用到換行符"\n" 所以 1 和 -3 是連著的
所以結果是 1-3
(1前面是有一個空格的)
因為是%2d 不足2位 前面有空格補足
2樓:匿名使用者
巨集只是簡單的字串替換,
所以 printf("%d\n",s(i+j))輸出的s(i+j)之後變成了4*6+8*6+8+1。因此結果是81。
正確的巨集定義都是給變數加上括號的,就是為了避免這種問題。
比如:#define s(x) 4*(x)*(x)+1看看這個例子
# include
#define s(x) 4*x*x+1
void main()
執行結果:
78581
press any key to continue
下列程式段執行後的輸出結果是什麼,為什麼
特意經過 1 3dowhile 型,必定執行一次,所以第一次迴圈,一定會進入這時 printf 2d a 3 等價於 a a 3 因為a初值為4,所以a 1 printf 2d a 輸出1while a 等價 while a 1 等價 while 0 因為 0的值為 true 所以再迴圈1次 a a...
有以下程式,程式執行後輸出結果是include《stdio h》mainint i,n 0 for i
尾爽巴澤 結果是31,因為你的程式裡面case 後面都沒有break語句跳出,所以會依次執行下去,知道迴圈結束,具體來說就是當i 1的時候先執行case1,在執行case2,在執行default 此時a 8 然後執行i i 2,然後執行case2,在執行default 此時a先加3在加5就等於16,...
C語言,下列程式的輸出結果是
1全部賦值語句的返回值是所賦的值,因此形如a b 10才能滿足我們所期望的結果。由於int a 7,b 5 那麼b a就是整除運算 b 5小於7 所以b a 0 那麼b b a的值自然也是0 printf d n b b a 當然就輸出0 int 型別 計算結果 直接捨棄小數 a 7,b 5 b a...