计算机C语言PPT第四章ppt课件_第1页
计算机C语言PPT第四章ppt课件_第2页
计算机C语言PPT第四章ppt课件_第3页
计算机C语言PPT第四章ppt课件_第4页
计算机C语言PPT第四章ppt课件_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2020/11/20,佳木斯大学,1,C语言程序设计与应用教程,第四章 选择结构程序设计,2020/11/20,佳木斯大学,2,本章学习目标:,掌握if语句的执行和使用,能够用if语句实现选择结构 掌握switch语句的执行和使用,能够用switch语句实现多分支选择结构 掌握选择结构嵌套的执行 能够进行选择结构程序的设计,2020/11/20,佳木斯大学,3,【教学目的】,1、掌握if语句的执行和使用,能够用if语句实现选择结构。 2、掌握选择结构嵌套的执行。 3、培养学生动手编程的能力。,2020/11/20,佳木斯大学,4,【主要内容】,1、if语句的3种格式及执行和使用 2、用if语句

2、实现选择结构。 3、典型算法,2020/11/20,佳木斯大学,5,【重点与难点】,1、利用嵌套结构的实现和典型算法的形成与实现是难点 2、if的三种结构的构成、执行使用;嵌套的实现是重点,2020/11/20,佳木斯大学,6,【教学方法】,采用理论讲解、互动式、游戏式的教学方法,2020/11/20,佳木斯大学,7,【教学内容】,带着问题学习: (1)if语句如何执行? (2)嵌套构成是要注意那些问题,2020/11/20,佳木斯大学,8,4-1 if语句,选择结构也叫分支结构,是程序设计的一个基本结构,它的作用是,根据所指定的条件是否满足,决定从给定的操作中选择其一。,2020/11/20

3、,佳木斯大学,9,4-1 if语句,1、if语句的简单形式有时也称单分支结构,它的形式是: if(表达式) 语句 例如:if(xy)printf(%d,x); if语句用来判断给定的条件是否满足,根据结果(真或假)来选择执行相应的语句。它的执行过程是,如果表达式为真(非0),则执行其后所跟的语句,否则不执行该语句,这里的语句可以是一条语句,也可以是复合语句。,2020/11/20,佳木斯大学,10,4-1 if语句,1、if语句的简单形式有时也称单分支结构。,2020/11/20,佳木斯大学,11,4-1 if语句,【例4-1】输入两个实数,按代数值由小到大的次序输出这两个数。 main()

4、float a,b,t; scanf(%f,%f, ,运行时若输入:1.5, 2.5 输出: 1.52.5,2020/11/20,佳木斯大学,12,4-1 if语句,【例4-2】输入3个数a,b,c要求按由小到大的顺序输出。 main() float a,b,c,t; scanf(%f,%f,%f, ,运行时若输入: 2.1,3.4,2.3 输出: 2.12.33.4,2020/11/20,佳木斯大学,13,4-1 if语句,2、if-else结构 if-else型分支有时也称双分支结构,它的形式是: if(表达式) 语句1 else 语句2 它的执行过程是,如果表达式的值为真(非0),就执行

5、语句1,否则,执行语句2。,2020/11/20,佳木斯大学,14,4-1 if语句,说明:图4-2 双分支if语句的执行过程表达式语句2假真语句1 (1)if后面的表达式不限于是关系表达式或逻辑表达式,可以是任意表达式。 (2)if语句中的控制表达式应该用括号括起来,如果有else子句,则控制表达式后的语句同样必须用分号结束。 (3)若if子句或else子句由多个语句构成,则应该构成复合语句。,2020/11/20,佳木斯大学,15,4-1 if语句,例4-3 输入两个数a,b,输出较大的一个。 #include main() int a,b; scanf(%d,%d, 运行时输入5,8 则

6、输出8,2020/11/20,佳木斯大学,16,4-1 if语句,【例4.4】输入一个数,如果为正数,求其算术平方根并输出,否则输出该数。 #include #include main() float x,y; printf(input one number:); scanf(%f, ,运行情况如下: input one number:4 y=2.000000,2020/11/20,佳木斯大学,17,4-1 if语句,【例4.5】某商品的零售价为每千克8.5元,批发价为每千克6.5元,购买量在10千克以上,便可按批发价计算。设某顾客购买此商品weight千克,请编程计算该顾客需付费(pay)多

7、少。,2020/11/20,佳木斯大学,18,4-1 if语句,main() float weight,pay; printf(Please input the weight:); scanf(%f, ,2020/11/20,佳木斯大学,19,4-1 if语句,3、 if-else-if形式 if-else-if形式是条件分支嵌套的一种特殊形式,经常用于多分支处理。它的一般形式为: if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 else if(表达式n) 语句n else 语句n+1,它的执行过程是,如果表达式1为真,则执行语句1,否则,如果

8、表达式2为真,则执行语句2,否则,如果表达式n为真,则执行语句n,如果n个表达式都不为真,则执行语句n+l。,2020/11/20,佳木斯大学,20,4-1 if语句,执行的流程图见图4-3。,2020/11/20,佳木斯大学,21,4-1 if语句,【例4.6】判别键盘输入字符的类别。 #includestdio.h main() char c; printf(input a character: ); c=getchar(); if(c=0 ,2020/11/20,佳木斯大学,22,4-1 if语句,【例4.7】输入x的值根据分段函数求y的值。 x+1 (x1) y=x2+3 (1x5)

9、x2-3 (x5) #include main() int x,y; scanf(%d, ,2020/11/20,佳木斯大学,23,4-1 if语句,【例4.8】根据输入的百分制成绩(score),输出成绩等级(grade)A、B、C、D、E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。用if语句实现。,2020/11/20,佳木斯大学,24,4-1 if语句,main() int score; char grade; printf(n Please input a score(0100): ); scanf(%d, ,程序的运行情况如下: Please i

10、nput a score(0100): 86 The grade is B.,2020/11/20,佳木斯大学,25,4.1 if语句,4.1.4 if语句使用说明 (1)三种形式的if语句中在if后面都有“表达式”,一般为关系表达式或逻辑表达式,系统对表达式的值进行判断,若为0,则按“假”处理,非0按“真”处理。 (2)第二、第三种形式的if语句中,在每个else前面有一分号,整个语句结束处有一分号。,2020/11/20,佳木斯大学,26,4.1 if语句,(3)在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句,此时用花括号“”将几个语句括起来成为一个复合语句。 (4)

11、在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。,2020/11/20,佳木斯大学,27,4-2 if语句的嵌套,在if语句中又包含一个或多个if语句称为if语句的嵌套。一般形式如下: if(表达式) if语句 或者为: if(表达式) if语句 else if语句 在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。,2020/11/20,佳木斯大学,28,4-2 if语句的嵌套,应用if与else的配对关系。else总是与它上面的最近的没有配对的if配对。 最好使内嵌if语句也包含else部分

12、,这样if的数目和else的数目相同,从内层到外层一一对应,不致出错 。 如果if与else的数目不一样,应尽量把嵌套的部分放在否定的部分,或为实现程序设计者的企图,可以加花括弧来确定配对关系。,2020/11/20,佳木斯大学,29,4-2 if语句的嵌套,【例4-9】有一函数: 编一程序,输入一个x值,输出y值。有以下几个程序,请判断哪个是正确的? -1 (x0) 程序1: main() int x,y; scanf(%d, ,2020/11/20,佳木斯大学,30,4-2 if语句的嵌套,程序2:main() int x,y; scanf(%d,x); if(x=0) if(x=0) y

13、=0; else y=1; else y=-1; printf(x=%d,y=%dn,x,y); ,2020/11/20,佳木斯大学,31,4-2 if语句的嵌套,程序3:将上述if语句改为: main() int x,y; scanf(%d, ,2020/11/20,佳木斯大学,32,4-2 if语句的嵌套,程序4: main() int x,y; scanf(%d,x); y=0; if(x=0) if(x0) y=1; else y=-1; printf(x=%d,y=%dn,x,y); ,2020/11/20,佳木斯大学,33,【小 结】,选择结构是三种基本结构之一 用if语句实现,其

14、形式主要有单分支if语句和双分支if语句,多分支if语句,也可以通过if语句的嵌套来实现多分支问题。,2020/11/20,佳木斯大学,34,【预习题】,1、switch语句的构成和执行 2、典型算法,2020/11/20,佳木斯大学,35,【教学目的】,1、掌握switch语句的执行和使用,能够用switch语句实现多分支选择结构。 2、能够进行选择结构程序的设计。 3、培养学生动手编程的能力。,2020/11/20,佳木斯大学,36,【主要内容】,1、switch语句的执行和使用 2、利用if和switch语句实现选择结构 3、典型算法,2020/11/20,佳木斯大学,37,【重点与难点

15、】,1、switch语句的执行和使用是重点 2、典型算法的形成与实现是难点,2020/11/20,佳木斯大学,38,【教学方法】,采用理论讲解、游戏式、互动式的教学方法,2020/11/20,佳木斯大学,39,4-3 多分支结构,C语言提供switch语句直接处理多分支选择,使程序更清楚。switch语句的一般形式如下: switch(表达式) case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default: 语句n+1 ,2020/11/20,佳木斯大学,40,4-3 多分支结构,switch语句的执行过程是:根据switch后面的表达式的值,

16、找到某个case后的常量表达式与之相等时,就以此作为一个入口,执行此case 后的语句,及以下各个case或default后的语句,直到switch的结束或遇到break语句为止。若所有的case中的常量表达式的值都不与switch后的表达式的值匹配,则执行default的语句。,2020/11/20,佳木斯大学,41,4-3 多分支结构,在使用switch语句时,应注意以下几点: (1)switch后面的表达式和case后面的常量表达式可以为任何整型或字符型数据。 (2)每一个case后的常量表达式的值应当互不相同。,2020/11/20,佳木斯大学,42,4-3 多分支结构,在使用swit

17、ch语句时,应注意以下几点: (3)switch语句中可以不包含default分支,如果没有default,则所有的常量表达式都不与表达式的值匹配时,switch语句就不执行任何操作。 另外,default可以在switch语句中任何位置,若把default写在某些case前面,当所有的常量表达式都不与表达式的值匹配时,switch语句就以default作为一个入口,执行default后面的语句及连续多个case语句,直至switch语句的结束。,2020/11/20,佳木斯大学,43,4-3 多分支结构,在使用switch语句时,应注意以下几点: (4)为了在执行某个case分支后,使流程跳

18、出switch结构,即终止switch语句的执行,总是把break语句与switch语句一起合用,即把break语句作为每个case分支的最后一条语句,当执行到break语句时,使流程跳出本条switch语句。break语句的作用是使流程跳出switch语句或跳出所在的循环体。,2020/11/20,佳木斯大学,44,4-3 多分支结构,在使用switch语句时,应注意以下几点: (5)由于case及default后都允许是语句,所以当安排多个语句时,必须用花括号括起。但如果是只有一条语句和break时可以不加花括号。,2020/11/20,佳木斯大学,45,4-3 多分支结构,例4-10 要

19、求按照考试成绩的等级打印出百分制分数段,可以用switch语句实现: main() char grade; scanf(%c, ,2020/11/20,佳木斯大学,46,4-3 多分支结构,main() char grade; scanf(%c, ,2020/11/20,佳木斯大学,47,4-3 多分支结构,在使用switch语句时,应注意以下几点: (6)多个case可以共用一个执行语句。,2020/11/20,佳木斯大学,48,4-3 多分支结构,【例4.11】输入年份和月份,给出这个月有几天。 main() int year,month,day; scanf(%d%d, ,2020/11

20、/20,佳木斯大学,49,4-3 多分支结构,在使用switch语句时,应注意以下几点: (7)在使用switch语句时注意case和后面的表达式之间要有空格,如果没有空格在编译时不会发现错误,但运行时结果不对。,2020/11/20,佳木斯大学,50,4-4 程序举例,【例4-12】写程序,判断某一年是否闰年。 main() int year,leap; scanf(%d, ,运行时若输入2005 输出2005 is not a leap year 运行时若输入2004 输出 2004 is a leap year,2020/11/20,佳木斯大学,51,4-3 多分支结构,【例4-13】对

21、应数字输出相应星期几。 main() int a; printf(input integer number: ); scanf(%d, ,2020/11/20,佳木斯大学,52,4-4 程序举例,【例4-14】输入一个字符,判别它是否是大写字母,如果是把它转换成小写字母,否则不转换。然后输出最后得到的字符。 main() char ch; scanf(%c, ,输入A则输出a,2020/11/20,佳木斯大学,53,4-4 程序举例,【例4-15】由键盘输入三个整数分别给变量a、b、c,输出绝对值大的数。 #include #include main() int a,b,c,max; scan

22、f(%d,%d,%d, ,输入10,-55,12 输出max=-55,2020/11/20,佳木斯大学,54,4-4 程序举例,【例4-16】给一个百分制成绩,要求输出成绩等级A、B、C、D、E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。此题可以用switch语句实现,但成绩值有101个,如果把所有的值都列出来,程序很长。可以把成绩除以10,这样,原有的101个值就映射成11个值,然后根据这11个值进行选择。 main() int score; char grade; scanf (%d, ,输入 98 输出 score=90,grade=A,2020/1

23、1/20,佳木斯大学,55,4-4 程序举例,【例4-17】求ax2+bx+c=0方程的解。 #include #include main() float a,b,c,d, x1,x2,r, p; scanf (%f,%f,%f, ,运行时若输入1,2,1 则输出 has two equatroots:-l.000000 若输入 1,2,2 则输出 has complex roots: -1.0000+ 1.0000i -1.0000- 1.0000i 若输入2,6,1 则输出 has distinct real roots: -0.177124 and-2.822876,2020/11/20

24、,佳木斯大学,56,4-4 程序举例,【例4-18】运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下: s500km 没有折扣 500s1500 1%折扣 1500s2500 3%折扣 2500s3500 5%折扣 3500s4500 8%折扣 4500s 10%折扣 设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为: f=p*w* s*(1-d);,2020/11/20,佳木斯大学,57,4-4 程序举例,#include main() int c,s; float p,w,d,f; printf(please input price,weight,distancen); scanf(%f,%f,%d, ,输入 100,20,1500 输出 freight= 1940.00,2020/11/20,佳木斯大学,58,4-4 程序举例,【例4-19】 阅读以下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论