下列程式段執行後的輸出結果是什麼,為什麼

2021-06-17 08:04:55 字數 743 閱讀 1874

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樓:

結果如下

1-3 (1前面為1空格)a-=3即a=a-3=1

所以第一次列印一個3,由於指定輸出寬度為2(%2d),前面將加一個空格

第一次迴圈結束時,a=1,--a=0,此時a=0,!(--a)即為真,進入第二次迴圈

a=a-3=-3,列印-3(剛好寬度為2)--a=-4,非零整數值均為真值,此時a=-4,!(--a)即為假,跳出迴圈

3樓:飛天飛舞

1 -3 首先a=4執行一次,a=1;輸出

然後dowhile迴圈,輸出a=-3,然後條件為假,跳出迴圈

執行以下程式後,輸出的結果是mainint y 10 do ywhileyprintfd n ,y

選ddo while語句 先執行do裡面的迴圈體,再去判斷while條件是否成立,如果成立,一直執行下去,直到不成立終止迴圈 選d.c語言書上寫有,do 語句 while 表示式 其中語句是迴圈體,先執行後判斷,先執行一次指定的迴圈體語句,然後判別表示式,當表示式的值為非零 真 時,返回重新執行迴圈...

下列程式的輸出結果是1 mainint a 2,b 1,c 2 if a

樓主好!此題的完整寫法是 include void main 輸出的結果是8 11這兩個數。首先你要知道指標的含義,和陣列中陣列名的作用。第一 你定義了一個指標p,並且把a的值賦予給p,這就相當於把一維陣列a 5 的首地址賦予給哦指標p,因為陣列名a就相當於陣列的首地址。所以p指向陣列a 5 的首元...

1有如下程式,該程式的輸出結果是main

int main i,j,s 0 for i 1 i 3 i for j 0 j i j s a i j printf d n s a 2 2 沒賦值為0 include void main i,j,s 0 for i 1 i 3 i for j 0 j printf d n s 執行結果14 以下...