main() {int a=0,i; for(i=1;i<5;i++) { switch(i) { case0: case3:a+=2; case1: case2:a+=3

default:a+=5;}}printf("%d\n",a)的输出结果是什么,请高手帮帮忙,谢谢了这是2002年4月份二级C语言的一道题,请帮帮忙吧,我很急,... default:a+=5;
}
}
printf("%d\n",a) 的输出结果是什么,请高手帮帮忙,谢谢了
这是2002年4月份二级C语言的一道题,请帮帮忙吧,我很急,
展开
 我来答
dingchaoant
推荐于2018-02-27 · TA获得超过1111个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:103万
展开全部
楼主你贴的代码有问题,我估计是这样的,这样算的就是31
#include <stdio.h>
main()
{
int a=0,i;
for(i=1;i<5;i++)
{
switch(i)
{
case 0:
case 3:a+=2;
case 1:
case 2:a+=3;
default:a+=5;
}
}
printf("a=%d\n",a);
}

计算步骤:
i=1,走case 1:没break,下面都会执行,a+=3;此时a=3,执行a+=5,a=8
i=2,走case 2:a+=3;此时a=11,执行a+=5,a=16
i=3,走case 3:a+=2;此时a=18,执行a+=3,a=21,执行a+=5,a=26
i=4,走default:a+=5,执行a+=5,a=31
over
来自杏花村大气的木星
2013-03-21 · TA获得超过4045个赞
知道小有建树答主
回答量:773
采纳率:33%
帮助的人:1001万
展开全部
我帮你把程序整理了一下:

main()
{
int a=0,i;

for(i=1;i<5;i++)
{
switch(i)
{
case0:
case3:
a+=2;
case1:
case2:
a+=3;
default:
a+=5;
}
}
}

switch case语句,你必须知道,如果case后面没有break,那么,就从符合条件的那个case一直走到最后

当i=1时,从case 1:开始走到最后,即:执行a+=3;和a+=5;两条语句,结果为a为8。
当i=2时,从case 2:开始走到最后,即:执行a+=3;和a+=5;两条语句,结果为a为16。
当i=3时,从case 3:开始走到最后,即:执行a+=2;、a+=3;和a+=5;三条语句,结果为a为26。
当i=4时,从default:开始走到最后,即:执行a+=5;一条语句,结果为a为31。
所以最终a的值为31。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天意随葑
2013-03-21
知道答主
回答量:20
采纳率:0%
帮助的人:6.8万
展开全部
你先问什么啊?这个程序有明显的没有错误啊!但是要心中的功能可能有点不如意吧,比如说i=3的时候,它会执行a+=2,接着会执行后面的a+=3这条语句,要想实现你的匹配就必须加个break。而且你要是自己写的程序的话i怎么会是0呢,i=4的情况呢?要是是个判断题这样应该可以吧。你想问什么我不知道,可以追问啊
我回答时你没有问完!!!
i=1时,a=a+3,a=3;i=2时,a=a+3,a=6;i=3时,a=a+2,a=8,a=a+3,a=11。在执行default:a+5;时没有赋值就不管了,不过每次都执行过这条语句。最终结果a=11.
擦 我搜了下原题 你又打错了
deault:后面明明复制了a+=5;大哥看明白题啊
更多追问追答
追问
最后的结果是31,答案上说第一轮循环(i==1)是a的值为8,第二轮循环(i==2)是a的值为16,第三轮循环(i==3)是a的值为26,第四轮循环(i==4)是a的值为31,当i为5是循环条件为假,循环结束。这是答案解析上面这样写的,我就是弄不懂怎么算出来的。
追答
你先把题看明白再问好不好,你的default:a+5;复制了吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
liuyanqiu353
2013-03-21 · 超过23用户采纳过TA的回答
知道答主
回答量:64
采纳率:0%
帮助的人:48.2万
展开全部
for(int i=1;i<5;i++)这句得到i从1开始循环到4;(记住一定是按顺序哦,1、2、3、4)
i=1时,case1:a+=3 计算得 a =a+3 =0+3 = 3;
i=2时,case2:a+=3 计算的 a =a+3 =3+3 = 6;
i=3时,case3:a+=2 计算得 a =a+2 =6+2 = 8;

i=4时,default:a+5
这里你的这个代码不知道有没有错误,如果没错误,a+5只是个表达式,并没有对a进行改变,a=8;
代码你打错的了话,再补充吧~~
追问
最后的结果是31,答案上说第一轮循环(i==1)是a的值为8,第二轮循环(i==2)是a的值为16,第三轮循环(i==3)是a的值为26,第四轮循环(i==4)是a的值为31,当i为5是循环条件为假,循环结束。这是答案解析上面这样写的,我就是弄不懂怎么算出来的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
斯沃琪生长素
2018-06-22
知道答主
回答量:1
采纳率:0%
帮助的人:856
展开全部
求大佬解答 为什么case1后面的不执行呢?不应该是和下面的case2的语句一样吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式