第2章程序控制结构NEW课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第2章程序控制结构NEW课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 章程 控制 结构 NEW 课件
- 资源描述:
-
1、1第第2章章 程序控制结构程序控制结构2.1 顺序结构顺序结构 2.2 选择结构选择结构 2.3 循环结构循环结构 2.4 控制转向语句控制转向语句 2.5 程序实例程序实例 2v按照语句出现的先后顺序依次执行。按照语句出现的先后顺序依次执行。2.1 顺序结构顺序结构 语句1语句2图2.1 顺序结构流程图32.1.1 定义语句定义语句 在在C+程序中,一个标识符(变量名、常程序中,一个标识符(变量名、常量名、函数名、对象名等)在使用之前必须先量名、函数名、对象名等)在使用之前必须先定义。定义。定义语句定义语句是在给出其特征同时,并通知是在给出其特征同时,并通知编译器为其分配存储空间,而编译器为
2、其分配存储空间,而说明语句说明语句仅告诉仅告诉编译器它的存在及其特征。编译器它的存在及其特征。v例如:例如:int x=1,y=2;/定义语句const double PI=3.14159;/定义语句float score303;/定义语句42.1.2 表达式语句表达式语句v形式:形式:;v可以进行的操作通常包括赋值操作,复合赋值可以进行的操作通常包括赋值操作,复合赋值操作,增量、减量操作,函数调用操作和输入操作,增量、减量操作,函数调用操作和输入输出操作。输出操作。v例如:例如:n+;-m;abs(x);cinxy;coutx+y;s=x+y;m=n=t;a=10,b=20;z*=w;52.
3、1.3 复合语句复合语句v形式:形式:v作用:作用:当程序中某个位置在语法上只允许一条当程序中某个位置在语法上只允许一条语句,而在语义上要执行多条语句才能完成某个语句,而在语义上要执行多条语句才能完成某个操作时,需要使用复合语句操作时,需要使用复合语句。例如:例如:if(x=0)couta;coutb;62.1.4 空语句空语句v形式:形式:;v作用:作用:当程序中某个位置在语法上需要一当程序中某个位置在语法上需要一条语句,而在语义上又不条语句,而在语义上又不 要求执行任何动要求执行任何动作时,可放上一条空语句。作时,可放上一条空语句。v一般适用于在循环语句中做空循环体一般适用于在循环语句中做
4、空循环体v例如:例如:for(m=0;m1000;m+);72.1.5 基本输入输出基本输入输出v在在C+中,所有输入输出是通过中,所有输入输出是通过输入输出流输入输出流来实现的。来实现的。v在在C+中,将数据从一个对象到另一个对象的流动抽中,将数据从一个对象到另一个对象的流动抽象为象为“流流”。在。在iostream库中包含一个标准输入流对象库中包含一个标准输入流对象cin和一个标准输出流对象和一个标准输出流对象cout,分别用来实现从键,分别用来实现从键盘读取数据,以及将数据在屏幕上输出。盘读取数据,以及将数据在屏幕上输出。v要使用要使用cin和和cout,需要在,需要在C+程序开头加上如
5、下包程序开头加上如下包含命令:含命令:#include /新标准中的头文件名新标准中的头文件名using namespace std;/引入引入std名字空间中的标识符名字空间中的标识符81.标准输入流标准输入流cinvcin负责从键盘读取数据,使用负责从键盘读取数据,使用提取运算符提取运算符“”就就可以将键盘键入的数据读入到变量中。可以将键盘键入的数据读入到变量中。v语法格式:语法格式:cin变量变量1变量变量2变量变量n;变量可以是任意数据类型,输入时各个数据之间用变量可以是任意数据类型,输入时各个数据之间用空格键、空格键、Tab键或键或Enter键分隔。键分隔。v 例如:例如:int x
6、,y;cinxy;键盘上输入:键盘上输入:58 x5键盘键盘y8键盘键盘92.标准输出流标准输出流coutv负责将数据输出到屏幕上,使用负责将数据输出到屏幕上,使用插入运算符插入运算符“”就可以将数据显示在屏幕上当前光标所就可以将数据显示在屏幕上当前光标所在位置。在位置。v语法格式:语法格式:cout表达式表达式1表达式表达式2表达式表达式n;表达式可以是任意类型的,数据输出的格式表达式可以是任意类型的,数据输出的格式由系统自动决定。由系统自动决定。101112【例【例2.1】cout应用示例应用示例#include using namespace std;int main()int x=12
7、,y=83;double pai_1=3.14159265;float pai_2=3.141f;char ch1=a,ch2=b;bool ok=true;coutx=xendl;couty=yendl;coutpai_1=pai_1,pai_2=pai_2endl;coutch1=ch1,ch2=ch2endl;coutok=okendl;cout!ok=!okendl;return 0;x=12y=83pai_1=3.14159,pai_2=3.141ch1=a,ch2=bok=1!ok=013【例【例2.2】使用格式控制符输出数据使用格式控制符输出数据#include#include
8、using namespace std;int main()int a=35;double b=21.3456789;cout1234567890123endl;coutdeca hexa octaendl;coutbendl;coutsetprecision(4)bendl;coutsetw(10)bendl;coutsetw(10)setfill(*)bendl;coutsetiosflags(ios:scientific)bendl;coutsetprecision(3)bendl;coutsetprecision(2)bb,则将,则将a、b交换,否则不交换。两数交换,否则不交换。两数交
9、换可采用借助于第三个变量间接交换的方法交换可采用借助于第三个变量间接交换的方法 if(ab)t=a;a=b;b=t;17#include using namespace std;int main()int a,b,t;cout请输入两个整数请输入两个整数a,b:ab;if(ab)t=a;a=b;b=t;coutabendl;return 0;a=a+b;b=a-b;a=a-b;请输入两个整数请输入两个整数a,b:85 404085a=ab;b=ab;a=ab;182if-else语句(双分支)语句(双分支)if(表达式表达式)语句语句1 else 语句语句2true表达表达式式语句语句1fal
10、se语句语句2双分支双分支if语句流程图语句流程图19【例【例2.4】输入一个年份,判断是否为闰年。】输入一个年份,判断是否为闰年。v分析分析 闰年的年份可以被闰年的年份可以被4整除而不能被整除而不能被100整除,整除,或者能被或者能被400整除。整除。#include using namespace std;int main()int year;coutyear;if(year%4=0&year%100!=0)|(year%400=0)coutyear年是闰年年是闰年endl;else coutyear年不是闰年年不是闰年endl;return 0;203if-else if 语句(多分支)
11、语句(多分支)if(表达式表达式1)语句语句1 else if(表达式表达式2)语句语句2 else if(表达式表达式n)语句语句n else 语句语句n+1falsefalsefalsetruetrue表达式1表达式2表达式n语句n语句n+1语句2语句1true21【例例2.5】根据x的值,计算分段函数y的值。y的计算公式为:5cos(79)lnxxexyxxx(x0)(0 x15)(15x30)(x30)22#include#include using namespace std;int main()double x,y;coutx;if(x0)y=fabs(x);else if(x15
12、)y=exp(x)*cos(x);else if(x30)y=pow(x,5);else y=(7+9*x)*log(x);couty=y0)if(y0)coutx与与y均大于均大于0;else coutx大于大于0,y小于等于小于等于0;v注意:注意:如何使之与如何使之与第一个第一个if配配对?对?25【例【例2.62.6】从键盘上输入两个字符,比较其大小,输出大】从键盘上输入两个字符,比较其大小,输出大于、等于和小于的判断结果。于、等于和小于的判断结果。#include using namespace std;int main()char ch1,ch2;coutch1ch2;if(ch1
13、!=ch2)if(ch1ch2)coutch1大于大于ch2endl;else coutch1小于小于ch2endl;elsecoutch1等于等于ch2endl;return 0;请输入两个字符:请输入两个字符:h dh大于大于d请输入两个字符:请输入两个字符:X YX小于小于Y请输入两个字符:请输入两个字符:&等于等于&262.2.2 switch语句语句switch(表达式表达式)case 常量表达式常量表达式1:语句语句组组1 case 常量表达式常量表达式2:语句语句组组2 case 常量表达式常量表达式n:语句语句组组n default:语句语句组组n+1 注意:表达式只能是整型、
14、注意:表达式只能是整型、字符型或枚举型字符型或枚举型注意:常量表达注意:常量表达式式1n的值必须各的值必须各不相同。不相同。27有有无无无无false有有无无falsetrue计算表达式的值计算表达式的值常量表达式常量表达式1语句语句1break常量表达式常量表达式2语句语句2break无无有有false常量表达式常量表达式ntrue语句语句nbreakdefault语句语句n+1true有有switch语句执行流程语句执行流程28【例【例2.72.7】将输入的百分制成绩按以下规】将输入的百分制成绩按以下规定转换成相应的等级:定转换成相应的等级:成成 绩绩 等级等级10090 优秀优秀 898
15、0 良好良好 7970 中等中等 6960 及格及格 590 不及格不及格 29#include using namespace std;int main()float score;coutscore;if(score=0&score=100)switch(int(score)/10)case 10:case 9:coutscore分:优秀分:优秀endl;break;case 8:coutscore分:良好分:良好endl;break;case 7:coutscore分:中等分:中等endl;break;case 6:coutscore分:及格分:及格endl;break;default:c
16、outscore“分:不及格分:不及格”endl;else cout输入数据有误输入数据有误!endl;return 0;共用同一个语句组 思考:若省去思考:若省去break语句,情况语句,情况会怎样?会怎样?302.3 循环结构循环结构v按照给定规则重复地执行程序中的语句按照给定规则重复地执行程序中的语句 2.3.1 while 语句语句while(表达式表达式)语句语句falsetrue表达表达式式语句语句图2.14 while语句流程图循环体循环体当型循环当型循环31【例例2.8】求求 1+2+3+100#include using namespace std;int main()int
17、 i(1),sum(0);/定义变量,初始化定义变量,初始化while(i=100)/构造循环构造循环 sum+=i;/循环体,多次执行循环体,多次执行 i+;/循环变量循环变量coutsum=sumendl;return 0;0112真真33真真64真真105真真真真100真真101真真5050假假sum50500sum1i1233641005050101循环结束循环结束!实际上是将实际上是将i不停地累加到一起不停地累加到一起32【例例2.9】求出满足不等式的最小求出满足不等式的最小n值:值:5131211n#include using namespace std;int main()int
18、 i=0;double s=0;while(s8)s+=double(1)/+i;/i-循环变量循环变量 coutn=iendl;return 0;8332.3.2 do-while语句语句do 语句语句while(表达式表达式);falsetrue表达表达式式语句语句图图2.15 do-while语句流程图语句流程图直到型循环直到型循环34【例【例2.10】求自然数求自然数1100之和,要求用之和,要求用do-while语句实现。语句实现。#include using namespace std;int main()int i(1),sum(0);do sum+=i;i+;/i-循环变量循环
19、变量while(i=100);coutsum=sumendl;return 0;int i(1),sum(0);while(i2)cout”I like C+!”endl;/相当于一个空操作语句相当于一个空操作语句do cout”I like C+!”2);/输出一行文字信息输出一行文字信息注意:注意:dowhile首先执行循环体,然后再判断表达式,至首先执行循环体,然后再判断表达式,至少执行一次循环体。少执行一次循环体。当第一次循环表达式的值为真时,当第一次循环表达式的值为真时,while与与dowhile的结果完全一样,否则结果不相同。的结果完全一样,否则结果不相同。36【例【例2.11】
20、输入一个自然数,将该数的每一位数】输入一个自然数,将该数的每一位数字按反序输出。例如:输入字按反序输出。例如:输入12345,输出,输出54321。#include using namespace std;void main()unsigned long int num,dgt;coutnum;cout”倒置结果为:倒置结果为:”;do dgt=num%10;cout0);coutendl;37for(for(表达式表达式1;1;表达式表达式2;2;表达式表达式3 3)表达式表达式2执行执行 非非0 00 0退出退出循环循环表达式表达式1表达式表达式3表达式表达式1;while(表达式表达式2
展开阅读全文