void mainint y 3,x 3,z 1 printfd d nx,yz 2輸出的結果為什麼?求詳細解及思路

2021-03-27 14:17:35 字數 3764 閱讀 3881

1樓:匿名使用者

3**rintf("%d%d\n",(++x,y++),z+2);

第一個%d輸出

時,是(++x,y++)的值,裡面有個逗號,逗號是輸出最右邊的,所以應該是輸出y++;y++時,先取再加,就是先輸出y,再自增1,所以第一個輸出3

第二個就容易了,就是輸出z+2,也就是3

2樓:毒硫酸

c語言提供一種特殊的運算子,逗號運算子,優先順序別最低,它將兩個及其以上的式子聯接起來,從左往右逐個計算表示式,整個表示式的值為最後一個表示式的值。如:(3+5,6+8)稱為逗號表示式,其求解過程先表示式1,後表示式2,整個表示式值是表示式2的值,如:

(3+5,6+8)的值是14,a=(a=3*5,a*4)的值是60,而(a=3*5,a*4)的值是60,

a的值是15。

a++表示先把a的值代入函式再令a+1,++a表示先令a+1再代入函式

不用多說了吧

3樓:

輸出33。z+2==3,(++x,y++)是逗號表示式,只取最後一個y++,後++取值後才執行,所以兩個都是3。

4樓:

輸出 33

逗號表示式的值為最右邊的值,所以(++x,y++)的值為y++,等於3,因為++操作在計算之後才進行。

z+2 = 1+2 = 3

所以最終的結果為33

void main() {int y=3,x=3,z=1; printf(%d %d\n,(++x

5樓:匿名使用者

這裡 (++x,y++), 被整體用括號括起來了,所以這個是被當做一個元素處理的。

中間的逗號不是內printf引數分隔容的作用,而是形成了一個逗號語句。

這樣 它的值就是逗號語句定義的,最後一個元素的值。即(++x,y++),在輸出上,等效於y++所以輸出的是3,3

6樓:匿名使用者

(++x, y++)這整個是一個

bai逗號表達du式,逗號表示式的運zhi算規則是從左往右依次dao計算,並返回最回後一個表示式的值,所以返回輸出答的是y++這裡++放在了y的後面,所以是先輸出y,再進行y=y+1運算,所以最後是輸出3 3

有段c語言程式、求輸出結果:main()int y=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);求執行結果,多謝

7樓:楊兵

答案是:3 3

輸出的值y++和z+2兩個數的值

其中(++x,y++)只能輸出一個值作為%d輸出,(++x,y++)中包含「,」運算子,它的運算規律是從左至右執行,所以輸出的值只能為y(值為3),然後再進行y++運算

下一個%d的值為z+2(值為3)

執行結果為:3 3

樓主可以在編譯環境中試一下下面的程式,就知道答案的正確性了:

#include

void main()

8樓:匿名使用者

3**rintf("%d%d\n",(++x,y++),z+2);

第一個%d輸出時,是(++x,y++)的值,裡面有個逗號,逗號是輸出最右邊的,所以應該是輸出y++;y++時,先取再加,就是先輸出y,再自增1,所以第一個輸出3

第二個就容易了,就是輸出z+2,也就是3

有如下程式 main() {int y=3,x=3,z=1; printf("%d %d\n",(++x,y++),z+2); } 執行該程式的輸出結果是 a.3 4

9樓:匿名使用者

3 3(++x,y++)為逗號表示式輸出的會使y++;

但y++時,y還是3,等下一條語句開始才變為4;

z+2=3;

有如下程式 main0{int y=3,x=3,z=1;printf(「%d %d\n」,(++x,y++),z+2);} 答案為什是3 3

10樓:匿名使用者

這是逗號

表示式bai的用法,在逗號表示式du中,總體的值是逗zhi號後面那個dao

式子值,比如a=(5,6),a的值應該是專6;

上面式子中(++x,y++)相當於y++,那個屬 printf語句其實跟printf(「%d %d\n」,y++,z+2)效果是一樣的.後面那個3就是1+2=3

#include main() { int y=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2) }的值。是怎麼運算的?

11樓:留在楓樹

我來給你詳細說說:

(++x,y++),這是逗號表示式,先執行++x,然後執行y++;結果取逗號後面表示式的值,也就是y++的值。y++的值為3,因為這是後加表示式,如果是前加++y的話,值就是4;

z+2的值是1+2=3;

所以結果輸出是3 3

12樓:

1 本題考查的是逗號表示式知識點,逗號表示式的值是最後一個表示式的值。

2 (++x,y++)這個逗號表示式的值是最後一個表示式y++的值,而y++的值是3。

3 程式最後輸出:33

4 第一個3是(++x,y++)這個逗號表示式的值,第二個3是z+2這個表示式的值。

13樓:cc暖調調

首先哦 printf 那個語句少了個分號~printf是個輸出語句 輸出這個%d%d\n\n是換行

第一個%d指(++x,y++)這個的值 括號是為了區分。重點是 逗號運算。 它 第一步 先把++x的值算出來,從左到右先+1再用x 所以最後++x的值是4。

第二步 把y++的值算出來 從左到右 先用y再+1. 所以y++的值是3。 第三步 把y++的值賦給%d 。

所以第一個%d的值是 3。

第二個%d 1+2=3 所以也是3.

最後輸出 33

14樓:蘇東坡的哥們

輸出(++x,y++)和z+2的值,其中(++x,y++)就是輸出y的值,y++就是先輸出y再自加1,++y就是加1在輸出y,x沒他什麼事;

#include main() {int y=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2);} printf語句是怎麼執行的

15樓:匿名使用者

printf執行結果為 3 ,3

第二個%d 是z+2 為3

第一個%d 是 (++x ,y++)表示 先執行 ++x , x變為4 ,然後輸出 y 的值為3 ,在執行 y++ ,y 為4;

16樓:匿名使用者

輸出的時候將兩個%d依次被(++x,y++),z+2代替%d表示輸出int型資料值

\n表示換行

你再不懂我也沒辦法了。。。

17樓:匿名使用者

這麼簡單也不會,把基礎打好去吧!!

#include int main() { int y=3,x=3,z=1; printf("%d%d\n",(++x,y++),z+2); 為什輸出的是33

18樓:智慧教室

逗號運算子,只取最後一個引數,(++x,y++)其實就是y++,z+2=3,其中++x的值為4,y++的值為3,x,y的值都為4

A 2x3x3x5,B 2x2x3X7,A和B的最大公因數是最小公倍數是

2 3 6 最大公因數是6 3 5 2 7 2 3 1260 最小公倍數是1260 6,2.3.5.3.2.7 如果a 2x3x5x7 b 2x3x3x5那麼a和b最大公因數是 最小公倍數是 如果a 2x3x5x7 b 2x3x3x5那麼a和b最大公因數是 30 最小公倍數是 630 最大公因數,也...

解方程 3 x 210 x ,解方程 3 x 2 10 x

3 x 2 10 x 2 5 3 x 2 10 x 2 5 x 2 x 2 3x 6 10x 20 5x 20 5x 13x 6 0 5x 2 x 3 0 x1 2 5,x2 3 經檢bai驗du 都是zhi 方程dao的版根權 3 x 2 10 x 2 5 兩邊同時乘以 x 2 x 2 可以得到3...

2x 3 x 3這個方程怎麼解?

你好 2x 3 x 3 解2x x 3 3 x 6這道題考察的是移項合併同類項。我幫你答題,你幫我。你的肯定是我的動力。你的支援鼓勵我繼續前行。如果還有其他的問題。請點選我的頭像向我提問。您好 2x 3 x 3 2x x 3 3 x 6 如果你認可我的,請及時點選 為滿意 按鈕 手機提問者在客戶端右...