几道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? 展开
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? 展开
1个回答
展开全部
第一题:执行第一个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);
因为你上一句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);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询