C语言程序设计(第二版) 教学课件 ppt 作者 刘加海 朱云其第四章 第四章

上传人:E**** 文档编号:89190668 上传时间:2019-05-21 格式:PPT 页数:41 大小:552.50KB
返回 下载 相关 举报
C语言程序设计(第二版) 教学课件 ppt 作者 刘加海 朱云其第四章 第四章_第1页
第1页 / 共41页
C语言程序设计(第二版) 教学课件 ppt 作者 刘加海 朱云其第四章 第四章_第2页
第2页 / 共41页
C语言程序设计(第二版) 教学课件 ppt 作者 刘加海 朱云其第四章 第四章_第3页
第3页 / 共41页
C语言程序设计(第二版) 教学课件 ppt 作者 刘加海 朱云其第四章 第四章_第4页
第4页 / 共41页
C语言程序设计(第二版) 教学课件 ppt 作者 刘加海 朱云其第四章 第四章_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《C语言程序设计(第二版) 教学课件 ppt 作者 刘加海 朱云其第四章 第四章》由会员分享,可在线阅读,更多相关《C语言程序设计(第二版) 教学课件 ppt 作者 刘加海 朱云其第四章 第四章(41页珍藏版)》请在金锄头文库上搜索。

1、第4章,分支结构的程序设计,Company Logo,本章重点 if语句的三种形式 if嵌套语句的应用 if语句的应用 switch语句的程序流程 ifelse语句的应用 switch语句的使用形式 ifelse if语句的应用 switch语句的应用,Company Logo,本章难点 ifelse if的使用 if嵌套语句的使用 if语句与循环语句的联合使用 switch语句的程序流程 switch语句的应用 嵌入到循环中的switch语句的使用,Company Logo,4.1 if语句的应用,在现实生活中,每天都会根据实际情况进行某种选择。例如,早上去教室上课,如果出门时下雨的话,就撑

2、一把雨伞去教室。也就是说,人会根据条件进行行为选择。而计算机也会根据不同情况做出各种逻辑判断,进行一定的选择。在C语言程序设计中,这样的选择通常是通过if语句实现的。if语句的作用是使程序在运行过程中,根据判断指定的条件是否满足来决定是否执行某种操作。if语句的运用能使程序针对不同情况作不同的处理,增加了程序的灵活性。if语句是一种选择结构,它的基本形式有三种,下面分别进行介绍。,Company Logo,if语句形式之一。 用法:if(表达式) 语句块 功能:如果表达式为“真”(非0),则执行语句;否则,执行if后面的语 句。程序流程图如图4.1所示。,注意:if表达式后不要用分号,表达式要

3、用圆括号,如果要执行的语 句不止 一条,而是多条语句,这时需要把这多条语句用“ ” 括起来,组成 复合句或语句块。初学者对此很容易犯错。,图4.1 if语句流程图,Company Logo,【例4.1】 从键盘输入一批数,统计正数的和,当输入0时程序结束。,分析:通过循环输入整数,假设输入变量为x;然后要判断该数是否为0, 如果不为0,再判断值是否大于零,如果大于零,加入和。流程图如图4.2所示。,编辑源程序代码4-1.c:,#include int main( ) int x,sum=0; scanf(“%d“, ,Company Logo,图4.2 程序流程图,编译程序4-1.c,并执行程

4、序,程序执行后在屏幕上输出: 2 4 -5 8 0 9 正数总和为:14,注意:当输入的数小于等于0 时,程序无任何动作。,Company Logo,定义一字符变量ch并从键盘读入,如为小写字母,则转化为大写字母后输出,否则什么也不做,程序结束。,提示:判断是否为小写字母可写为: (ch=a,Company Logo,【例4.2】 假设要输入某个学生8门课程的成绩,如果输入某课程的成绩大于等于85分,则输出“该课程成绩秀!”,同时输出目前已经有几门课程成绩优秀了。最后,输出该学生的总分和平均分。,分析:要输入8门课程的成绩,所以要用到循环结构;根据输入的成绩是否大于等于85分来确定总分是否输出

5、成绩优秀,因此,在for语句中还要使用if语句。,程序的执行过程中,给变量分配存储空间,循环开始,输入一门课的成绩,判断输入的成绩是否大于等于85,如果是大于等于85,输出“成绩优秀!”,并且累计优秀课程门数和输出优秀课程数,再判断循环条件,最后输出总分和平均分。,Company Logo,流程图如图4.3所示。,图4.3 程序流程图,Company Logo,编辑源程序代码4-2.c:,点击查看代码,Company Logo,编译程序4-2.c,并执行程序,程序执行后在屏幕上输出: 请输入第1门课成绩:78,请输入第2门课成绩:90,该课程成绩优秀! 累计1门课程成绩优秀! 请输入第3门课成

6、绩:66,请输入第4门课成绩:85,该课程成绩优秀! 累计2门课程成绩优秀! 请输入第5门课成绩:79,请输入第6门课成绩:98,该课程成绩优秀! 累计3门课程成绩优秀! 请输入第7门课成绩:56,请输入第8门课成绩:72,该学生8门课程总分:624.0 平均分:78.0,Company Logo,1. 上例若把if(cj=85)后的“ ”去掉,程序执行的结果会怎样? 2. 变量avg是否可以省略?,Company Logo,上机操作与练习1,1. 输入若干整数,把正数相加,当输入0时结 束,最后输出正数的和。 2. 定义一字符变量ch,并从键盘连续读入,如为 小写字母,则转化为大写字母后输出

7、,否则什 么也不做,直到输入回车,程序结束。,Company Logo,4.2 ifelse语句的应用,if语句形式之二。 用法: if(表达式) 语句块1 else 语句块2,功能:如果表达式的结果为“真”(非0),则执行语句块1;否则,执行语句块2。 流程图如图4.4所示。,图4.4 ifelse语句流程图,Company Logo,【例4.3】 判断从键盘输入的数是正数还是负数,输入数0结束程序运行。,分析:数从键盘输入,输入的数如果大于0,则输出“输入的数是正数”;如果小于0,则输出“输入的数是负数”;如果等于0,则程序运行结束。,流程图如图4.5所示。,编辑源程序代码4-2.c:,#

8、include int main() int x=1; printf(“n请输入一整数(输入0程序退出):“); scanf(“%d“, ,Company Logo,图4.5 程序流程图,编译程序4-3.c,并执行程序,程序执行 后在屏幕上输出:,请输入一整数(输入0程序退出):9,输入的数9是正数. 请输入一整数(输入0程序退出):-8,输入的数-8是负数. 请输入一整数(输入0程序退出):0,Company Logo,上机操作与练习2,从键盘输入若干整数,当输入0时结束,求所有偶数的和。,【例4.4】 从键盘输入10个整数,把所有的正数相加以及所有的负数相加, 最后输出所有正数的和以及所有

9、负数的和。,分析:要从键盘输入10个整数,所以采用循环结构;输入的数分正数和负数,各进行累加。流程图如图4.6所示。,Company Logo,图4.6 流程图,Company Logo,编辑源程序代码4-4.c:,点击查看代码,Company Logo,编译程序4-4.c,并执行程序,程序执行后在屏幕上输出:,请输入10整数中的第1个数:9,请输入10整数中的第2个数:87,请输入10整数中的第3个数:-8,请输入10整数中的第4个数:2,请输入10整数中的第5个数:-534,请输入10整数中的第6个数:34,请输入10整数中的第7个数:-1,请输入10整数中的第8个数:34,请输入10整数

10、中的第9个数:99,请输入10整数中的第10个数:0,有7个正数,和为:265 有3个负数,和为:-543,Company Logo,1. 定义两个整型变量x、y,并从键盘读入一个整型数给x,如此数大于等于0,把此数的平方赋给y;否则,把此数的绝对值赋给y。 提示:可用如下程序段: if(x=0) y=x*x; else y=-x; 2. 定义三个实型变量x、y和z,并从键盘读入,求出这三个数中的最小值。,Company Logo,4.3 ifelse if 语句的应用,if语句形式之三。 用法: if(表达式1) 语句块1 else if(表达式2) 语句块2 else if(表达式n-1)

11、 语句块n-1 else 语句块n,功能:从上到下依次判断表达式的值,当出现某个值为真(非0)时,执行与其相对应的语句,并跳过其余条件的判别;如果所有的表达式均为假(0),则执行语句n。,Company Logo,流程图如图4.7所示。,图4.7 ifelse if流程图,Company Logo,【例4.5】 从键盘输入一个数给x,然后判断该变量是否大于零;若大于零,则输出一行文字说明该变量是正数;否则判断变量x的值是否为零,若为零,则输出一行文字说明该变量是零;否则,x的值是负数,输出一行文字说明该变量是负数。,分析:输入的数分三种情况:正数、负数和零。流程图如图4.8所示。 编辑源程序代

12、码4-5.c:,#include int main() int x; printf(“输入一数值:“); scanf(“%d“, ,Company Logo,图4.8 流程图,Company Logo,4.4 if嵌套语句的应用,if语句的嵌套是指if语句中又包含了一个或多个if语句。上一节介绍的ifelse if结构也是if语句的嵌套结构。,【例4.6】 编写一个程序,由键盘输入三个整数作为三角形的三条边,判断是否能构成一个三角形;如能构成一个三角形,则判断是等边三角形、等腰三角形、直角三角形还是其他一般的三角形。,分析:设三个整数分别为a、b和c,构成三角形的条件为a+bc&a+cb&b+

13、ca; 构成等边三角形的条件为a=b&b=c;构成等腰三角形的条件为a=b|b=c|a=c;构成直角三角形的条件为a*a+c*c=b*b|a*a+b*b=c*c|c*c+b*b=a*a。,Company Logo,编辑源程序代码4-6.c:,点击查看代码,Company Logo,4.5 switch的应用,用if-else-if或多重嵌套if语句可以实现多分支选择,但程序冗长,可读性差。C语言提供了switch语句,专门处理多分支选择,使程序结构简洁、清晰。,switch语句格式如下:,switch(表达式) case 常量表达式1: 语句序列 break; case 常量表达式2: 语句序

14、列2 break; case 常量表达式n: 语句序列n break; default: 语句序列n+1 ,Company Logo,当执行switch语句时,首先计算紧跟其后一对括号中的表达式的值,然后在switch语句体内寻找与该值吻合的case标号,如果有与该值相等的标号,则执行该标号后开始的各语句,包括在其后的所有case和default中的语句,直到break语句或switch语句体结束;如果没有与该值相等的标号,并且存在default标号,则从default标号后的语句开始执行,直到switch语句体结束;如果没有与该值相等的标号,且不存在default标号,则跳过switch语句

15、体,什么也不做。流程图如图4.9所示。,Company Logo,注意: 1)switch、case、default是关键字。 2)switch语句后面用花括号括起来的部分称为switch语句体。 3)switch的表达式可以是整型表达式、字符型表达式、枚举型表达式等。 4)case中常量表达式的类型必须与switch的表达式类型相同,各case语句标号的值应该互不相同。 5)default代表所有case标号之外的那些标号,default标号可以出现在语句体中任何标号位置上,在switch语句体中也可以没有default标号。 6)每个选择支路都以case开头,case的标号后要有“;”,每

16、个支路后可以有多个 语句。 7)必要时,case语句标号后的语句可以省略不写。 8)在关键字case和常量表达式之间一定要有空格。例如,case 10:不能写成case10:。,Company Logo,图4.9 语句执行的流程图,Company Logo,【例4.8】 求执行下列程序段后k的值。,char c=2;int k; switch(c+1-0) case 2:k+=1; case 2+1:k+=2; case 4:k+=3; ,分析:switch中表达式的值为3,从case 2+1入口,执行语句k+=2;得k=3,由于此语句后无break;语句,继续执行case 4后语句k+=3;最后得k66。,Company Logo,【例4.9】 求执行下列程序段后k的值。,char c ; int k2; scanf(“%

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

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

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