问题 单项选择题

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

A.switch(a+b)

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

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

B.switch((int)x);

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

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

C.switch(x)

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

case 2.0: printf("**\n");}

D.switch(a+b)

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

case c: printf("**\n");}

答案

参考答案:A

解析: B选项中switch((int)x);语句中不应该有最后的分号。switch(expr1),中的expr1不能用浮点类型或long类型,也不能为一个字符串,所以C错误。case后面常量表达式的类型必须与switch后面表达式的类型一致,所以D错误。

判断题
单项选择题 A1/A2型题