有以下程序
#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 <回车>, 则输出结果是( )。
考查 C 语言中的 switch-case 语句。 执行 switch-case 语句时, 一定会先进行匹配, 匹配成功则执行当前 case 语句, 再根据是否有 break, 判断是否继续输出, 或是跳出判断。 程序中输入 1 时, 与 case 1 匹配成功,执行后面的输出语句, 输出 2, 且此时 b=2, 因为后面没有 break 语句, 继续执行下一条输出语句, 输出 3。 继续输入 2 时, 与 case 2 匹配成功, 执行后面的输出语句, 输出 3。 输入 3 时, 没有可匹配的 case 语句, 执行 default语句, 输出 4, b 变为 4; 后面没有 break 语句, 继续执行 case 1 后的输出语句, 输出 5, b 变为 5; 同理继续执行 case2 后面的输出语句, 输出 6。 答案选择 A 选项。