假设变量x、k都已定义,下列语句片段中,无语法错误的是( )。
A: switch(x){ case x>=90: putchar('A'); case x<60: putchar('E'); }
B: switch(x) { case 1+2: k='A'; defualt: k='E'; case 2*4: k='B'; }
C: switch(x){ case 2+x: k=x-2; case 3*x: k=x+3; default: k=0; }
D: switch(x){ case 3.5: k=0.5*x; case 7.8: k=8*x; default: k=0; }
A: switch(x){ case x>=90: putchar('A'); case x<60: putchar('E'); }
B: switch(x) { case 1+2: k='A'; defualt: k='E'; case 2*4: k='B'; }
C: switch(x){ case 2+x: k=x-2; case 3*x: k=x+3; default: k=0; }
D: switch(x){ case 3.5: k=0.5*x; case 7.8: k=8*x; default: k=0; }
举一反三
- 下列语句序列执行后,k 的值是( )。 int x = 6, y = 10, k = 5; switch (x % y) { case 0: k = x * y; case 6: k = x / y; case 12: k = x - y; default: k = x * y - x; } A: 60 B: 5 C: 0 D: 54
- 有如下程序段: int x =1, y=1 ; int m , n; m=n=1; switch (m) { case 0 : x=x*2; case 1: { switch (n) { case 1 : x=x*2; case 2 : y=y*2;break; case 3 : x++; } } case 2 : x++;y++; case 3 : x*=2;y*=2;break; default:x++;y++; } 执行完成后,x和y 的值分别为( )。
- 若有以下定义,则正确的switch语句是______。float x;int a,b; A: switch(x) B: case 1.0:printf("*\n"); C: csse 2.0:printf("**\n"); D: switch(x) E: case 1,2:printf("*\n"); F: case 3:printf("**\n"); G: switch(a+b) H: case 1:printf("\n"); I: case 1+2:printf("**\n"); J: switch(a+b); K: case 1:printf("*\n"); L: case 2:printf("**\n");
- 若有定义语句int a, b;double x;则下列选项中正确的是( ). A: switch(x%2) { case 0: a++; break; case 1: b++; break; default : a++; b++; } B: switch((int)x/2.0) { case 1: b++; break; case 0: a++; break; default : a++; b++; } C: switch((int)x%2) { case 0: a++; break; case 1: b++; break; default : a++; b++; } D: switch((int)(x)%2) { case 0.0: a++; break; case 1.0: b++; break; default : a++; b++; }
- 若有以下定义:float x;int a,b;则正确的switch语句是( ) A: switch(x){case 1.0:printf("* ");case 2.0:printf("** ");} B: switch(x){case 1,2:printf("* ");case 3:printf("** ");} C: switch(a+b){case 1:printf("* ");case 1+2:printf("** ");} D: switch(a){case b<1:printf("* ");case b>2:printf("** ");}