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

時間 2021-06-17 08:05:52

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,然後條件為假,跳出迴圈

下列程式執行後的輸出結果是

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 14時執行do while迴圈 由於開始時對a賦值10,所以輸出a 10,y 0 堵丹彤牟萱 輸出為 a 16 y 60,分析如下 main while a 14 這裡的迴圈條件不是判斷是否滿足a等於14,而是一個賦值語句,每次執行到這裡都會將14賦值給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,...