若有定义: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);}

问:A选项哪里错了??

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

switch(a+b)

{case 1:printf("*\n");

case 2+1:printf("**\n");}

所以这一题选择C。

switch语句的基本形式

switch(表达式)

{

case 常量表达式1: 语句1;

case常量表达式2: 语句2;

.

.

.

case常量表达式n: 语句n;

default: 语句n+1;

}

扩展资料:

switch后面的括号内的表达式,ANSI标准允许为任何类型。

当表达式与某一个case后面的常量表达式相等时,就执行case后面的语句,若没有匹配,则执行default后面的语句。

每一个case的常量表达式的值须互不相同,否则便会出现矛盾。

各个case和default的出现次序不影响结果。

执行完一个case语句,流程就转移到下一个case并继续执行,因此在case的分支后,加break语句来跳出switch语句。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-06-19
C
答案解析
[解析] switch 后的括号中只能是整型或字符型表达式,选项A中使用的是浮点型变量x,故不正确。选项B在switch的括号后面多了一个分号,故也不正确。switch的case标号后只能是常量或常量表达式,而不能是变量,所以选项D也不正确。故应该选择C
第2个回答  2012-08-16
对于swith(表达式)中的表达式,可以控制程序的执行过程,表达式的结果必须是整数、字符或枚举量值,A选项中,出现浮点型,B中switch()后面出现分号,D选项CASE1后面出现},是错误的
第3个回答  2012-08-16
case 后面必须是不能是浮点数,必须是int 或者枚举,int 1,2,3,4, 枚举,a,w,r,s,q、、、
第4个回答  2012-08-15
switch的括号里只能是结果为整型的表达式,也可以是枚举型,但实际上枚举型会转换成整型。
相似回答