分析:首先swtich语句提供一种更方便的方法来实现深层嵌套的if/else语句。switch语句中最常见的错误是漏写了break语句,一般情况是在每个case分支后加break语句(少数情况是例外的)。详细的可以参考C++ primer(第四版)的172页。其实这个题目的输出就是(16,21,)。这可能会和设计者的意愿相违背。
解答:由于case都没有break;所以i=0的时候,case 0 ,case 1,case 5,default按顺序执行,i=16=5+2+5+4,输出16,;循环一次后i++,i=17,所以第二次初始i=17,只执行default 故输出21=17+4,第二次输出的是21,。所以最终的输出是(16,21,)你准备选d?错了!注意最后21后面有个逗号的,所以貌似这几个选项都不是很好,只能说它是语法错误,选e了。(这个题目出的比较烂)。
验证:VS2012,键入代码,调试,运行。输出结果见图片。