




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计(第3版)张磊编著 清华大学出版社,C语言程序设计 第3章 分支结构程序设计,C语言程序设计(第3版) 张 磊 编著 21世纪高等学校规划教材 清华大学出版社,C语言程序设计(第3版)张磊编著 清华大学出版社,第3章 分支结构程序设计,3.1 简单条件的分支程序 3.2 复合条件的分支程序 3.3 用switch语句实现分支控制 3.4 goto语句 3.5 条件运算 3.6 分支结构应用举例,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1 简单条件的分支程序,3.1.1判断优等生程序 3.1.2关系表达式 3.1.3 if语句,C语言程序设计(第3版)张磊编著 清华大
2、学出版社,3.1.1判断优等生程序,例3-1 输入一个学生的两门课的成绩,若平均成绩不低于90分,则显示“优等生”,否则显示“要加油啊!”。 1程序 /* program e3-1.c */ #include void main() int a1,a2,ave; printf(输入两门课的成绩:); scanf(%d,%d, ,2程序解析 程序中的if-else命令用于实现分支控制,分支处理的条件是“ave=90”。当ave=90成立时,执行语句“printf(”优等生!n“);”,输出字符串“优等生!”;否则,执行语句“printf(”要加油啊!n“);”,输出字符串“要加油啊!”。 第一次
3、执行结果 输入两门课的成绩:88,96 优等生! 第二次执行结果 输入两门课的成绩:77,85 要加油啊!,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.2关系表达式,关系表达式:由关系运算符连接若干个算术表达式构成的式子。分支结构的条件部分,通常使用关系表达式表示。如,程序e3-1.c中if命令的分支处理条件“ave=90” 1关系运算符,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.2关系表达式,1关系运算符,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.3 if语句,if语句的一般形式 if语句的简单形式 if语句的嵌套结构 if-else if结构,
4、C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.3 if语句,结构 if(表达式) 语句组1 else 语句组2 其执行过程 如果表达式的值为非0, 则执行“语句组1”,然后执行紧接“语句组2”之后的语句;否则,跳过语句组1而执行语句组2,然后继续向下执行。,1if语句的一般形式,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.3 if语句-if语句的一般形式,例3-2 计算分段函数的值。,/* program e3-2.c */ #include void main() int x,y; printf(X=); scanf(%d, ,C语言程序设计(第3版)张磊编著 清华
5、大学出版社,3.1.3 if语句-if语句的简单形式,结构 if(表达式) 语句组 执行过程 若表达式的值非0(即真), 则执行语句组,然后继续执行if语句的下一个语句;否则,不执行语句组,而直接执行语句组之下的语句,即if语句的下一个语句。 即:该if语句的功能就是根据条件(表达式的值),决定是否执行语句组。,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.3 if语句-if语句的简单形式,例3-3 输入一个学生两门课的成绩,若平均成绩不低于90分,则显示“优等生”。, 程序实现 /* program e3-3.c */ #include void main() int a1,a2
6、,ave; printf(输入两门课的成绩,数据之间用“,”分隔:); scanf(%d,%d, , 算法设计,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.3 if语句-if语句的简单形式,例3-4 输入一个整数x,若是偶数,则输出它。, 程序实现 /* program e3-4.c */ #include void main() int x; printf(Input x: ); scanf(%d, , 算法设计,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.3 if语句-if语句的简单形式,例3-5 输入两个整数,输出其中的最大数。, 程序实现 /* progra
7、m e3-5.c */ #include void main() int x,y,max; printf(Input x,y: ); scanf(%d,%d, , 算法设计,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.3 if语句-if语句的嵌套结构,当一个if语句的语句组内又使用了if语句时,就形成了if语句的嵌套结构。,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.3 if语句-if语句的嵌套结构,例3-6 输入一个学生两门课的成绩,若平均成绩小于0,则显示“数据错误!”;否则,若平均成绩不低于90分,则显示“优等生”,否则显示“要加油啊!”。,算法设计 根据平均
8、成绩的计算结果,将有两个大的分支: 分支一:平均成绩小于0,显示“数据错误!”; 分支二:平均成绩不小于0,进一步进行小分支处理。,#include void main() int a1,a2,ave; printf(输入两门课的成绩:); scanf(%d,%d, ,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.3 if语句- if-else if结构,一般结构 if(表达式1) 语句组1 else if(表达式2) 语句组2 else if(表达式3) 语句组3 . . . else if(表达式n) 语句组n else 语句组n+1,执行过程 从上到下逐个对条件进行判断, 一
9、旦发现条件满足就执行与它有关的语句组,其下的所有条件都不再判断,当然它们的语句组也不被执行;当任何一个条件都不满足时,执行最后一个语句组n+1。,C语言程序设计(第3版)张磊编著 清华大学出版社,3.1.3 if语句- if-else if结构,例3-7 计算分段函数值,#include void main() float x,y; printf(Input: ); scanf(%f, ,C语言程序设计(第3版)张磊编著 清华大学出版社,3.2 复合条件的分支程序,3.2.1 使用新标准的优等生程序 3.2.2 逻辑表达式,C语言程序设计(第3版)张磊编著 清华大学出版社,3.2.1 使用新标
10、准的优等生程序,例3-9 输入一个学生的两门课的成绩,若每门课的成绩都不低于90分,则显示“优等生”,否则显示“要加油啊!”。,1. 程序 #include void main() int a1,a2; printf(输入课程成绩:); scanf(%d,%d, ,2. 程序解析 程序中的if-else命令实现分支控制,分支处理的条件由逻辑表达式“a1=90 scanf(%d, ,程序中的“break”为中断命令,功能是终止switch语句,使程序立即执行switch语句的后续语句,即“printf(n);”。,C语言程序设计(第3版)张磊编著 清华大学出版社,3.3 用switch语句实现分
11、支控制,例3-14 缺省case语句组的程序举例。,#include void main() char result; scanf (%c, ,任何一个case的语句组允许为空。,switch表达式通常为整型值或字符型值,case中常量的类型应与之相应。 case中的“常量”位置允许是常数表达式,但不允许是变量表达式。,C语言程序设计(第3版)张磊编著 清华大学出版社,3.4 goto语句,goto语句是一种无条件转移语句,主要用于控制程序的执行方向,也可以利用它反复地执行同一段程序。 一般格式: goto 语句标号; 语句标号是一个标识符,它和语句之间以“:”分隔,执行goto语句后, 程序
12、将跳转到该标号处,并执行其后的语句。,C语言程序设计(第3版)张磊编著 清华大学出版社,3.4 goto语句,例3-15 输入一批自然数,求累加和,当输入数值为-1时,结束求和过程。 #include void main() int n,sum=0; loop: printf(Input a integer: ); scanf(%d, ,C语言程序设计(第3版)张磊编著 清华大学出版社,3.5 条件运算,例3-16 用条件运算计算分段函数的值。,程序实现 /* program e3-16.c */ #include void main() int x,y; printf(X=); scanf(
13、%d, ,C语言程序设计(第3版)张磊编著 清华大学出版社,3.5 条件运算,3实现程序 /* program e3-17.c*/ #include void main() char ch1,ch2; printf(Input: ); ch1=getchar(); ch2=(ch1=A ,C语言程序设计(第3版)张磊编著 清华大学出版社,3.6 分支结构应用举例,3.6.1 闰年问题 3.6.2 判断等边三角形 3.6.3 求解一元二次方程 3.6.4 学生成绩分等显示,C语言程序设计(第3版)张磊编著 清华大学出版社,3.6.1闰年问题,例3-18 闰年判断程序。 1问题分析与算法设计 逻辑
14、表达式 year%400=0|year%4=0 printf(Input year: ); scanf(%d, ,C语言程序设计(第3版)张磊编著 清华大学出版社,3.6.2 判断等边三角形,例3-19 输入三角形的边长值,判断三角形是否是等边三角形。 问题分析与算法设计 三角形三条边为a、b、c,对于输入的任意一组数据,首先要判断其正确性,若不能满足构成三角形的条件时,则数据不正确,要重新输入数据。能构成三角形时,再判断是否是等边三角形。 下面的逻辑表达式成立时,数据不正确,不能构成三角形。 a=0|b=0|c=0|a+bc|a+cb|b+ca 能构成三角形,且下面的逻辑表达式成立时,则为等
15、边三角形。 a=b loop: printf(a,b,c: ); scanf(%d,%d,%d, ,程序实现,C语言程序设计(第3版)张磊编著 清华大学出版社,3.6.3 求解一元二次方程,例3-20 设计求解一元二次方程,(a0),的通用程序,问题分析与算法设计, 若有实根,则计算并输出实根, 程序的输入量为方程的系数a、b、c。, 程序中要使用数学函数sqrt(),要注意打开math.h文件。,#include #include void main() float a,b,c; float x1,x2,d; printf(Input a,b,c: ); scanf(%f,%f,%f, ,C
16、语言程序设计(第3版)张磊编著 清华大学出版社,3.6.4 学生成绩分等显示,例3-21 某班学生有数学、英语两门课程,按百分制成绩进行考核。要求输入各门课程成绩,然后按平均成绩分等显示考核结果。 考核结果的等级标准如下: 优秀(excellence): 平均成绩90; 良好( all right ): 80平均成绩90; 中等( middling ): 70平均成绩80; 及格( pass ): 60平均成绩70; 不及格( fail ): 平均成绩60。,C语言程序设计(第3版)张磊编著 清华大学出版社,3.6.4 学生成绩分等显示,/* program e3-21.c */ #include void main() int a,b; int ave; repeat: printf(Data(a,b): ); scanf(%d,%d, ,C语言程序设计(第3版)张磊编著 清华大学出版社,小 结,(1) 实现分支结构的控制语句主要是if语句和switch语句、goto语句,if语句适用于分支较少的情况,switch语句适用于分支较多的情况。 (2) if语句有多种形式,任何一种if语句的语句体中都可以出现其他的if结构,这种结构称为if语句的嵌套结构。 (3) switch语句专门
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于空调合同标准文本
- 主机备件采购合同标准文本
- 入股汽修店合同样本
- 会展合同标准文本分析
- 业务鉴定合同样本
- 企业股东合作合同标准文本
- 供货合同与买卖合同样本
- 买卖个人房产合同范例
- ppp医院合作合同样本
- 2025前期物业管理合同(版)《物业管理合同》
- 全媒体内容编辑技巧试题及答案
- 2025届广东省燕博园联考(CAT)高三下学期3月模拟测试物理试题(含答案)
- 2025-2030中国SP导电炭黑市场现状调研与前景研究报告
- 华阳煤矿考试试题及答案
- 2025民法典婚姻家庭编司法解释二解读
- 眼视光技术考试题(含答案)
- 垃圾清运合同范本模板
- 八项规定试题及答案
- 工程测量报价单
- 学习解读2022年《关于加快推进政务服务标准化规范化便利化的指导意见》实用PPT动态课件
- 培训签到表 (最新版)
评论
0/150
提交评论