内容正文:
5.switch语句(讲义)-《C语言程序设计》专题复习讲练测
[考纲要求]
(1)掌握用switch 语句实现多分支选择结构。
(2)掌握选择结构的嵌套。
[课时安排]
2课时
[知识梳理]
一、switch 语句的一般形式
switch(表达式)
{case 常量表达式1:语句部分 1;[break;]
case 常量表达式 2:语句部分 2;[break;]
case 常量表达式 n:语句部分 n;[break;]
[default;语句部分 n+1;]}
[注意]:(1)switch 是关键字,switch 后面用花括号括起来的部分是 switch 语句体。
(2)通常情况下,“switch(表达式)”中的表达式是关系表达式或逻辑表达式,但也允许为其他任何类型的表达式。
(3)case 也是关键字,与其后面的常量表达式合称 case 语句标号,常量表达式的类型必须与 switch 后面的表达式的类型相四配,且各 case 语句的值各不相同,不能重复。
(4) default 也是关键字,起标号的作用,代表了以上所有 case 标号之外的那些号default 标号可以出现在语句体中任意标号位置上,当然,也可以没有。
(5)switch后面括号中的表达式一般是整型表达式或字符型表达式。case 标号是整型数(包括字符型)或整型常量,不能用变量作为 case标号,每个常量表达式的值必须互不相同。在 case标号后面的语句部分如果有多条语句,则可以不必加花括号它会自动依次执行本 case 标号后面的语句,直到 break语句为止。
二、switch 语句的工作过程
首先对 switch 语句括号中的表达式进行计算,然后依次与各 case 中的常量表达式的值比较,一旦匹配成功,则马上执行相应的语句部分,若遇 break,结束 switch 语句;若均不匹配,则执行 default(若有的话)后的语句部分。当程序执行 break 语句后,它就使程序流程跳出 switch 结构,并转而执行 switch 结构后面的第一条语句。
三、选择结构的嵌套
前面已经描述过if语句的嵌套,这里所指的选择结构的嵌套主要指switch语句嵌套switch或if语句;当然还包括if语句嵌套switch语句。
[真题练讲]
1.(2016重庆高职对口统一考试)在C语言中,下列关于switch语句的叙述正确的是( )
A. break语句只能用于switch语句
B.在switch语句中必须使用default
C. break语句必须与switch语句中的case配对使用
D.在switch语句中不一定使用 break语句
【答案】D
【解析】本题考查C语言的switch语句。break语句、default不是switch语句所必须的。
2.(2017重庆高职对口统一考试)在C语言中,关于switch 语句的叙述正确的是( )
A. switch条件表达式的值只能是整型
B. case常量表达式的值不能是字符型
C.每个case 语句都要执行
D.可以没有default标号
【答案】D
【解析】本题考查C语言的switch语句。switch条件表达式的值可以是整型或字符型,default不是switch语句所必须的。
3.(2017重庆高职对口统一考试)在C语言中,若int m = 3,x = 1;则执行语句 switch ( m ){ case 3;x + = 3 ; case 2:x*=2;}后x的值是( )
A.2
B.4
C.6
D.8
【答案】D
【解析】本题考查C语言的switch语句。m为3,则先执行case 3之后的语句x + = 3 ; 使得x的值为4.继续执行case 2之后的语句,使得x的值再乘以2,为8.
4.(2016重庆高职对口统一考试)在C语言中, switch语句后的表达式可以是任意类型。( )
【答案】错误
【解析】本题考查C语言的switch语句。switch语句后的表达式为整型或者字符型表达式。
5.(2019年山东省信息技术春考)以下程序段的运行结果是( )
int i=0;
switch(i)
{ case 1 :printf("%d" , i); break;
case 2:printf("%d", i); break;
default : printf("%d",++i);
}
A.0
B.1
C.2
D.3
【答案】B
【解析】本题考查C语言的switch语句。i的值为0,执行default后面的语句,输出++i的值,为1。
6.(2020年山东省信息技术春考)已知a和k 为整型变量,请简述以下程序段的执行过程。
switch(a)
{case 1: k++