有以下程序: #include main() { int a,b; for(a=0;a

admin2016-04-07  13

问题 有以下程序:
    #include
    main()
    {    int a,b;
    for(a=0;a<3;a++)
    {  seanf("%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,执行ca$e 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://kaotiyun.com/show/SCDp777K
0

最新回复(0)