有以下程序 #include <stdio.h> main( ) { int a,b; for (a=0; a<3; a++) { scanf("%d", &b); switch(b) { defau

admin2021-06-15  12

问题 有以下程序
#include <stdio.h>
main( )
{   int a,b;
    for (a=0; a<3; a++)  
    {  scanf("%d", &b);
       switch(b)
       {  default: printf("%d,", ++b);
          case 1: printf("%d,", ++b);
          case 2: printf("%d,", ++b);
       }
    }
}
执行时输入:1 2 3<回车>,则输出结果是

选项 A、2,2,3,4,4,4,
B、2,3,4,
C、2,3,3,4,5,6,
D、2,3,4,3,4,4,

答案C

解析 程序在执行switch语句时,根据switch后面表达式的值找到匹配的入口标号,执行对应的case语句,之后不再进行判断,继续执行此case后面的语句,并且各个case和default的出现次序不影响执行结果,即题目中的default放在开始位置,与放在最后是一样的结果;运算符"++"放在变量前面时,表示将变量+1,再参与其他操作。本题,第一次循环输入b=1,执行case 1,输出2,再执行case 2,输出3,第二次循环输入b=2,执行case 2输出3,第三次循环,输入b=3,没有case与其对应,故执行default输出b=4,接着执行case 1:,输出5,再执行case 2,输出b=6,至此退出for语句。因此,最后输出为2,3,3,4,5,6,答案为C选项。
转载请注明原文地址:https://jikaoti.com/ti/sEz0FFFM
0

最新回复(0)