源程序如下:
#include"stdio.h"
main()
{ int p,a=5;
if(p=a!=o)
printf("%d\n",p);
else
printf("%d\n",p+2);
}
if( p = a != 0 ) // 由于 != 的优先级比 = 的优先级要高,所以先运算 a != 0
因为 a = 5,所以 a != 0为真,即 a != 0的结果为 1
然后执行 p = 1
p = 1 不是一个逻辑表达式,只是一个赋值语句,
所以应该是将 p 的值作为判断的依据,如果 p 为 0 则为 假, p 不为 0 则为真.
因为上面的 p = 1,所以条件为真,所以应该输出
printf("%d\n",p);
结果应该为 1
因为 a = 5,所以 a != 0为真,即 a != 0的结果为 1
然后执行 p = 1
p = 1 不是一个逻辑表达式,只是一个赋值语句,
所以应该是将 p 的值作为判断的依据,如果 p 为 0 则为 假, p 不为 0 则为真.
因为上面的 p = 1,所以条件为真,所以应该输出
printf("%d\n",p);
结果应该为 1
温馨提示:答案为网友推荐,仅供参考
第1个回答 2006-06-11
a!=0判断逻辑表达式的值真假,a=5确实不等于0,结果是真的,所以P的值就为1,就打印1,否则就打印2(0+2)