若有定义:float x=1.5;int a=1,b=3,c=2;,则正确的switch语句是 ( )

问题描述:

若有定义: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)
{case1:printf(**\n);}
casec:printf(**\n);}

擦,看出来了,终于看出来了,
B选项里面,swith ((int)x)后面多了一个分号,格式不对,不符全C++的语法规则,而以上选项里面只有C选项是语法上没有任何问题的,呼呼,are you clear?C选项中的case后面的(1+2)算常量吗?算呐,C语言在执行的时候貌似会默认直接把它当成常量3来执行的,