若执行下面的程序时从键盘上输入5,则输出是

main()
{
int x;
scanf("%d",&x);
if(x++>5) printf("%d",x);
else printf("%d",x--);
}
A) 7 B) 6 C) 5 D) 4

输入5时,条件if(x++ <5) 等效 if( 5 <5 ) ,x++要到下一条语句,x才会减值,x++返回的值就是原来的值
所以条件为假,则执行 else后面的语句,
但是在if条件语句有x++,条件判断之后,x的值变为6 ,而printf(“%d\n”,x--); 此时输出的值就是为6,
同理,printf语句中有x--,输出6后,a的值变为5
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-01-13
5 大于5的输出为输入值,小于5的输出值为输入值-1
第2个回答  2013-01-13
答案是b6;
这个考到了优先性的知识,因为自增的优先性是大于关系运算符的,所以先运行的是5+1然后在判断是否大于5,结果自然是大于5,而此时x的值已近改变了,因为他进行了自增运算所以输出的是6。
注意的是,不知道你是漏了还是怎么弄得。头文件include<stdio.h>没加本回答被提问者采纳
相似回答