C语言问题高手请进

下列关于switch语句说法错误的是()。
①关键字switch后面紧跟的表达式是整型表达式或字符型表达式
②case后面的常量表达式可以是整型或字符型,但是必须互不相等
③缺省break则执行符合表达式数值的语句及其后的语句,直到遇见break才跳
出switch语句
④default分支放在switch语句内的任何位置都不会影响最终的结果
希望详解!谢谢
答案是4我就是不知道为什么选4

第1个回答  2009-09-28
switch 语句后面的表达式可以是整型,字符型,枚举型
switch结构中的case子句和default子句可以以任何顺序出现,但是把default子句放在最后是一种良好的程序设计习惯。
但不是说default可以在swith里任何位置而不影响结果例如

int i=2;
switch (i)
{
default:
printf("\nYou select error.\n\n");//这里的default执行后,不管i是不是1都会执行case 1里面的语句,如果放在最后效果就不一样。这里如果加上个break,那就不影响了,楼主想想

case 1:
printf("\nYou select error.\n\n"); break;
}
这个如果default放后面呢?又是另外一种那个情况,楼主可以自己运行看看
所以第四句是肯定错的,第一句有点错
第2个回答  2009-09-28
switch 语句说明:
(1)switch 后面括号内的“表达式”,ANSI 标准允许它为任何类型。
(2)当表达式的值与某个case后面的常量表达式的值相等时,就执行case 后面的语句,若所有的case中的常量表达式的值都没有与表达式的值相匹配的,就执行default后面的语句
(3)每一个case的常量表达式的值必须互不相同
(4)各个case和default得出现次序不影响执行结果
(5)执行完一个case后面的语句后,流程控制转移到下一个case继续执行。因此为结束该流程需加break
(6)多个case可以共用一组语句

这下知道了吗???好好理解理解、、、、呵呵本回答被提问者采纳
第3个回答  2009-09-27
switch 语句后面的表达式可以是整型,字符型,枚举型
第4个回答  2009-09-28
如果有更完整的补充的就好了!
相似回答