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

2021-03-04 08:50:03 字數 1312 閱讀 2632

1樓:

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

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

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

b=20

2樓:匿名使用者

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

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

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

3樓:悟曉曼聞盼

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

為什麼int a=10;int b=~a;輸出b的值確實-11呢?

4樓:匿名使用者

~號是取反符

10的二進位制表示為 00001010(int為32位,多餘的0省,假設為8位)

b的值為對10的二進位製取反,即 11110101 (最高位為1,所以為負數,負數用補碼表示,該值剛好是-11的補碼)

所以b的值為-11

5樓:匿名使用者

因為int型為有符號的兩個位元組,即a=10化成二進位制為0000,0000,0000,1010;再取反,即為1111,1111,1111,0101這就是b!此時將b化成10進製為-32757。但在輸出時系統自動化為-32768+32757=-11儲存

6樓:聽不清啊

這是正確的去處啊。補碼就是這樣表達的。

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

7樓:匿名使用者

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

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

8樓:gta小雞

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

9樓:孤獨

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

己知a26ab10b22b10求ab的值

解 a 6ab 10b 2b 1 0 a 6ab 9b b 2b 1 0 a 3b b 1 0 兩個非負數相加等於零,則每乙個數都為零 即 a 3b 0,b 1 0 解得 b 1 a 3,所以a b 4 a 6ab 9b b 2b 1 0 a 3b b 1 0a 3b b 1 a 3 1 3 a b...

以下程式的執行結果是inta10,b50,c30ifa

程式的執行結果是 105010 因為a b為假,所以後續語句不執行,只執行無條件語句c a 最後的輸出就是 105010 int a 10,b 50,c 30 if a 結果應該是 a 10 b 30 c 10 因為a b是在if的作用域內部,其他兩個賦值版都不是所以權a b不成立,a b不執行 b...

a,b和是13 2,a是b的10倍,ab各是多少

因為他們是五倍的關係。所以結果是,a 48 1 5 8,b就是48 8 40。a是b的2.5倍,比b多45ab各多少?設b為x,則a 因為a比b多45,所以a b 45,將a,b用x代入得 解得x 30,所以a 75,b 30 望採納,謝謝。三位數a和二位數b的和是521,ab約等於13,a和b各是...