C语言怪问题

来源:百度知道 编辑:UC知道 时间:2024/04/29 13:19:09
main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2)
}
执行后输出结果是
A) 2 B) 3 C) 4 D) 编译时有错,无结果
怎么答案是B怎么会事?

main()
{ int a=5,b=4,c=3,d=2;
if(a>b>c) ( 5>4的值为真是1,1>c的值为假,所以看第一个else)
printf(\"%d\\n\",d);
else if((c-1>=d)==1) (c-1=2 与d的值相等,结果为真是1,1与1是恒等的,所以符合这个条件,则输出d+1=2+1=3,不再考虑下面的else)
printf(\"%d\\n\",d+1);
else
printf(\"%d\\n\",d+2)
}

所以此题结果为B,如果还不明白可以和我联系!

最后一句少";"