码迷,mamicode.com
首页 > 其他好文 > 详细

20180530

时间:2018-06-03 14:26:28      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:语句   常量   退出   space   匹配   分支   答案   AC   question   

(1)若有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<stdio.h>
main()
    int s=0,n;
    for(n=0; n<4; n++)
    {
        switch(n)
        {
           default:s+=4;
           case 1:s+=1;
           case 2:s+=2;
           case 3:s+=3;
        }
    }
    printf ("%d\n",s);
}

则程序的输出结果是?

6
18
10
24

答案:D 错选:A
在switch-case语句中,多个case可以共用一条执行语句,如: 
case 常量表达式1: 
case 常量表达式2: 
case 常量表达式3: 
语句; 
break; 
由此可以看出case语句的作用:
case后面的常量表达式实际上只起语句标号作用,而不起条件判断作用,即“只是开始执行处的入口标号”。

因此,一旦与switch后面圆括号中表达式的值匹配,就从此标号处开始执行;
而且执行完一个case后面的语句后,若没遇到break语句,就自动进入下一个case继续执行,而不再判断是否与之匹配,直到遇到break语句才停止执行,退出switch语句。

因此,若想执行一个case分之后立即跳出switch语句,就必须在此分支的最后添加一个break语句。

第1次:s=0+4+1+2+3=10;
第2次:s=10+1+2+3=16;
第3次:s=16+2+3=21;
第4次:s=21+3=24.

20180530

标签:语句   常量   退出   space   匹配   分支   答案   AC   question   

原文地址:https://www.cnblogs.com/kxzh/p/9128627.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!