内容正文:
专题五:switch语句
一、选择题
1.下列叙述中正确的是( )
A.在switch 语句中必须使用 default
B.break 语句必须与 switch 语句中的 case 配对使用
C.在 switch 语句中,不一定使用 break 语句
D.break 语句只能用于switch 语句
2.下面哪个关键字用于定义switch语句?
A. if
B. for
C. switch
D. while
3.以下选项中叙述正确的是( )
A.在 switch 语句中,不一定使用 break 语句
B.case 必须使用
C.在 switch 语句中必须使用 default
D.break 语句的作用时继续执行下面的语句
4.在 C语言中的 if 语句中,用作判断的表达式为( )
A.逻辑表达式
B.关系表达式
C.条件表达式
D.任意表达式
5.switch语句中的表达式的数据类型可以是
A. int
B. float
C. char
D. 整型或浮点型
6.有如下程序,该程序的输出结果是( )
#include<stdio.h>
main( ){
int x=1,a=4,b=4;
switch(x)
{
case 0:b++;
case 1:a++;
case 2:a++;b++;
}
printf("a=%d,b=%d
",a,b);
}
A.a=6,b=5
B.a=5,b=6
C.a=4,b=4
D.a=6,b=4
7.若 x、y、w 均是 int型变量,以下正确的switch语句是( )
A. switch x
{case 10: w=x+y; break;
case 11: w=x-y; break;
default: w=x*y;}
B. switch (x+y)
{case 10: w=y-x; break;
case 11:w=x+y; break;
default: w=x*y;}
C.switch(x*y)
{ case1:w=x+y;
case 2: w=y-x; break;
case1+1: w-x*y; break;}
D. switch (x)
{case x: w=x+y;break;
case y: w=y-x;break;
default: w=x*y;}
8.下列程序段的输出结果为( )
int a=0, b=0;
switch(a)
{case 0; b++;break;
case 1: a++;
case 2: a++; b++;)}
printf (”a=%d, b=%d
”,a,b);
A.a=1,b=1
Ba=0,b=1
C.a=1,b=0
D.a=0,b=0
9.下面哪个选项是switch语句的默认情况?
A. default
B. case
C. break
D. Continue
10.在switch语句中,每个case后面需要加上:
A. 分号 ;
B. 冒号 :
C. 逗号 ,
D. 斜杠 /
11. 在switch语句中,如果没有匹配到任何一个case,会执行哪个部分?
A.default
B.case
C.break
D.continue
12.以下程序输出结果为:
#include<stdio.h>
main( ){
int a=19,b=24,m=0;
switch(a%3)
{
case 0:m++;break;
case 1:m++;
switch(b%2)
{
default;m++;break;
}
}
printf("%d
",m);}
A.1
B.2
C.3
D.4
13.下面哪个语句用于根据不同的条件执行不同的代码块
A. if语句
B. switch语句
C. for循环
D. while循环
14.正确的运行结果( )
#include<stdio.h>
main( ){
int i=6;
switch(i){
case 5:i+=1;break;
case 6:i+=1;
case 7:i+=1;break;
default:i+=1;}
printf("%d" ,i) ;}
A.5
B.6
C.7
D.8
15.有如下程序,该程序的输出结果是( )
#include<stdio.h>
main( ){
int m=1,a=5,b=5;
switch(m){
case 0:b++;
case 1:a++;
case 2:a++;b++;}
printf("%d%d",a,b);}
A.55
B.66
C.76
D.85
16.若a和b均是正整型变量,以下正确的 switch 语句是( )
A.switch(sqrt(a,2)+sqrt(b,2)) {case 1: case 3:y=a+