有以下程序: #include main() { int a,b; for(a=0;a<3;a++) { scanf("%d",&b); switch(B){default:printf("%d,",++b); case 1:printf("%d,",

admin2015-07-30  47

问题 有以下程序:
#include
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,执行case2,输出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/ToDp777K
0

最新回复(0)