选择题 60.  执行下面C语言程序段的结果是______。
    main() {
    int x=1, a=1, b=1;
    switch (x) {
    case 0: b++;
    case 1: a++;
    case 2:a++;b++;
    }
    printf ("a=%d, b=%d",a,b);
    }
【正确答案】 B
【答案解析】 本题考查C语言基础知识。
   switch语句是多分支语句。它的一般形式如下:
   switch(表达式)
   { case常量表达式1: 语句1
   case 常量表达式2: 语句2
   ...
   case 常量表达式n: 语句n
   de fault: 语句n+1
   }
   switch后面括弧内的“表达式”,可以是整型表达式或字符型表达式,也可以是枚举型数据。当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。每一个case的常量表达式的值必须互不相同。执行完一个case后面的语句后,流程控制转移到下一个case继续执行,“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。因此,一般用一个break语句使得在执行一个case分支后,使流程跳出switch结构,即终止switch语句的执行。
   本题的switch结构没有使用break语句,变量x=1,因此从case 1的语句开始执行,之后接着执行case 2的语句。