吃透选择结构的使用

技术与开发

语言类型:C语言

上手难度:★★★

考试类型:计算机二级

题目:若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是()。[2006年4月C语言选择题第19题](图1)

40-f12-1-1.jpg
图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所示:

40-f12-1-2.jpg
图2

二、用switch语句实现多分支选择结构

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

40-f12-1-3.jpg
图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型变量。

复习题答案已经放到《电脑报》网站上了,敬请关注