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各是...