首页 > 试题广场 > 假设变量 x 、 k 都已定义,下列语句片段中,无语法错误的
[单选题]

假设变量 x k 都已定义,下列语句片段中,无语法错误的是( )。

  • switch(x)
            {  case x>=90:  putchar('A'); 
               case x<60:   putchar('E');
            }
  • switch(x)
            {  case 1+2:   k='A'; 
               defualt:    k='E';
               case 2*4:   k='B';
            }
  • switch(x)
            {  case 2+x:   k=x-2; 
               case 3*x:   k=x+3;
               default:    k=0;
            }
  • switch(x)
            {  case 3.5:   k=0.5*x; 
               case 7.8:   k=8*x;
               default:    k=0;
            }
推荐
选B。考察的是switch语句的规则。
switch(expression)

    case constant-expression : 
        statement(s);
        break;  
    case constant-expression : 
        statement(s); 
        break;  
    default :  statement(s); 
}
  • case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,且必须是一个常量或字面量。所以排除A、C项
  • switch 语句中的 expression 是一个常量表达式,必须是一个整型或枚举类型。而case 的 constant-expression 必须与 switch 中的变量具有相同的数据类型,所以也属于整型或枚举类型。排除D项

编辑于 2019-06-26 14:42:10 回复(0)
排除法
D:case不能接double和float           错
C:case 2+x:   其中2+x不能为变量         错
A:case接受int,byte,char,short   类型      错
所以选B
发表于 2019-06-25 16:22:39 回复(0)
答案:选B
首先我们看下switch/case语句的原型:
switch(x){
    case  a:...
    case  b:...
    ...
    default:...
}
这里变量x的类型只能是int,short,byte,char,而case后面的a、b都是常量,所以一目了然
发表于 2019-06-25 17:00:14 回复(0)
switch/case语句的判断条件可以接受int,byte,char,short,不能接受其他类型

根据这个条件,可直接看出只有B是正确的!!!
发表于 2019-06-25 15:42:22 回复(0)
1. default 和 case 的位置可以变动。 2.case 后跟整型(int, short,long,char,)的常量或者常量表达式
发表于 2019-09-01 00:06:54 回复(0)