C語言下面程式的執行結果是

2022-02-28 23:41:53 字數 1872 閱讀 6041

1樓:匿名使用者

沒有印錯 語句的意思是這兩分句是一條語句 都要執行 它的形式相當於加個括號

x=y=0;

while(x<15)

printf("%d,%d",y,x);

程式是這樣執行的 第一次判斷x<15 y++ 變成1 後面的語句x+=++y;++優先順序比+高 所以y先自加 變成2 x再加y值變成2 所以第一次迴圈完 x=2 y=2 執行完返回while判斷x是否小於15 小於則執行 如果不成立則返回x,y的值

同理一樣 我主要把每次迴圈的結果給你 按照上面我的說法你自己對對哈第一次 x=2 y=2

第二次 x=6 y=4

第三次 x=12 y=6

第四次 x=20 y=8

最後x不小於15 所以返回x,y的值

you clear???

++y用的是自加後的值 不是原來的值

2樓:year醫海無邊

while(y--)

y--是先取值 再自減

所以這裡就是先判斷y是否為0, 不為0則迴圈否則退出迴圈

但無論是否執行迴圈, 判斷後,y都會自減。

3樓:廣州不好也不壞

y++後面是逗號是正確的,書上沒有錯。

如果是分號,那就是死迴圈,不斷的把y的值增加1,x的值沒有變化。

計算語句 x+=++y;的時候,是先把y的值增加1,然後進行x=x+y運費的。y++,x+=++y;這條語句等價於

現在很明瞭了,希望對你有用

4樓:應麟

印錯了,y++後面應該是分號

x+=++y 用的是 y++後的結果

5樓:中國共濟會

書上沒有印錯...逗號的意思是執行過程從左到右進行~例如你這個例子~

x=y=0;

y++,x+=++y;

首先運算y++,則y=1,

接著運算x+=++y:y本來為1,++y之後y為2,x=x+2=2;

y=2,x=2;

首先運算y++,則y=3,

接著運算x+=++y:y本來為3,++y之後y為4,x=x+4=6;

y=4,x=6;

首先運算y++,則y=5,

接著運算x+=++y:y本來為5,++y之後y為6,x=x+6=12;

y=6,x=12;

首先運算y++,則y=7,

接著運算x+=++y:y本來為7,++y之後y為8,x=x+8=20;

y=8,x=20;

因為x>15,所以結束。

得y=8,x=20;

還有哪個不懂可以再問~

6樓:曹桂枝昌倩

結果為f;

這是因為經過strcpy函式之後,a[0]='a',a[1]='b',a[2]='c',a[3]='\0',但並沒有改變a[4],a[5],a[6]的值,其中

a[4]='e',a[5]='f',a[6]='\0'

但是當字串a作為整體輸出時,只輸出abc。遇到結束符號'\0'就結束。

7樓:同悠素

那是逗號運算子

x+=++y ===》

y++;

x=x+y;

8樓:

y++後面應該是分號;就是「;」,c語句用分號結束;上面應該改為while(x<15) {y++;x+=++y;}

y的值是用y++後再一次自加,即是y++後的++y再參與x=x+y運算

9樓:影墨者

書上應該沒印錯,c語言中有逗號運算子,初學的時候基本用不到,具體的看書。

加加在前,就先執行加一的操作,用的是加一後的值。

下面這段C語言程式的執行結果是多少呢?能不能給我詳細解釋一下??感激不盡

int 4位元組 兩個char 2位元組 以16進製表示一個 int 每個xx表示一位元組 就是xx xx xx xx 低址 高址 那麼兩個char就是前兩個xx 程式裡就是 0a 01 00 00 作為int的值就是 0x0000010a 換算成10進位制吧 char型別是一個位元組,int型別是...

c程式執行結果是

下面三句有問題 case 0 printf break case 1 printf break case 2 printf break 改為 case 0 printf break case 1 printf break case 2 printf break 執行結果 第一次錯誤是死迴圈和除數為0...

下面程式的運算結果是,下程式的執行結果是

執行後,會輸出 123 這個程式編譯都無法通過,所以會卡在編譯的地方 下程式的執行結果是 a此題中y,z為靜態變數,程式結束時才會釋放記憶體。第一次呼叫f1 時,內x a 1,z 3,y 0,執行y z 後y 1,z 4 所以返 容回x y z 1 1 4 6.第二次呼叫f1 時,x a 1,z 4...