C语言程序设计(第3章程序控制语句)3

文章作者 100test 发表时间 2007:03:10 17:20:30
来源 100Test.Com百考试题网


3.3 条件控制语句
在程序的三种基本结构中,第二种即为选择结构,其基本特点是:程序的流程由多路分支组成,在程序的一次执行过程中,根据不同的情况,只有一条支路被选中执行,而其他分支上的语句被直接跳过。
C语言中,提供if语句和switch语句选择结构, if语句用于两者选一的情况,而switch用于多分支选一的情形。
3.3.1 if语句
1. if语句的两种基本形式
首先,我们看一个例子,由此了解选择结构的意义及设计方法。
[例3-5] 输入三个数,找出并打印其最小数。
分析:设三个数为A、B、C,由键盘读入,我们用一个变量MIN来标识最小数, A、B、C与MIN皆定义为int型变量。
每次比较两个数,首先比较A和B,将小的一个赋给MIN,再把第三个数C与MIN比较,再将小的一个赋给MIN,则最后MIN即为A、B、C中最小数。
算法如下:
1) 输入A、B、C。
2) 将A与B中小的一个赋给MIN。
3 ) 将MIN与C中小的一个赋给MIN。
4) 输出MIN。
将第2)步细化为:若A < B,则MIN <==A,否则:MIN <==B;其流程图见图3- 1。
第3)步细化为:若C < M I N,则MIN <==C;其流程图见图3 - 2。


对应图3 - 1和图3 - 2,正是i f语句的两种基本形式,与图3 - 2对应的i f语句的格式为:
if <表达式> 语句
当表达式为真时,执行语句,表达式为假时跳过语句。
与图3 - 1对应的i f语句的格式为:
if<表达式>
语句1
else
语句2

当表达式为真时,执行语句1,表达式为假时执行语句2。无论如何,语句1与语句2每次只能有一个被执行。
要注意的是: if或if . . . else,包括后面要讲到的嵌套if,即if...else if...被看成是一条语句,即使其中的语句是包含多条语句的复合语句,仍然如此。

下面是例3 - 5的源程序:
main( )
{
int a,b,c,min.
printf(" input a,b,c :").
scanf("%d %d %d" , &.a , &.b , &.c).
if(a min = a.
else
min = b.
if (c min = c.
printf("The result is %d\n",min).
}
执行情况如下:
input a,b,c: 3 5 2
The result is : 2
这里顺便提一下程序书写的缩排问题,所谓缩排,就是下一行与上一行相比,行首向右缩进若字符,如上例的min = a 、min = b等。适当的缩排能使程序的结构、层次清晰、一目了然,增加程序的易读性。应该从一开始就养成一个比较好的书写习惯,包括必要的注释、适当的空行以及缩排。

2. 复合语句
if语句中,有时需要执行的语句不止一条,这就要用到复合语句。
复合语句,就是用一对花括号括起来的一条或多条语句,形式如下:
{
语句1;
语句2;
。。。。
语句n;
}
无论包括多少条语句,复合语句从逻辑上讲,被看成是一条语句。
复合语句在分支结构、循环结构中,使用十分广泛。

[例3-6] 读入两个数x、y,将大数存入x,小数存入y。
分析: x、y从键盘读入,若x > = y,只需顺序打出,否则,应将x,y中的数进行交换,然
后输出。两数交换必须使用一个中间变量t,
定义三个浮点数x、y、t。
算法:
1) 读入x、y;
2 ) 大数存入x,小数存入y;
3 ) 输出x、y。
第2)步求精:
若x < y,则交换x与y;
再求精,x与y交换;
① t <== x
② x <== y
③ y <== t
算法的流程图见图3 - 3,

程序如下:
#include
main( )
{
float x,y,t.
printf("input x,y:").

相关文章


2006全国计算机等级二级南开百题部分试题4
江苏:2005年上半年计算机等级考试有重大调整
C语言程序设计(第3章程序控制语句)3
2006全国计算机等级二级南开百题部分试题2
2006全国计算机等级二级南开百题部分试题1
天津:2005年上半年计算机等级考试12月1日至10日报名
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛