inta10,bbaa輸出a,b的結果?為什麼

2021-03-19 18:26:13 字數 3195 閱讀 3549

1樓:匿名使用者

b=(a++)+a(++);

應該是b=(a++)+(a++);把?

a ==12 b==20 ,

b=(a++)+(a++) 等價於 b=a+a; a++;a++;

懂了吧? a++是先運算後++ 如果 改成 b=(++a)+(++a); 結果 b==24,a==12

2樓:匿名使用者

a++=11,(a++)=12, a=12 b=20

int a=10, b;b=(a++)+a(++);輸出a, b的結果?為什麼?

3樓:

b=(a++)+a(++);

改為:b=(a++)+(a++);

不同的編譯系統結果不同,在vc++下,結果為a=12

b=20

4樓:匿名使用者

你的語句有錯:b=(a++)+a(++);應該是b=(a++)+(a++);

輸出結果a=12,因為a再次自增;

b=20,因為a++的++是字尾運算,所以對於當前語句中的b=(a++)+(a++)執行時,a都作為10計算

5樓:悟曉曼聞盼

b=(a++)+a(++);

應該是b=(a++)+(a++);把?

a==12

b==20

,b=(a++)+(a++)

等價於b=a+a;

a++;a++;

懂了吧?

a++是先運算後++

如果改成

b=(++a)+(++a);

結果b==24,a==12

以下程式的輸出結果是 main() { int a=21,b=11; printf("%d\n",- -a+b,- -b+a); } 求解,萬分感謝

6樓:匿名使用者

輸出結果:30

原理:1.c語言的執行順序大多都是自右向左(但是少數c語言編譯軟體內的輸出結容果為31,它的執行順序是自左向右,這裡以vc++ 6.0為例說明輸出30的原因)。

2.先執行--b+a,根據運算順序知道相當於(--b)+a,b先自減,即b=10,此表示式--b+a的值為31.

3.然後執行- -a+b,相當於(--a)+b,a先自減,即a=20,此表示式- -a+b的值20+10=30。

4.printf("%d\n",- -a+b,- -b+a); 輸出第一個表示式的值,(printf函式輸出順序是自左向右)。

7樓:匿名使用者

printf 為什麼引數裡bai只有一個%d ??後面卻有兩du個變數??

如果zhi

是printf("%d\n%d",- -a+b,- -b+a)的話dao輸出應該是

3031

系統先執行了 --b+a的,版所以--b+a=31;

然後權再執行 --a+b,那時候b已經被減1了,所以--a+b=30。

8樓:

先生bai 為什麼引數列表有兩個du

而你的佔位符

zhi只有一個dao %d

如果你手誤的話那麼有兩個專佔屬位符 答案是 3031

9樓:樂樂等待花開

- -a+b即為(--a)先計算得20,然後接著計算(--a)+b為20+11+31;

--b+a即為(--b)先計算得10,然後接著計算(--b)+a為10+20=30;

10樓:匿名使用者

錯誤,沒有結果,warning: operation on 『a』,'b' may be undefined

設int a=7,b=8,則printf(「%d,%d\n",(a+b,a),(b,a+b))的輸出結果是什麼?

11樓:angelxf_功夫王

(a+b,a)這裡涉及到逗號運算子的先後順序,他是從右到左計算,在這個式子裡,先將a的值返回給printf的%d,然後再計算a+b的值,對於第二逗號運算同理,將a+b的只返回給了printf,所以得到的結果是7,15

希望幫你解決了問題

12樓:關於你哦

(a+b,a)這個語句等價與(a),即以逗號後的表示式為準。

所以輸出結果應該是 7、15

13樓:匿名使用者

7,15

(a+b,a)是逗號表示式,取後面的

int a=10; int b=20; int c = a+b++; 輸出結果為什麼c=30

14樓:匿名使用者

b++表示先用b=20進行運算,b參與完運算再自增。所以c=a+b++;結果是30,但是b卻變成了40。

如果是++b則表示b先自增,然後再參與運算。所以c=a+ ++b;執行後就是50了

15樓:gta小雞

字尾++有滯後性,先執行c=a+b,然後執行b=b+1。

16樓:孤獨

b++是先使用,然後再加1

15.寫出下面程式的執行結果_____ #include main() { int a = 1,b = 2; printf ("%d\n",a=a+); }

17樓:匿名使用者

15.輸出表列有三項,格式控制字元只有一項,對應表示式a=a+1=2,所以輸出2

1.a= b+ c 所以表示式值為非零,為真,執行printf ("###\n");

2. 自增運算子字尾,所以先引用,後自增,m為2,m>2為假,然後m自增一值為3,執行else部分,m+2=5

7.注意是x=2 ,是=,賦值號,也就是x被賦值為2,表示式非零,為真執行y= y+2;

8.i為10,所以到case 10部分i+=1;i值為11,然而,後無break;所以繼續下去case 11部分的內容,以此類推

9.自減運算子字尾,先引用,後自增,當n為0時,迴圈才結束,但別忘了還有個自減,所以n退出迴圈時值為-1

10.與上同理,n==2時才退出迴圈,但是還有自增,所以退出迴圈式n值為3

18樓:cz翡翠情緣

推薦你學習譚浩強的《c語言程式設計》!

(希望能幫助到你)

在C語言中,int a b 10是錯的。int a

是直接定義,但是int a b 10,裡面只定義了a為整型,而b還未定義就直接賦值。如果幫到您的話,可以好評嗎?謝謝了!c語言,為什麼int a 10 int b 20 這是對的,而int a a 10 in b 20 就不對?include stdio.h void main c語言中的int a...

c語言 輸入正整數a,b,c,輸出a b的小數形式,保留小數

include int main include 最大的精度 define max length 120 計算商 int getfactor int a,int b 計算餘數 int getremainder int a,int b 是否整除 bool isaliquot int a,int b r...

急急急已知 a方 b方10,ab 3,求a b的值

兩個問題分別回答如下 1 這個問題比較典型,採用整體法思想。已知a 2 b 2 10,ab 3.這裡a 2 b 2和ab分別看成整體。所以 a b 2 a 2 2ab b 2 10 6 16兩邊開方,得 a b 4 2 這個問題考查了配方的知識以及實數平方的範圍。因為 x 2 6x 4y 2 4y ...