吃透选择结构的使用
技术与开发
语言类型:C语言
上手难度:★★★
考试类型:计算机二级
题目:若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是()。[2006年4月C语言选择题第19题](图1)

答案:C
解析:case后面的常量表达式只能为整型、字符型或枚举型,且各常量表达式各不相同。答案A中case后面的常量表达式为实型,因此是错误的;答案D中case后面的出现了变量,因此D是错误的;switch {表达式}后面不能有引号,因此答案B是错误的,只有C符合switch的语句形式。
选择结构作为历年的考试重点,考生必须熟练掌握:1.用if语句实现选择结构以及选择结构的嵌套。2.用switch语句实现多分支选择结构。围绕这两点的考试题花样百出,让考生们头痛不已。考生只有吃透这两块知识点才能在考试中做到胸有成竹,下面我们详细讲解选择结构的难点。
一、用IF语句实现选择结构
1.在C语言中,if语句有三种形式,每种形式在if后面都有表达式,一般为逻辑表达式或者关系表达式,也可以是任意的数值类型(包括整型、实型、字符型、指针型数据)。
2.if语句执行时,首先计算紧跟在if后面一对圆括号中的表达式的值,如果表达式的值为非零(“真”),则执行if后的语句,然后去执行if语句后的下一个语句。如果表达式的值为零(“假”),直接执行if语句后的下一个语句。
3.if语句中可以再嵌套if语句。C语言规定,在嵌套的if语句中,else子句总是与前面最近的不带else的if相结合。
例如我们输入一个人的年龄,判断他是退休了,还是在工作?首先我们要明白一般男士60岁退体,女士55岁退休,所以我们编写代码时,一定要注意先判断性别,再判断年龄。关键代码如图2所示:

二、用switch语句实现多分支选择结构
1.如果在执行一个case分支后,要跳出switch结构,终止switch语句的执行,可以用break来达到目的(图3)。

2.在一个switch语句中的case后面又嵌套了一个switch语句,在执行内嵌的switch语句后还要执行一条break语句才跳出外层的switch语句,且break 语句只能结束该层 switch 语句。
复习题
1.以下程序在执行时,从键盘输入4 ,则输出为.
main()
{int x;
scanf("%d",&x);
switch(x)
{case 5: printf("Excellent");
default : printf("Poor");
case 4: printf("Good");
case 3: printf("Pass");
case 2:printf("Fail");
}
}
2.编写一段程序,判断某一年是否为闰年。
读者反馈
读者 小曾:看了上期的文章,有个疑问。将一个整型常量赋值给整型变量时如何做到类型匹配呢?
小编:一个整常量,如果它的值在-32768~+32768范围内,认为是int型,可以赋值给int型或者long int型变量;一个整常量,如果它的值超过了上述范围,在-2147483648~+2147483647范围内,则认为是long int型,可以赋值给long int型变量。
复习题答案已经放到《电脑报》网站上了,敬请关注