ImageVerifierCode 换一换
格式:PPT , 页数:35 ,大小:1.56MB ,
文档编号:7650515      下载积分:15 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-7650515.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(momomo)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(《C语言程序设计教程》课件第4章 选择结构程序设计.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

《C语言程序设计教程》课件第4章 选择结构程序设计.ppt

1、武汉工程职业技术学院武汉工程职业技术学院第四章第四章 选择结构程序设计选择结构程序设计武汉工程职业技术学院武汉工程职业技术学院教学目标:教学目标:教学重点与难点:教学重点与难点:第四章第四章 选择结构程序设计选择结构程序设计武汉工程职业技术学院武汉工程职业技术学院3 3第四章第四章 选择结构程序设计选择结构程序设计选择结构又称为分支结构,是一种常见的程序控制结构。选择结构又称为分支结构,是一种常见的程序控制结构。在日常生活中,如果天气晴朗,我们就去郊游;或者如果考在日常生活中,如果天气晴朗,我们就去郊游;或者如果考试不及格,那么要参加补考。即根据条件进行判断,然后依试不及格,那么要参加补考。即

2、根据条件进行判断,然后依据判断的结果进行相应的情况处理。据判断的结果进行相应的情况处理。在在C C语言中,选择结构分为两类:语言中,选择结构分为两类:(1)if(1)if选择结构:选择结构:根据条件进行判断,选择执行不同的分根据条件进行判断,选择执行不同的分支语句。支语句。(2)switch(2)switch选择结构:选择结构:计算表达式的值,然后进行判断,计算表达式的值,然后进行判断,选择执行多分支其中一个分支。选择执行多分支其中一个分支。武汉工程职业技术学院武汉工程职业技术学院4 44.1 if语句语句4.1.1 结构化算法结构化算法 if语句分为三种形式,单分支、双分支和多分支结构。语句

3、分为三种形式,单分支、双分支和多分支结构。1.单分支选择结构单分支选择结构单分支结构是最简单的选择结构,其语法的一般格式为:单分支结构是最简单的选择结构,其语法的一般格式为:if(表达式表达式)语句语句;或者或者if(表达式表达式)语句块语句块;执行过程:执行过程:if后面括号中的表达式是要判断的条件,如果表达后面括号中的表达式是要判断的条件,如果表达式的值为真,则执行后面的语句或语句块;如果表达式的值为假,式的值为真,则执行后面的语句或语句块;如果表达式的值为假,则不会执行后面的语句或语句块。执行流程如图则不会执行后面的语句或语句块。执行流程如图4.1所示。所示。武汉工程职业技术学院武汉工程

4、职业技术学院5 54.1.1 if语句的三种形式语句的三种形式图图4.1 单分支选择结构单分支选择结构武汉工程职业技术学院武汉工程职业技术学院【例【例4.1】从键盘上输入两个整数,比较它们的大小,并按照】从键盘上输入两个整数,比较它们的大小,并按照从小到大的顺序输出。从小到大的顺序输出。分析:分析:将存放在两个变量将存放在两个变量x和和y中的数进行交换,必须借助中的数进行交换,必须借助于第三个变量才能实现。于第三个变量才能实现。6 64.1.1 if语句的三种形式语句的三种形式 t y x 关键代码如下:关键代码如下:If(xy)t=x;x=y;y=t;武汉工程职业技术学院武汉工程职业技术学院

5、程序如下:程序如下:#include main()int int1,int2,t;printf(请输入两个整数:请输入两个整数:n);scanf(%d,%d,&int1,&int2);if(int1int2)t=int1;int1=int2;/*两个数交换需借助第三个变量两个数交换需借助第三个变量t*/int2=t;printf(%d,%dn,int1,int2);7 74.1.1 if语句的三种形式语句的三种形式程序运行结果:程序运行结果:请输入两个整数:请输入两个整数:99,78 78,99武汉工程职业技术学院武汉工程职业技术学院8 84.1.1 if语句的三种形式语句的三种形式【例【例4

6、.2】从键盘上输入三个数,并按照从小到大的顺序输出。】从键盘上输入三个数,并按照从小到大的顺序输出。分析:一共比较三次分析:一共比较三次第一次比较:如果第一次比较:如果ab,将,将a和和b交换。交换。第二次比较:如果第二次比较:如果ac,将,将a和和c交换,两次比较后交换,两次比较后a为最小数。为最小数。第三次比较:如果第三次比较:如果bc,将,将b和和c交换,得到较小数和最大数。交换,得到较小数和最大数。程序如下:程序如下:#include main()float a,b,c,t;printf(请输入三个数:请输入三个数:n);scanf(%f,%f,%f,&a,&b,&c);if(ab)t

7、=a;a=b;/*a和和b比较后交换比较后交换*/b=t;武汉工程职业技术学院武汉工程职业技术学院9 9 if(ac)t=a;a=c;/*a和和c比较后交换比较后交换*/c=t;if(bc)t=b;b=c;/*b和和c比较后交换比较后交换*/c=t;printf(排序后结果为排序后结果为:%5.2f,%5.2f,%5.2fn,a,b,c);4.1.1 if语句的三种形式语句的三种形式程序运行结果:程序运行结果:请输入三个数:请输入三个数:123.67,98.75,76.34 排序后结果为:排序后结果为:76.34,98.75,123.67思考:思考:如果将例题中改为按照从大到小的顺序输出,程序

8、如何变动?如果将例题中改为按照从大到小的顺序输出,程序如何变动?武汉工程职业技术学院武汉工程职业技术学院10104.1.1 if语句的三种形式语句的三种形式 2.双分支选择结构双分支选择结构双分支结构语法的一般格式为:双分支结构语法的一般格式为:if(表达式表达式)语句块语句块1;else 语句块语句块2;执行过程:执行过程:if后面括号中的表达式是要判断的条件,如果后面括号中的表达式是要判断的条件,如果表达式的值为真,则执行语句块表达式的值为真,则执行语句块1;如果表达式的值为假,则;如果表达式的值为假,则执行语句块执行语句块2,执行流程如图,执行流程如图4.2所示。所示。图图4.2 双分支

9、选择结构双分支选择结构武汉工程职业技术学院武汉工程职业技术学院11114.1.1 if语句的三种形式语句的三种形式3.多分支选择结构多分支选择结构多分支结构用于多种条件判断,其语法的一般格式为:多分支结构用于多种条件判断,其语法的一般格式为:if(表达式表达式1)语句块语句块1;else if(表达式表达式2)语句块语句块2;else if(表达式表达式3)语句块语句块3;else if(表达式表达式n)语句块语句块n;else 语句块语句块n+1;武汉工程职业技术学院武汉工程职业技术学院12124.1.1 if语句的三种形式语句的三种形式执行过程:执行过程:ifif后面括号中的表达式是要判断

10、的条件,首先后面括号中的表达式是要判断的条件,首先计算表达式计算表达式1 1的值,如果为真,则执行语句块的值,如果为真,则执行语句块1 1;否则(表达;否则(表达式式1 1的值为假)计算表达式的值为假)计算表达式2 2的值,如果为真,则执行语句块的值,如果为真,则执行语句块2 2;否则(表达式否则(表达式2 2的值为假)计算表达式的值为假)计算表达式3 3的值,如果为真,则的值,如果为真,则执行语句块执行语句块3 3;以此类推;以此类推;如果表达式;如果表达式1 1、表达式、表达式2 2表表达式达式n n的值都为假,则执行语句块的值都为假,则执行语句块n+1n+1。执行流程如图。执行流程如图4

11、.34.3所示。所示。武汉工程职业技术学院武汉工程职业技术学院13134.1.1 if语句的三种形式语句的三种形式图图4.3 多分支选择结构多分支选择结构武汉工程职业技术学院武汉工程职业技术学院14144.1.1 if语句的三种形式语句的三种形式【例【例4.4】从键盘上输入学生期末考试成绩,若成绩为】从键盘上输入学生期末考试成绩,若成绩为90100分输出分输出“优秀优秀”,8089分输出分输出“良好良好”,7079分输出分输出“中等中等”,6069分输出分输出“及格及格”,059分输出分输出“不及格不及格”。程序如下:程序如下:#include main()float score;printf

12、(请输入学生期末考试成绩请输入学生期末考试成绩(0100):n);scanf(%f,&score);if(score=90&score=80&score=70&score=60&score=69)武汉工程职业技术学院武汉工程职业技术学院1515printf(及格及格!n);else printf(不及格不及格!n);程序运行结果:程序运行结果:请输入学生期末考试成绩请输入学生期末考试成绩(0100):97 优秀优秀!请输入学生期末考试成绩请输入学生期末考试成绩(0100):75 中等中等!请输入学生期末考试成绩请输入学生期末考试成绩(0100):56 不及格不及格!4.1.1 if语句的三种形

13、式语句的三种形式注意:注意:当多分支中有多个表达式同时满足时,只执行第一个与之匹配的语句块。当多分支中有多个表达式同时满足时,只执行第一个与之匹配的语句块。因此要注意对多分支中条件表达式的书写次序,防止某些值被过滤掉。因此要注意对多分支中条件表达式的书写次序,防止某些值被过滤掉。4.1.1 if语句的三种形式语句的三种形式16思考:思考:若将例若将例4.4中程序改为以下两种写法,结果分别会如何?中程序改为以下两种写法,结果分别会如何?程序段一如下:程序段一如下:#include main()float score;printf(请输入学生期末考试成绩请输入学生期末考试成绩(0-100):n);

14、scanf(%f,&score);if(score=90)printf(优秀优秀!n);else if(score=80)printf(良好良好!n);else if(score=70)printf(中等中等!n);else if(score=60)printf(及格及格!n);else printf(不及格不及格!n);武汉工程职业技术学院武汉工程职业技术学院17174.1.1 if语句的三种形式语句的三种形式程序段二如下:程序段二如下:#include main()float score;printf(请输入学生期末考试成绩请输入学生期末考试成绩(0-100):n);scanf(%f,&s

15、core);if(score=60)printf(及格及格!n);else if(score=70)printf(中等中等!n);else if(score=80)printf(良好良好!n);else if(score=90)printf(优秀优秀!n);else printf(不及格不及格!n);武汉工程职业技术学院武汉工程职业技术学院18184.1.2 if语句的嵌套语句的嵌套在一个在一个if语句中又可以包含一个或多个语句中又可以包含一个或多个if语句,称为语句,称为if 语语句的嵌套句的嵌套。其语法的一般格式为:。其语法的一般格式为:if(表达式表达式1)if(表达式表达式2)语句块语

16、句块1;else 语句块语句块2;else if(表达式表达式3)语句块语句块3;else 语句块语句块4;执行过程:首先判断表达式执行过程:首先判断表达式1,如果表达式,如果表达式1的值为真,再判断表的值为真,再判断表达式达式2,如果表达式,如果表达式2的值为真,则执行语句块的值为真,则执行语句块1;否则(表达式;否则(表达式2的值的值为假)执行语句块为假)执行语句块2;如果表达式;如果表达式1的值为假,再判断表达式的值为假,再判断表达式3,如果,如果表达式表达式3的值为真,则执行语句块的值为真,则执行语句块3;否则(表达式;否则(表达式3的值为假)执行的值为假)执行语句块语句块4。武汉工程

17、职业技术学院武汉工程职业技术学院19194.1.2 if语句的嵌套语句的嵌套思考:思考:以下两种情况中以下两种情况中else分别和哪个分别和哪个if配对?配对?情况情况1:if(表达式表达式1)if(表达式表达式2)语句语句1;else 语句语句2;情况情况2:if(表达式表达式1)if(表达式表达式2)语句语句1;else 语句语句2;武汉工程职业技术学院武汉工程职业技术学院程序如下:程序如下:#include main()int x,y;printf(请输入请输入x:n);scanf(%d,&x);if(x0)y=2*x;else if(x=0)y=0;elsey=-x;printf(y的

18、值为:的值为:%dn,y);2020【例【例4.6】分段函数求解。从键盘上输入整数】分段函数求解。从键盘上输入整数x,求,求y的值。的值。4.1.2 if语句的嵌套语句的嵌套程序运行结果:程序运行结果:请输入请输入x:8 y的值为:的值为:16请输入请输入x:-2 y的值为:的值为:2武汉工程职业技术学院武汉工程职业技术学院21214.2 switch语句语句日常生活中,经常会遇到多重选择的问题。除了使用多分日常生活中,经常会遇到多重选择的问题。除了使用多分支支ifelse if语句外,语句外,C语言还提供了另一种结构语言还提供了另一种结构switch语句。语句。switch语句又称为语句又称

19、为开关语句开关语句,主要用于实现多分支选,主要用于实现多分支选择结构。其语法的一般格式为:择结构。其语法的一般格式为:switch(表达式表达式)case 常量表达式常量表达式1:语句块语句块1;break;case 常量表达式常量表达式2:语句块语句块2;break;case 常量表达式常量表达式n:语句块语句块n;break;default:语句块语句块n+1;武汉工程职业技术学院武汉工程职业技术学院22224.2 switch语句语句执行过程:先计算表达式的值,并依次与执行过程:先计算表达式的值,并依次与case后面的常量后面的常量表达式比较,如果表达式的值与常量表达式表达式比较,如果表

20、达式的值与常量表达式1的值相等,则执的值相等,则执行其后面的语句块行其后面的语句块1;否则若与常量表达式;否则若与常量表达式2的值相等,则执的值相等,则执行其后面的语句块行其后面的语句块2;以此类推;以此类推;否则若与常量表达式;否则若与常量表达式n的值相等,则执行后面的语句块的值相等,则执行后面的语句块n;如果表达式的值与所有;如果表达式的值与所有case后的常量表达式都不相同,则执行后的常量表达式都不相同,则执行default后面的语句块后面的语句块n+1。case后的后的break表示跳出表示跳出switch语句,执行流程如图语句,执行流程如图4.4所示。所示。武汉工程职业技术学院武汉工

21、程职业技术学院23234.2 switch语句语句图图4.4 switch选择结构选择结构武汉工程职业技术学院武汉工程职业技术学院24244.2 switch语句语句使用使用switch语句应注意以下几点:语句应注意以下几点:(1)switch后面括号中的表达式一般是后面括号中的表达式一般是整型或字符型整型或字符型。(2)case后面的常量表达式类型必须和后面的常量表达式类型必须和switch后面的表达后面的表达式类型相同,式类型相同,并且不能使用变量并且不能使用变量。(3)case关键字和常量表达式之间需有空格,常量表达式关键字和常量表达式之间需有空格,常量表达式的值必须互不相同。的值必须互

22、不相同。(4)每执行一个每执行一个case语句后,为了使流程能够跳出语句后,为了使流程能够跳出switch结构,必须使用结构,必须使用break语句语句结束结束switch语句的执行,否则流程语句的执行,否则流程会按顺序依次执行后续的会按顺序依次执行后续的case语句。语句。武汉工程职业技术学院武汉工程职业技术学院25254.2 switch语句语句例如:例如:switch(grade)case 1:printf(A!);case 2:printf(B!);case 3:printf(C!);case 4:printf(D!);因为因为case后没有后没有break语句,所以程序会一直向下执行

23、。语句,所以程序会一直向下执行。因此当因此当grade值为值为1时,程序运行结果为:时,程序运行结果为:A!B!C!D!武汉工程职业技术学院武汉工程职业技术学院2626(5)case后面的语句块可以是一条语句或多条语句,也可后面的语句块可以是一条语句或多条语句,也可是空语句,但不需要用大括号括起来是空语句,但不需要用大括号括起来。(6)当当case后面常量表达式与后面常量表达式与switch后面的表达式均不匹后面的表达式均不匹配时,则执行配时,则执行default后面的语句块,后面的语句块,default可以放在程序的可以放在程序的任何位置,不一定要位于最后。任何位置,不一定要位于最后。(7)

24、多个多个case可以共用一个语句块。可以共用一个语句块。例如:例如:switch(n)case 1:case 2:case 3:printf(优秀优秀!);break;4.2 switch语句语句武汉工程职业技术学院武汉工程职业技术学院27274.2 switch语句语句【例【例4.7】将例题】将例题4.4改为用改为用switch语句实现。从键盘上输入学生期末考试成绩,若成语句实现。从键盘上输入学生期末考试成绩,若成绩为绩为90100分输出分输出“优秀优秀”,8089分输出分输出“良好良好”,7079分输出分输出“中等中等”,6069分输出分输出“及格及格”,059分输出分输出“不及格不及格”

25、。程序如下:程序如下:#include main()int score;printf(请输入学生期末考试成绩请输入学生期末考试成绩(0-100):n);scanf(%d,&score);switch(score/10)case 10:case 9:printf(优秀优秀!n);break;case 8:printf(良好良好!n);break;case 7:printf(中等中等!n);break;case 6:printf(及格及格!n);break;default:printf(不及格不及格!n);武汉工程职业技术学院武汉工程职业技术学院28284.2 switch语句语句程序运行结果:程

26、序运行结果:请输入学生期末考试成绩请输入学生期末考试成绩(0100):95 优秀优秀!请输入学生期末考试成绩请输入学生期末考试成绩(0100):85 良好良好!请输入学生期末考试成绩请输入学生期末考试成绩(0100):68 及格及格!请输入学生期末考试成绩请输入学生期末考试成绩(0100):57 不及格不及格!思考:思考:若将程序中的若将程序中的break语句去掉,结果会如何?语句去掉,结果会如何?武汉工程职业技术学院武汉工程职业技术学院29294.3 程序综合实例程序综合实例【例【例4.9】从键盘上输入三角形的三条边长,判断是否能构成三角形,】从键盘上输入三角形的三条边长,判断是否能构成三角

27、形,然后计算三角形的面积并输出。然后计算三角形的面积并输出。假设假设a、b、c为三角形的三条边长,令为三角形的三条边长,令s=(a+b+c)/2,则,则三角形面积公式:三角形面积公式:area=)()(csbsass程序如下:程序如下:#include#include main()float a,b,c,s,area;printf(请输入三角形的三条边长:请输入三角形的三条边长:n);scanf(%f,%f,%f,&a,&b,&c);/*输入三角形的三条边输入三角形的三条边长长*/if(a0|b0|cc&b+ca&c+ab)s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-

28、b)*(s-c);/*计算三角形的面积计算三角形的面积*/printf(三角形的面积:三角形的面积:%5.2fn,area);else printf(不能构成三角形,请重新输入不能构成三角形,请重新输入!n);return 0;4.3 程序综合实例程序综合实例程序运行结果:程序运行结果:请输入三角形的三条边长:请输入三角形的三条边长:5.7,9.8,7.5 三角形的面积:三角形的面积:21.30请输入三角形的三条边长:请输入三角形的三条边长:1,2,3 不能构成三角形,请重新输入不能构成三角形,请重新输入!武汉工程职业技术学院武汉工程职业技术学院31314.3 程序综合实例程序综合实例【例【例

29、4.12】一元二次方程求解。从键盘上输入】一元二次方程求解。从键盘上输入a、b、c的值,的值,对一元二次方程对一元二次方程ax2+bx+c=0 求解。求解。分析:根据方程的求解情况,分为以下几种:分析:根据方程的求解情况,分为以下几种:(1)当当a=0,b0时,此时是一元一次方程。时,此时是一元一次方程。当当a=0,b=0时,此时方程式并不合法,提示错误信息。时,此时方程式并不合法,提示错误信息。2abx,x21(2)当当a0时,此时为一元二次方程,根分为三种情况:时,此时为一元二次方程,根分为三种情况:当当b2-4ac=0,方程有两个相等的实根,即,方程有两个相等的实根,即 当当b2-4ac

30、 0,方程有两个不同的实根,即,方程有两个不同的实根,即2a4acbbx,x2212a)ib4ac(bx,x221 当当b2-4ac0,方程有两个不同的虚根,即,方程有两个不同的虚根,即武汉工程职业技术学院武汉工程职业技术学院32324.3 程序综合实例程序综合实例程序如下:程序如下:#include#include main()double a,b,c,x1,x2,delt,real,imaginary;printf(请输入请输入a、b、c的值:的值:n);scanf(%lf,%lf,%lf,&a,&b,&c);/*输入三角形的三条边长输入三角形的三条边长*/if(a=0)if(b!=0)x

31、1=-b/c;/*此时为一元一次方程求根此时为一元一次方程求根*/printf(方程的解为:方程的解为:%5.2lfn,x1);else printf(输入的值不合法,请重新输入输入的值不合法,请重新输入!n);武汉工程职业技术学院武汉工程职业技术学院3333 else delt=b*b-4*a*c;if(delt=0)/*方程有两个相等的实数根方程有两个相等的实数根*/x1=-b/(2*a);x2=-b/(2*a);printf(方程有两个相等的实根,即:方程有两个相等的实根,即:x1=x2=%5.2lfn,x1);else if(delt0)/*方程有两个不相等的实根方程有两个不相等的实根

32、*/x1=(-b+sqrt(delt)/(2*a);x2=(-b-sqrt(delt)/(2*a);printf(方程有方程有2个不相等的实根:个不相等的实根:x1=%5.2lf,x2=%5.2lfn,x1,x2);else /*方程有两个不相等的虚根方程有两个不相等的虚根*/4.3 程序综合实例程序综合实例武汉工程职业技术学院武汉工程职业技术学院3434 real=-b/(2*a);imaginary=sqrt(-delt)/(2*a);printf(方程有方程有2个不相等的虚根:个不相等的虚根:x1=%5.2lf+%5.2lfi,x2=%5.2lf-%5.2lfin,real,imaginary,real,imaginary);4.3 程序综合实例程序综合实例程序运行结果:程序运行结果:请输入请输入a、b、c的值:的值:1,6,9 方程有两个相等的实根,即:方程有两个相等的实根,即:x1=x2=-3.00请输入请输入a、b、c的值:的值:2,8,7 方程有方程有2个不相等的实根:个不相等的实根:x1=-1.29,x2=-2.71请输入请输入a、b、c的值:的值:1,4,7 方程有方程有2个不相等的虚根:个不相等的虚根:x1=-2.00+1.73i,x2=-2.00-1.73i武汉工程职业技术学院武汉工程职业技术学院 学无止境学无止境

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|