若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是()
A switch(x) B switch((int)x);
{ case 1.0:printf("*\n"); { case 1:printf("*\n");
case 2.0:printf("**\n");} case 2:printf("**\n");}
C switch(a+b) D switch(a+b)
{ case 1:printf("*\n"); { case 1:printf("*\n");
case 2+1:printf("**\n");} case c:printf("**\n");}
应该选择C哈,错误如下:
A选项的case语句里面不应该用1.0,2.0;
B选项的switch语句后面不应该加;
D选项a+b为float型,不符合要求【应该是int或者char型~】
祝你好运O(∩_∩)O~
追问A 选项中1.0和2.0为什么是错的?
追答额,不好意思~我把a看成x了= =
D选项解释错了,应该是case后面c那个~
c不是常量表达式~
没关系,我知道d是错的,只是对A有疑问,A 选项中1.0和2.0为什么是错的?
追答意思你应该懂得的~
查了下书,这样子说的:switch后面括号内的“表达式”,其值的类型应该是整型类型(包括字符型)。所以错了哈~
B是错的,多了一个分号
追答应该选c