下列程序的输出结果是( ) #include void main() { int a = 2,b = 3,c = 0,d; d = a && b

问题描述:

下列程序的输出结果是( ) #include void main() { int a = 2,b = 3,c = 0,d; d = a && b
下列程序的输出结果是( )
#include
void main()
{ int a = 2,b = 3,c = 0,d;
d = a && b ||!c;
printf(“%d\n”,d);
}
选择一个答案
a.1
b.0
c.编译出错
d.-1

A
因为首先要做!a && !b || !c计算,其中a,b都是非0值,c=0,所以!c=1,
那么d = !a && !b || !c = 0 && 0 || 1 = 1
所以d = 1被输出,
希望有用.我以前理解的是a = 2, b = 3, c = 0 , 所以计算!a为真 1,!b为真 1,!c为假 0.. 然后 1&& 1 || 0 = 1在C/C++里,0代表假,非0代表真,a,b都是真,c是假,都取非之后(!),a,b都是假,c是真。也就是0&&0||1,并非1&&1||0。