C语言中default 放在最后一个case前面则如何执行?

有这么个蛋疼的题目:#include<stdio.h>voidmain(){inti;for(i=1;i<=5;i++)switch(i%5){case0:printf(... 有这么个蛋疼的题目:
#include<stdio.h>
void main()
{int i;
for(i=1;i<=5;i++)
switch(i%5)
{case 0:printf("*");break;
case 1:printf("#");break;
default:printf("\n");
case 2:printf("&");
}
}
求运行结果
展开
 我来答
吉祥二进制
高粉答主

推荐于2017-09-19 · 科技改变生活,生活改变科技。
吉祥二进制
采纳数:33926 获赞数:84560

向TA提问 私信TA
展开全部

在C语言中 ,无论default在switch语句中的哪个位置,编译器都会先找case,程序从第1个找到的case开始执行,如果所有的case都不满足条件,才会执行default。因此,default的位置可以随便放。但是出于编码规范考虑,一般写在最后。


比如下面的代码,运行程序后,输入2,依然正常执行,而并没有因为default放在case前而改变了switch语句的执行流程。

#include <stdio.h>
#include <locale.h>
int main()

int i;
scanf("%d", &i);
switch (i) {
case 1:
printf("i==1\n"); break;
default:
printf("i!=1 && i!=2\n");
case 2:
printf("i==2\n"); break;
}
return 0;
}

刺友互
高粉答主

2019-06-14 · 每个回答都超有意思的
知道答主
回答量:3979
采纳率:100%
帮助的人:63.5万
展开全部

1、当要向输出设备(显示屏、打印机等)输出字符时,可以用 c 格式描述符控制。如下所示代码即输出字符ch (a) :char ch = 'a';printf("Character: %c \n",ch);。

2、在需要输出十进制数字时,可以用d 或 i 控制输出,如下所示: int dcm = 24; printf("Decimal number: %d\n",dcm); printf("Decimal number: %i\n",dcm);。

3、利用 o 或 #o 控制输出八进制格式数字:int oct = 24;printf("Octal1: %o\n",oct);printf("Octal2: %#o\n",oct);其中,第一种输出数字前不会有数字0,而第二种(#o)则会在输出时前端补0。

4、同八进制一样,利用 x 或 #x 可以输出控制十六进制格式数字。

5、 字符串输出在C语言中输出字符串可以使用s控制。

6、 浮点数(单精度/双精度)输出,如下所示,输出单精度/双精度数据。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
White_MouseYBZ
2012-11-15 · TA获得超过4万个赞
知道大有可为答主
回答量:2.1万
采纳率:82%
帮助的人:6286万
展开全部
switch中的default,无论将其放在什么地方,都要先检查完所有case的匹配情况后如果没有匹配时,才执行它后面的语句;且,和执行其他case后的语句一样,若最后没有跟break,则执行其后面的所有case后面的语句,直到碰到一个break或到了最后的}才能结束。按这个规则,上题输出应是:
#&
&
&*
供参考……
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xz宏定义
推荐于2017-09-09 · TA获得超过1029个赞
知道小有建树答主
回答量:1621
采纳率:100%
帮助的人:218万
展开全部
编译运行如下

#&
&
&*Press any key to continue

i=1时,结果是执行Case 1l 所以是#号,没有执行Default
i=2时,打印 &,也没有执行Defalut;
i=3时,执行Defalut,结果打了个回车,并换行,并执行case 2 ;因为Defalut后没有break;
i=4时,执行Defalut,结果打了个回车,并执行Case 2;因为Defalut后没有break;
i=5是,执行Case 0.打印了*

#&
&
&*
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ynanfang
2012-11-15 · 超过34用户采纳过TA的回答
知道答主
回答量:75
采纳率:0%
帮助的人:47.3万
展开全部
结果是这样的
i=1时,结果是执行Case 1l 所以是#号,没有执行Default
i=2时,打印 &,也没有执行Defalut;
i=3时,执行Defalut,结果打了个回车,并换行,并执行case 2 ;因为Defalut后没有break;
i=4时,执行Defalut,结果打了个回车,并执行Case 2;因为Defalut后没有break;
i=5是,执行Case 0.打印了*

#&
&
&*
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式