问题
单项选择题
若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是( )。
A.switch(x)
case 1.0:printf("*\n");
case 2.0:printf("**\n");
B.switch((int)x);
case 1:printf("*\n");
case 2:printf("**\n");
C.switch(a+b)
case 1:printf("*\n");
case 2+1:printf("**\n");
D.switch(a+b)
case 1:printf("*\n");
case c:printf("**\n");)
答案
参考答案:C
解析: 在C语言中,switch()后的一对圆括号中可以是整型表达式或字符表达式。case语句后面的常量表达式的类型必须与switch后圆括号中的表达式类型相同,备case语句标号的值应该互不相同。选项A)中case后面的常量表达式为实型,所以不正确;选项D)中case后面出现了变量表达式,所以选项D)错误。