inta=3b=5c=8if(a++<3&&c--!=0)b=b+1printf("a=%d\tb=%d\tc=%d\n",a,b,c);
答案:2 悬赏:30
解决时间 2021-12-21 09:12
- 提问者网友:绿海猖狂
- 2021-12-20 20:26
这个答案为什么是a=3,b=4.c=8?
最佳答案
- 二级知识专家网友:情窦初殇
- 2021-12-20 20:46
我想楼主是疑问为什么c没有变为7吧? 原因就在if(a++<3&&c--!=0)
首先,a = 3 b = 5 c = 8
a++的意思是先调用a,调用完后再加1.
那么a++应该是等于3,所以&&的前面为假,因为&&逻辑与运算符有个特点,如果前面为假,那么结果一定为假,后面的就不用计算了,所以c--并没有执行。
又因为if为假,所以,b=b+1也没有执行,其实就执行了一句话:a++
所以答案应该是:a =4 ,b=5,c=8
首先,a = 3 b = 5 c = 8
a++的意思是先调用a,调用完后再加1.
那么a++应该是等于3,所以&&的前面为假,因为&&逻辑与运算符有个特点,如果前面为假,那么结果一定为假,后面的就不用计算了,所以c--并没有执行。
又因为if为假,所以,b=b+1也没有执行,其实就执行了一句话:a++
所以答案应该是:a =4 ,b=5,c=8
全部回答
- 1楼网友:开心就好
- 2021-12-20 21:24
#include
void main ()
{
int a,b,c;
a=1;
b=(a++)+a;//这里a先用,所以相当于b=a+a=2;之后a++,此时a=2;
c=+++b+1;//先对b自加,所以b=3;之后c=+b+1=4,前面的+号相当于正好
printf("%d,%d,%d\n",a,b,c);//输出2,3,4
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯