若int k=8;则执行下列程序后,变量k的正确结果是()

问题描述:

若int k=8;则执行下列程序后,变量k的正确结果是()
main()
{int k=8;
switch(k)
{case 9:k+=1;
case 10:k+=1;
case 11:k+=1;break;
default:k+=1;}
printf("%d\n",k);}
A)12 B)11 C)10 D)9

初值k=8
然后判断k的值
显然k不等于9,10,11
则执行default,则k为9,
再判断k
得k为10,
再判断k,
得k为11,
再判断k,
得k为12,这时退出.
输出 :12可答案怎么会是9?你确定吗?我上面做法有问题。初始值k为8(这里没问题)然后,switch(K)则执行default:k+=1;然后跳出switch再执行printf();则,结果是9