C-大学基础教程第三章(复习)解析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《C-大学基础教程第三章(复习)解析课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 大学 基础教程 第三 复习 解析 课件
- 资源描述:
-
1、C+大学基础教程大学基础教程第第3 3章章 C+C+控制语句控制语句本章学习:本章学习:C+C+的控制语句和程序基本结构的控制语句和程序基本结构使用基本结构实现算法使用基本结构实现算法 3.1 3.1 算法的基本控制结构算法的基本控制结构2022-10-14-3-3.1 3.1 算法的基本控制结构算法的基本控制结构流程图 开始/结束 执行 判断 联系2022-10-14-4-例例:计算计算y=x2开始开始定义定义x,yx,y输入输入x x计算计算y=xy=x*x x输出输出y y结束结束void main()int x,y;cinx;y=x*x;couty;coutx;cout“y=”yend
2、l;void main()int x,y;coutx;y=x*x;cout“y=”yy?xy?y y输出输出x x结束结束n n输出输出y y#include void main()int x,y;cinxy;if(xy)coutx;else couty;选择结构选择结构2022-10-14-6-例例:计算计算y=sin(x)y=sin(x)在一个周期内的八个等在一个周期内的八个等间隔抽样点值。即间隔抽样点值。即x xi i=2=2 i/8,i=0,1,i/8,i=0,1,7,7开始开始定义变量定义变量i,x,y;i,x,y;定义常量定义常量PI2;PI2;i=0i=0i8i8x=PI2x=P
3、I2*i/8;i/8;y=sin(x);y=sin(x);i+;i+;y y结束结束n n#includeinclude#include#includeusing namespace std;using namespace std;void main()void main()int i;int i;float x,y;float x,y;const float PI2=2 const float PI2=2*3.14;3.14;for(i=0;i8;i+)for(i=0;i8;i+)x=PI2 x=PI2*i/8;i/8;cout(y=sin(x)endl;cout(y=sin(x)y)cou
4、txy)coutxendl;else coutyendl;2022-10-14-13-3.2 3.2 if选择语句选择语句3 3、多分支、多分支if(表达式1)语句1;else if (表达式2)语句2;else if (表达式3)语句3;else 语句n;例子:输出学生的成绩#include using namespace std;void main()int x;cinx;if(x=90)cout“优秀”=80)cout“良好”=60)cout“合格”endl;else cout“不及格”endl;2022-10-14-15-注意:注意:1.1.如果如果if-elseif-else语句中的
5、语句语句中的语句1 1或语句或语句2 2不是单条语句,则必须不是单条语句,则必须采用复合语句形式;否则,计算机只执行其中第一条语句,出采用复合语句形式;否则,计算机只执行其中第一条语句,出现程序运行时的逻辑错误。现程序运行时的逻辑错误。程序的逻辑错误,指的是编译器检查不出来的错误,也即程序的逻辑错误,指的是编译器检查不出来的错误,也即编译时不出错,只在程序运行时才会出现。编译时不出错,只在程序运行时才会出现。2.一般在一般在if-else(if-else(和任何控制结构和任何控制结构)中加上大括号,可以避免不慎中加上大括号,可以避免不慎疏忽,特别是疏忽,特别是if if或或elseelse后边
6、的选择体语句多于一条时。后边的选择体语句多于一条时。2022-10-14-16-3.2 3.2 if选择语句选择语句4、if 语句的嵌套if(表达式1)if(表达式2)语句1 else 语句2else if(表达式3)语句3 else 语句42022-10-14-17-注意:注意:(1)(1)使用嵌套使用嵌套ifif结构时,应该注意结构时,应该注意ifif与与elseelse的对应的对应关系。关系。从最内层开始,从最内层开始,elseelse总是与其前面最近的总是与其前面最近的(未未曾匹配的曾匹配的)ifif匹配。匹配。如果外层如果外层ifif的内嵌的内嵌ifif语句没有对应的语句没有对应的e
7、lseelse分支,分支,应该把内嵌应该把内嵌ifif语句放入加花括号里,成为复合语句。语句放入加花括号里,成为复合语句。例如下面的代码:例如下面的代码:2022-10-14-18-if()if()语句语句1;else if()语句语句2;else 语句语句3;if()if()语句语句1;else if()语句语句2;else 语句语句3;if()if()语句语句1;else if()语句语句2;else 语句语句3;2022-10-14-19-(2)(2)编写嵌套编写嵌套if if语句结构,最好给外层语句结构,最好给外层if if和和elseelse的选择的选择体加上大括号,使结构清晰,增强
8、代码的可读性。体加上大括号,使结构清晰,增强代码的可读性。(3)(3)在嵌套在嵌套if if结构和多选择的结构和多选择的if if结构中,测试条件为结构中,测试条件为真可能性较大的操作应放在真可能性较大的操作应放在if if结构的开头,以便尽早结构的开头,以便尽早满足测试条件,结束满足测试条件,结束if if结构的执行,提高程序运行速结构的执行,提高程序运行速度。度。3.3 3.3 switch选择语句选择语句3.3 3.3 switch选择语句选择语句switch(表达式)case 常量表达式1:语句1 break;case 常量表达式2:语句2 break;case 常量表达式n:语句n
9、break;default:语句n+1 跳出switch语句2022-10-14-22-例例3.43.4 假设某个盒子里有红色、黄色、蓝色、绿假设某个盒子里有红色、黄色、蓝色、绿色和白色球若干,每次从中取出一个球,并记录色和白色球若干,每次从中取出一个球,并记录(输出输出)球的颜色。使用随机数产生函数球的颜色。使用随机数产生函数randrand模拟随模拟随机取球过程,设数字机取球过程,设数字1,2,3,4,51,2,3,4,5分别表示上述五种分别表示上述五种球的颜色。数字球的颜色。数字0 0使模拟取球过程结束。统计出每使模拟取球过程结束。统计出每种球出现的次数。种球出现的次数。/功能:模拟取球
10、程序功能:模拟取球程序#include#include#include using namespace std;void main()int count1(0),count2(0),count3(0),count4(0),count5(0);srand(unsigned)time(NULL);int color=rand()%6;while(color)switch(color)case 1:coutred ball endl;count1+;break;case 2:coutyellow ballendl;count2+;break;case 3:coutblue ball endl;cou
11、nt3+;break;case 4:coutgreen ballendl;count4+;break;case 5:coutwhite ballendl;count5+;break;default:coutInvalid command endl;color=rand()%6;coutcount of each color balls(red,yellow,blue,green,and white):count1,count2,count3,count4 ,count5endl;2022-10-14-27-注意:注意:(1 1)switchswitch语句中表达式的值可以是字符型、整型,语句中
12、表达式的值可以是字符型、整型,也可以是枚举型。通常这个表达式仅仅是个变量。也可以是枚举型。通常这个表达式仅仅是个变量。(2 2)case case 的常量表达式可以是字符型、整型或枚举的常量表达式可以是字符型、整型或枚举型,通常,也只是一个常量。各个型,通常,也只是一个常量。各个casecase的常量表达式的常量表达式的值应该互不相同,否则,相同的值造成矛盾的语句的值应该互不相同,否则,相同的值造成矛盾的语句标识。各个标识。各个casecase的先后顺序不影响执行结果,由编程的先后顺序不影响执行结果,由编程者合理安排。者合理安排。2022-10-14-28-(3 3)breakbreak语句本
13、不是语句本不是switchswitch语句原有的,但由于语句原有的,但由于各各个个“case case 常量表达式常量表达式”只起语句标号的作用只起语句标号的作用,并不进,并不进行条件判断,行条件判断,switchswitch语句每当找到匹配的常量表达式,语句每当找到匹配的常量表达式,则从此标号开始执行下去,不再进行判断,即将此后则从此标号开始执行下去,不再进行判断,即将此后的其它的其它casecase下的语句也都执行。这显然不是我们希望下的语句也都执行。这显然不是我们希望的。因此,的。因此,在每个在每个casecase的执行语句结束处,应该加上的执行语句结束处,应该加上breakbreak语
14、句语句。(4 4)几个)几个casecase可以共用一组执行语句。例如,输入考试成绩可以共用一组执行语句。例如,输入考试成绩grade,grade,输出是否通过:输出是否通过:switch(grade/10)case 9:case 8:case 7:case 6:cout”pass”;break;default cout”fail”;break;2022-10-14-30-(5)在在switchswitch语句中应该提供语句中应该提供defaultdefault情况,可以提醒情况,可以提醒编程者需要处理异常条件;而且习惯上编程者需要处理异常条件;而且习惯上defaultdefault被放被放在
15、在switchswitch结构的最后。结构的最后。2022-10-14-31-switchswitch语句语句和和多分支多分支if if语句语句都能实现多分支的选择都能实现多分支的选择问题。但问题。但switchswitch语句只能处理测试表达式与语句只能处理测试表达式与casecase常量表常量表达式值相等的情况,即要求表达式的值只能取整型、达式值相等的情况,即要求表达式的值只能取整型、字符型和枚举型;字符型和枚举型;多分支的多分支的if if语句可以处理测试表达式为任何语句可以处理测试表达式为任何c+c+允允许类型的问题。许类型的问题。尽管如此,只要问题类型合适,尽管如此,只要问题类型合适
16、,switchswitch语句通常比语句通常比多分支的多分支的if if语句的执行效率高,因为前者直接执行匹配语句的执行效率高,因为前者直接执行匹配的语句,而后者要逐一比较至测试表达式为真。故的语句,而后者要逐一比较至测试表达式为真。故合合理安排多分支的理安排多分支的if if语句各分支的顺序,有利于提高程序语句各分支的顺序,有利于提高程序运行速度运行速度,特别是当选择语句内嵌于循环结构中时。,特别是当选择语句内嵌于循环结构中时。3.4 3.4 循环循环语句语句2022-10-14-33-3.4 循环语句循环语句三种基本语法1、while 语句2、dowhile 语句3、for 语句2022-
17、10-14-34-3.4 循环语句循环语句主要包括3个部分:1、循环控制条件:判断循环操作是否进行的条件;2、循环体:重复进行的操作;3、循环控制变量:记录循环体执行的次数,或控制循环的结束条件。2022-10-14-35-3.4 循环语句循环语句while循环语句循环语句while(表达式)循环体语句;2022-10-14-36-/功能:计算功能:计算1n个整数平方和的均值。个整数平方和的均值。#include using namespace stdvoid main()int k=1,sum=0,n;coutn;nkkn1212022-10-14-37-while(k0)/防止被防止被0除
18、除 mean=sum/n;else mean=0;cout mean=mean endl;2022-10-14-38-利用循环结构实现迭代求和时,表示和利用循环结构实现迭代求和时,表示和的变量的初值必须赋为的变量的初值必须赋为0 0。另外还要注意执行。另外还要注意执行除法操作之前,检验除数是否为除法操作之前,检验除数是否为0,0,以增强程以增强程序的稳健性。序的稳健性。2022-10-14-39-注意:注意:(1 1)循环体如果多于一句,必须采用复合语句形式,循环体如果多于一句,必须采用复合语句形式,否则只有循环体的第一句能够被执行,其它循环体语否则只有循环体的第一句能够被执行,其它循环体语句
19、不能被执行。句不能被执行。(2 2)一般)一般whilewhile语句的循环控制变量在语句的循环控制变量在whilewhile语句前语句前被赋值,并在循环体内被修改,使循环语句能够正常被赋值,并在循环体内被修改,使循环语句能够正常结束。循环结构的循环体中应该有使循环趋于结束的结束。循环结构的循环体中应该有使循环趋于结束的语句(修改循环控制变量的语句)。语句(修改循环控制变量的语句)。如果如果whilewhile语句的条件一开始就不满足,则其循环语句的条件一开始就不满足,则其循环体语句就会一次也不执行。所以,我们在选择循环语体语句就会一次也不执行。所以,我们在选择循环语句要清楚这一点。句要清楚这
20、一点。2022-10-14-40-3.4 循环语句循环语句do.while循环语句循环语句 do 循环体语句;while(表达式);2022-10-14-41-/功能:计算功能:计算1n个整数平方和的均值。个整数平方和的均值。#include using namespace std;void main()int k(1),n,sum(0),mean;coutn;nkkn1212022-10-14-42-do sum=sum+k*k;k+;while(k0)mean=sum/n;else mean=0;cout mean=mean endl;2022-10-14-43-注意:注意:(1 1)如果
21、循环体语句多于一条,必须采用用复合语句形式。)如果循环体语句多于一条,必须采用用复合语句形式。(2 2)循环体中要包含修改循环控制变量的语句,保证循环是有)循环体中要包含修改循环控制变量的语句,保证循环是有限循环。限循环。(3 3)do-whiledo-while循环是先执行循环体语句,后判断表达式真假。循环是先执行循环体语句,后判断表达式真假。所以循环体至少要执行一次。所以循环体至少要执行一次。(4 4)whilewhile语句和语句和do-whiledo-while语句都能处理重复操作问题,如语句都能处理重复操作问题,如前面的求均值()问题。但前面的求均值()问题。但whilewhile语
22、句的循环体有可能一次也不语句的循环体有可能一次也不执行,所以,在选择使用循环语句时,要合理利用它们各自的执行,所以,在选择使用循环语句时,要合理利用它们各自的特点。特点。2022-10-14-44-3.4 循环语句循环语句for循环语句 循环结构 1、表达式1 循环变量初始化;2、表达式2 循环控制条件;3、表达式3 循环变量的变化;for(表达式1;表达式2;表达式3)循环体;2022-10-14-45-#includeusing namespace std;void main()int k,n,sum(0),mean;coutn;for(k=1;k0)mean=sum/n;else mea
展开阅读全文