c语言的,下面的程序输出结果是什么?为什么?
voidmain(void){intx=1,a=0,b=0;switch(x){case0:b++;case1:a++;case2:a++,b++;}printf("a=...
void main(void)
{
int x=1,a=0,b=0;
switch(x)
{ case 0:b++;
case 1:a++;
case 2: a++,b++;
}
printf("a=%d,b=%d\n",a,b);
} 展开
{
int x=1,a=0,b=0;
switch(x)
{ case 0:b++;
case 1:a++;
case 2: a++,b++;
}
printf("a=%d,b=%d\n",a,b);
} 展开
7个回答
展开全部
输出结果是:a=2,b=1
解析:
因为x = 1,所以switch走case1和case2分支。
走case1后a变成1,b仍然是0;
走case2后a变成2,b变成1。
解析:
因为x = 1,所以switch走case1和case2分支。
走case1后a变成1,b仍然是0;
走case2后a变成2,b变成1。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
a=2,b=1
从case1语句开始运行
由于没有break;终止
所以继续执行case2
所以a++两次,b++一次
得答案如上
从case1语句开始运行
由于没有break;终止
所以继续执行case2
所以a++两次,b++一次
得答案如上
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
output: a=2,b=1
因为程序在case 1之后运行a++, 接着没有break, 程序继续进行, 虽然有case 2, 但只要case 1符合, 只要接下来没有break, 程序就接着运行. 所以接着运行了a++, b++.
所以最后结果是a=2, b=1.
因为程序在case 1之后运行a++, 接着没有break, 程序继续进行, 虽然有case 2, 但只要case 1符合, 只要接下来没有break, 程序就接着运行. 所以接着运行了a++, b++.
所以最后结果是a=2, b=1.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
x=1 执行到 switch的case 1语句即 a++;
后直接输出 a=2,b=1;
此处考查 switch 的用法。
switch(参数)
case 常量:语句;break;
参数跟常量匹配,只有 相同 才执行那个匹配的case 语句。
后直接输出 a=2,b=1;
此处考查 switch 的用法。
switch(参数)
case 常量:语句;break;
参数跟常量匹配,只有 相同 才执行那个匹配的case 语句。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
因为switch对应的case分支都没有break,所以所有的case语句都要被执行,这样程序的结果是
a=2,b=2
a=2,b=2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询