手机版

新编C语言程序设计教程(本科)第5章

发布时间:2024-11-17   来源:未知    
字号:

第5章

选择结构程序设计

第5章选择结构程序设计

第5章

选择结构程序设计

5.1 if语句

5.1.1 单分支if语句

格式: if (条件表达式)语句 

功能: 先计算条件表达式的值, 如果条件表达式的

值为真(非0), 执行语句(选择体), 否则执行if语句的下一条语句。 

NS图: 见图5 -1 之(a)。

第5章

选择结构程序设计

图5 -1

第5章

选择结构程序设计

例如: 

(1) 如果x>0, 输出x。 

if(x>0)printf(″x=%f″, x);  

(2) 如果a等于b, 输出″a=b″。 

if(a==b)printf(″%s″, ″a=b″);

第5章

选择结构程序设计

说明:  

(1) 条件表达式必须用小括号括起, 同时注意区分

作为条件的表达式与作为数值的表达式。

 (2) if语句中要选择执行的语句称为选择体, 选择体从语法上只能是一条语句, 如果选择体需多条语句描述, 必须采用复合语句。 

第5章

选择结构程序设计

例如:如果x>0, 求x的平方根。 

(1) 将结果放入变量y 中; 

(2) 输出x的平方根。 

if (x>0) 

{y=sqrt(x);  

printf(″平方根=%f″, y); 

} 

(3) 不管选择体多么复杂, 包含多少条语句, if语句

逻辑上是一条语句, 后面的双分支if语句、多分支if语句、switch语句、循环语句均是逻辑上的一条语句。

第5章选择结构程序设计例 5– 1计算y, y x 1 x 1

提示: x等于1函数无定义。程序如下: /*程序5 - 1,求函数值*/ main( ){float x; float y; printf(″请输入x:″); scanf(″%f″,&x); if (x!=1){y=(x+1)/(x -1); printf(″x=%6.2f, y=%6.2f\n″, x, y);}}输入数据: 1.2运行结果: x= 1.20, y= 11.00

第5章

选择结构程序设计

5.1.2 双分支if语句

格式: if (条件表达式)语句1 else 语句2 

功能: 先计算条件表达式的值, 如果条件表达式的

值为真(非0), 执行语句1(选择体1), 否则执行语句2(选择体2), if语句执行完后执行if 语句的下条语句。

NS图: 见图5 -1之(b)。

第5章

选择结构程序设计

例如:  

(1) 如果x>0, 输出x大于0, 否则输出x小于等于0。 

if(x>0)printf(″x大于0″);  

elseprintf(″x小于等于0″);  

(2) 如果a等于b, 输出a等于b, 否则输出a不等于b。 if(a==b)printf(″a等于b″);  

elseprintf(“a不等于b″);

第5章

选择结构程序设计

(3) 求两个数x、y的最大值max。 

if(x>y)max=x;  

else max=y;  

(4) 判断整数i 的奇偶性。 

if(i%2= =0)printf(″偶数\n″);  

elseprintf(″奇数\n″);  

第5章选择结构程序设计

(1) 双分支if语句形式上相当于单分支if语句扩展else分支而来, else分支称为else子句, else子句不能单独存在。

(2) 在其它高级语言中特别强调else子句前不能有分号, C语言中else子句前必有分号。

(3) 选择体如为多条语句同样必须采用复合语句。

 (4) 可采用条件运算等价实现, 从而以表达式的形式参与运算。

例如, 上例中三个双分支if语句用条件运算描述:  

①(x>0)?printf(″x大于0″): printf(″x小于等于0″) ②(a==b)?printf(″a等于b″):printf(″a不等于b″) ③(x>y)?max=x: max=y

第5章

选择结构程序设计

(5) 单分支if 语句可认为是双分支if 语句缺省else子句的特殊情况, 一条双分支if语句可用两条单分支if语句实现。

例如, 前例中三条双分支if语句改用单分支if语句实现: ①if (x>0)printf(″x大于0″);  

if (x<=0)printf(″x小于等于0″);  

②if (a==b)printf(″a等于b″);  

if(a![KG-*2]=b)printf(″a不等于b″);  

③if(x>y)max=x;  

if(x<=y)max=y;

第5章选择结构程序设计

例5 –2计算y,y x 1

x 1x 1x 1

/*程序5 -2, 求函数值*/ 

main( ) 

{float x;  

float y;  

printf(″请输入x: ″);  

scanf(″%f″, &x);  

if (x>1) 

y=x+1;  

else 

y=x-1;  

printf(″x=%6.2f, y=%6.2f\n″, x, y); 

}

输入数据: 1.2 

运行结果: x= 1.20, y= 2.00

第5章

选择结构程序设计

例5 –3输入两个数, 求两个数的最大值、最小值。 数据分析:  

输入量: 两个数x、y, float 

输出量: 最大值max、最小值min, float 

算法分析:  

①输入两个数x、y 

②比较两个数x、y 大小 

如果x>y, max=x, min=y 

如果x<y, max=y, min=x 

③输出最大值max、最小值min

第5章选择结构程序设计

/*程序5 -3, 求两个数的最大值、最小值*/ 

main( ) 

{ float x, y;  

float max, min;  

printf(″请输入两个数x, y: ″);  

scanf(″%f, %f″, &x, &y);  

if (x>y) 

{max=x;  

min=y;  

} 

else 

{max=y;  

min=x;  

} 

printf(″max=%6.2f, min=%6.2f\n″, max, min); 

}

输入数据: 1.2, 2.54 

运行结果: max= 2.54, min= 1.20

第5章

选择结构程序设计

5.1.3 多分支if语句

一般形式:  

if (条件表达式1) 

if (条件表达式2)语句1 

else 语句2 

else 

if (条件表达式3)语句3 

else 语句4

新编C语言程序设计教程(本科)第5章.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)