若有定义: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语句。
C
答案解析
[解析] switch 后的括号中只能是整型或字符型表达式,选项A中使用的是浮点型变量x,故不正确。选项B在switch的括号后面多了一个分号,故也不正确。switch的case标号后只能是常量或常量表达式,而不能是变量,所以选项D也不正确。故应该选择C
对于swith(表达式)中的表达式,可以控制程序的执行过程,表达式的结果必须是整数、字符或枚举量值,A选项中,出现浮点型,B中switch()后面出现分号,D选项CASE1后面出现},是错误的
case 后面必须是不能是浮点数,必须是int 或者枚举,int 1,2,3,4, 枚举,a,w,r,s,q、、、
switch的括号里只能是结果为整型的表达式,也可以是枚举型,但实际上枚举型会转换成整型。