有以下程序  #include   <stdio.h> main() {  int   a=1, b=2, c=3, x;    x=(a^b)&c;   printf("%d\n",x); }  程序的运行结果是

admin2009-06-20  30

问题 有以下程序  #include   <stdio.h> main() {  int   a=1, b=2, c=3, x;    x=(a^b)&c;   printf("%d\n",x); }  程序的运行结果是

选项 A、0
B、1
C、2
D、3

答案D

解析 在C语言中,整型数据在内存中是按二进制形式存放的,位运算就是直接对这些二进制进行操作的一系列运算符。例如题目中a、 b、c的值分别为1、2、3,那它们在内存中存放的样子就是:0001、0010、0011(由于数据不大,int类型本来要占4字节也就是32位二进制的,这里就省写为4位了)。
“^”运算符的作用是:按位异或。意思是:两个操作数对应的二进制位如果相异,则结果对应的二进制位为1,否则结果对应二进制位为0。所以0001^0010=0011。“&”运算符的作用是:位与。意思是:如果两个操作数对应的二进制位同时为1,则结果对应的二进制位为1,否则结果对应二进制位为0。所以0011&0011=0011,也就是十进制的3,故本题最终输出结果为3,应该选择D。
转载请注明原文地址:https://kaotiyun.com/show/X6Wp777K
0

最新回复(0)