int a=3,b=4; a=a^b; b=b^a; a=a^b; 则执行以上语句后a和b的值分别是____。 A) a=3,b=4 B) a=4,b=3 C

A) a=3,b=4 B) a=4,b=3 C) a=4,b=4 D) a=3,b=3
告诉我如何求解的

第一次

a=0011
b=0100
用异或运算法则(相同为0不同为1)得出a=0111
第二次(此时的a值为上一次算出的值)
a=0111
b=0100
得出b=0011
第三次
b=0011
a=0111得出a=0100
a,b的值就是最后算出的值既a=0100,b=0011
也就是说a=4,b=3
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-25
B ^符号是异或运算 先将a b写成2进制
a=0011
b=0100运算后
a=0111以此类推
第2个回答  2011-04-25
B追问

帅哥,麻烦告诉我如何求解的

追答

^:是按位异或运算,完全相同得0,完全不同为1
a=0000 0011
b=0000 0100
a=a^b 这时a = 0000 0111 =7 然后
b=b^a 这时b = 0000 0011 = 3 然后
a=a^b 这时 a = 0000 0100 = 4 最后
a = 4,b = 3
幸好是正数,如果是负数要写全32位。

本回答被提问者采纳