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

admin2021-06-15  27

问题 有以下程序
#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、1,2,3,2,3,3,
B、1,2,3,
C、1,2,2,3,4,5,
D、1,1,1,2,2,3

答案C

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

最新回复(0)