问题 单项选择题

若有定义: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)错误。

单项选择题
单项选择题