C语言程序设计 教学课件 ppt 作者 金升灿第三章 分支结构程序设计

上传人:w****i 文档编号:92476258 上传时间:2019-07-10 格式:PPT 页数:32 大小:288KB
返回 下载 相关 举报
C语言程序设计 教学课件 ppt 作者 金升灿第三章 分支结构程序设计_第1页
第1页 / 共32页
C语言程序设计 教学课件 ppt 作者 金升灿第三章 分支结构程序设计_第2页
第2页 / 共32页
C语言程序设计 教学课件 ppt 作者 金升灿第三章 分支结构程序设计_第3页
第3页 / 共32页
C语言程序设计 教学课件 ppt 作者 金升灿第三章 分支结构程序设计_第4页
第4页 / 共32页
C语言程序设计 教学课件 ppt 作者 金升灿第三章 分支结构程序设计_第5页
第5页 / 共32页
点击查看更多>>
资源描述

《C语言程序设计 教学课件 ppt 作者 金升灿第三章 分支结构程序设计》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 金升灿第三章 分支结构程序设计(32页珍藏版)》请在金锄头文库上搜索。

1、第三章 分支结构程序设计,1)了解分支结构及分支结构流程图; 2)熟悉关系运算符及表达式和逻辑运算符及表达式的运算规则; 3)掌握if语句的各种形式及具体应用; 4)掌握switch语句的使用方法; 5)熟悉条件运算符及表达式的应用。,1,3.1 分支结构流程图,在程序设计中,常用分支结构流程图来表示分支结构的程序处理过程,如图3-1所示。 分支结构也可以用N-S流程图表示,如图3-2所示。,设计选择结构程序,要考虑两个方面的问题:一是如何表示条件,二是用什么语句实现选择结构。 在C语言中,一般用关系表达式或逻辑表达式表示条件,实现选择结构用if语句或switch语句。,2,3.2 关系运算和

2、逻辑运算,3.2.1 关系运算符和关系表达式 1关系运算符 (大于)、=(大于等于)、(小于)、 =(小于等于)、=(等于)、!=(不等于) 说明: 1)关系运算符的优先级 在关系运算符中,前4个优先级相同,后2个也相同,且前4个高于后2个。 关系运算符的优先级,低于算术运算符,但高于赋值运算符。 2)关系运算符结合性都是左结合的。 3)“等于”关系运算符是双等号“=”,而不是单等号“=”(是赋值运算符)。,3,3.2.1 关系运算符和关系表达式,2关系表达式 关系表达式的一般形式为: 表达式 关系运算符 表达式 关系表达式的运算结果是逻辑值,“真”或“假”。在C语言中,用整数“”表示“真”,

3、用整数“0”表示“假”。因此,一个关系表达式的值是1或0。 说明: 1)在C语言用整数“1”表示“真”,用整数“0”表示“假”。所以,关系表达式的值,还可以参与其它种类的运算。例如:(ab)+5。 2)由于字符型常量存储的是ASCII码值,因此字符数据的比较是按其ASCII码值进行。例如:a0的值为1(真),A100的值为0(假),A B的值为1(真)。,4,3.2.2 逻辑运算符和逻辑表达式,1逻辑运算符 &(逻辑与)、|(逻辑或)、!(逻辑非) 说明: 1)逻辑运算符的运算优先级 逻辑非的优先级最高,逻辑与次之,逻辑或最低,即: !(非)&(与)|(或) 逻辑运算符和其它运算符的优先级,按

4、高到低排列为: !(非)算术运算符关系运算符&|赋值运算符,(逗号运算符) 2)逻辑运算符的结合性。“!”是右结合的,“&”和“|”是左结合的。,5,3.2.2 逻辑运算符和逻辑表达式,2逻辑表达式 逻辑表达式的一般形式为: 单目逻辑运算符 表达式 表达式 双目逻辑运算符 表达式 逻辑运算的结果是“真”或“假”,分别用“1”和“0”来表示。因此,一个逻辑表达式的值是1或0。,6,3.3 if语句,if语句是C语言用于实现分支结构的语句之一。C语言中的if语句可以分为简单if语句、if-else语句以及if-else-if语句。 3.3.1 简单if语句 if(表达式) 语句 功能:如果表达式的

5、值为“非0(真)”,执行“语句”后结束if语句。否则,直接结束if语句。执行过程,如图3-3所示。,7,3.3.1 简单if语句,【例3-1】输入两个整数,输出其中的大数。 #include main() int a,b,max; printf(“ninput two numbers:“); scanf(“%d,%d“, ,程序运行结果: input two numbers: 6,2 max=6,8,3.3.2 基本if语句,if (表达式) 语句1 else 语句2 功能:如果表达式的值为“非0(真)”,则执行“语句1”后结束jf语句。否则,执行“语句2”后结束if语句。执行过程,如图3-4

6、所示。,9,3.3.2 基本if语句,【例3-3】从键盘输入两个整数,输出较大数。 #include main() int x,y; printf(“input x,y:“); scanf(“%d,%d“, ,程序运行结果: input x,y:3,5 max=5,10,3.3.3 分支结构的嵌套,在一个分支结构内完整地包含另一个分支结构时,叫做分支结构的嵌套。当程序流程进入某个选择分支后又引出新的选择时,就要使用嵌套分支结构。 【例3-5】从键盘输入两个整数,判断两个整数的大小关系。 算法分析:比较两个数大小的结果,有三种可能的结果。因此是三个分支问题。,11,3.3.3 分支结构的嵌套,#

7、include main() int a,b; printf(“input a,b:“); scanf(“%d,%d“, ,12,3.3.3 分支结构的嵌套,#include main() int a,b; printf(“input a,b:“); scanf(“%d,%d“, ,13,3.3.3 分支结构的嵌套,if嵌套语句的基本形式如下: if(表达式1) if(表达式2) 语句1 else 语句2 else if(表达式3) 语句3 else 语句4,14,3.3.4 if-else-if语句,if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3

8、else if(表达式n)语句n else 语句n+1 功能:依次计算表达式的值。当某个表达式的值“非0”时,执行其对应的else if子句后结束if语句。如果所有表达式的值均为“0”,则执行“语句 n”后结束if语句。执行过程,如图3-6所示。,15,3.3.4 if-else-if语句,【例3-6】从键盘上输入一个百分制成绩score,按下列原则输出其等级:score90,等级为A;80score90,等级为B;70score80,等级为C;60score70,等级为D;score60,等级为E。,main() float score; printf(“input a score:“);

9、scanf(“%f“, ,程序运行结果: input a score:85.6 85.60 is B,16,3.3.5 程序设计举例,【例3-7】从键盘输入两个整数,判断两个整数的大小关系。 #include main() int a,b; printf(“input a,b:“); scanf(“%d,%d“, ,程序运行结果: input a,b: 2,7 ab,17,3.4 switch语句,3.4.1 switch语句 switch(表达式) case 常量表达式1:语句序列1 case 常量表达式2:语句序列2 case 常量表达式n:语句序列n default:语句序列n+1 功能

10、:当switch后面“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case子句。如果所有的“常量表达式”的值都与“表达式”的值不匹配,则执行default子句。,18,3.4.1 switch语句,【例3-9】输入数字n(1n7),输出对应的英文星期名。 #include main() int a; printf(“input number: “); scanf(“%d“, ,程序运行结果: input number: 6 Saturday Sunday Error number,19,3.4.1 switch语句,case后面的“常量表达式”仅起语句标号(开关)作用,

11、并不进行条件判断。当“表达式”的值与某一case子句的“常量表达式”匹配时,就执行此case后面的所有“语句序列”,直到遇到break语句或switch语句的结束“”,不再进行标号判断(从程序运行结果可以理解)。因此,如果要强制结束switch语句,必须加上break语句。 此程序运行结果,并不符合编程的要求。输入“6”时,应该输出“Saturday”后,结束switch语句,而不应该输出其它内容。在所有的case子句后,加break语句可以解决。,20,3.4.1 switch语句,switch语句的常用形式为: switch(表达式) case 常量表达式1:语句序列1;break; ca

12、se 常量表达式2:语句序列2;break; case 常量表达式n:语句序列n;break; default:语句序列n+1;break; 说明:break语句的作用是强制结束switch语句,将程序流程转到switch语句后面,去执行下一条语句。,21,3.4.2 switch语句的使用技巧,switch语句常用于处理多分支结构,每个分支的执行由case后面表达式的值确定。但实际问题中经常遇到根据某个范围选择分支。例如,百分制成绩转换为5级成绩、公司员工按工作业绩提成、商品的价格根据购物多少打折扣等,都是计算分段函数值的问题。计算分段函数的值时,需要根据自变量的不同取值范围,选用相应的函数

13、关系式计算函数值。这时常使用一种技巧,将各取值范围转化为具体的值后,再使用switch语句。,22,3.4.2 switch语句的使用技巧,【例3-10】从键盘上输入一个百分制成绩score,按下列原则输出其等级。score90,等级为A;80score90,等级为B;70score80,等级为C;60score70,等级为D;score60,等级为E。 算法分析:如果直接用switch语句,case子句太多不现实。由百分制计算等级时,成绩段是10的倍数。如果score/100,则score90转化为10,9;80score90转化为8;70score80转化为7;60score70转化为6;

14、score60转化为5,4,3,2,1,0。,23,3.4.2 switch语句的使用技巧,#include main() int score, grade; printf(“Input a score(0100): “); scanf(“%d“, ,case 5: case 4: case 3: case 2: case 1: case 0: printf(“grade=En“); break; default: printf(“The score is out of range!n“); ,24,3.4.2 switch语句的使用技巧,【例3-11】编写程序,实现计算器功能。输入运算数和四

15、则运算符,输出计算结果。 main() float a,b; char op; printf(“Input expression:a+(-,*,/)bn“); scanf(“%f%c%f“,case /:if(b) /*if(b=0)*/ printf(“Data errorn“); else printf(“%.2f/%.2f=%.2fn“,a,b,a/b); break; default:printf(“Input errorn“); ,25,3.4.2 switch语句的使用技巧,【例3-12】简单菜单的设计 #include main() int push; printf(“1. fi

16、len“); printf(“2. editn“); printf(“3. viewn“); printf(“4. Quitn“); printf(“Enter your choice: “); scanf(“%d“,switch(push) case 1:printf(“you selected file menu.n“); break; case 2:printf(“you selected edit menu.n“); break; case 3:printf(“you selected view menu.n“); break; case 4:exit(0); default:printf(“nInput error!n“); ,程序运行结果: 1. file 2. e

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号