几道c语言题,有关选择结构的。

#include"stdio.h"main(){intx=1,y=0,a=0,b=0;switch(x){case1:switch(y){case0:a++;break;... #include "stdio.h"
main()
{ int x=1,y=0,a=0,b=0;
switch(x)
{case 1:switch(y)
{case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
}
printf("%d %d\n",a,b);
}
结果为什么是2,1?

#include "stdio.h"
main()
{ int i=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d %d %d\n",i,j,k);
}
结果中k为什么等于3而不是4?

#include "stdio.h"
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);
}
结果为什么是3?
展开
 我来答
百度网友5a12fa6
2010-08-13 · 超过12用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:0
展开全部
第一题:执行第一个switch的时候会执行case 1:switch(y)这句然后执行case 0:a++;break;因为有break所以下一句不行了,在然后执case2:a++;b++;break;
因为你上一句case后面没有break所以要执行它!~case 1:b++;break;
}就是这个括号后面没有break。现在知道为什么是2,1了吧!
第二题,因为当用||的时候如果第一个已经正确了,那么第二个就直接跳过不执行了!~所以k++就没有执行,当然是3喽!
第三题:第一个if(a>b>c)相当于if((a>b)>c)a>b返回1然后和c比较返回0所以不执行。第二个if语句明显成立嘛!~所以执行printf("%d\n",d+1);
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式