一道C语言题,求解答

#include<stdio.h>main(){inta=10,b=11,c=0;switch(a%3){case0:c++;break;case1:c++;case2:... #include <stdio.h>
main( ){
int a=10,b=11,c=0;
switch(a%3)
{ case 0: c++;break;
case 1: c++;
case 2: switch(b%2)
{case 0: c++;;
default : c++;
}
}
printf("%d\n", c);
}
运行结果为:2
展开
 我来答
江湖有痴人
2016-12-11
知道答主
回答量:1
采纳率:0%
帮助的人:1.7万
展开全部
从main函数开始,第一个switch判断a与3取余为1,则程序进入case 1,c++,变量c此时自加1为1,然而并未遇到break,所以并未跳出switch语句,进入case 2,此时进入第二个switch判断b与2取余为1,后面并未有case 1这个选择语句,所以出错进入default语句,变量c再次自加1为2,跳出程序,用printf函数输出变量c,结果显示为2. OK,搞定
烟火夜空
2016-12-11 · TA获得超过6620个赞
知道大有可为答主
回答量:1678
采纳率:93%
帮助的人:539万
展开全部
题目 考 switch 语句的特性,
switch语句,找到 入口后(就是对应值),跳转到入口处,往下执行。(如遇到break 就结束switch 语句)
题目中,a=10,a%3=1,选择入口case 1:执行 c++,c=1;未遇见break 语句,继续往下执行 case 2:又switch(b%2);
b=11,b%2=1,无case 1入口,选择default 入口:执行c++,c=2;结束2个switch ,打印c<回车>→2<回车>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天云小店
2016-12-11 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:746万
展开全部
switch(a%3) {   // 第一次a%3=1
    case 0: c++;break;
    case 1: c++;   // 执行这句和下面一句(因为没有break) c=1
    case 2: switch(b%2){  // 执行完后c=2
        case 0: c++;;
        default : c++;
    }
}
追问
第四行得到c=2后,那就不执行了是吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式