c语言 switch结构选择题

若有定义: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后面括号内的“表达式”,其值的类型应该是整型类型(包括字符型)。所以错了哈~

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-27
答案C
switch(表达式)
{ case 常量表达式1: 语句1; break;
}
第2个回答  2013-03-27
应该是选D
A:case里面不能是小数
B:switch后面有 ' ; '
C:case 2+1 出错追问

B是错的,多了一个分号

追答

应该选c

相似回答