C语言程序设计课件第2章程序控制结构.ppt
《C语言程序设计课件第2章程序控制结构.ppt》由会员分享,可在线阅读,更多相关《C语言程序设计课件第2章程序控制结构.ppt(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第2章章 程序控制结构程序控制结构2.1 顺序结构顺序结构 2.2 选择结构选择结构 2.3 循环结构循环结构 2.4 控制转向语句控制转向语句 2.5 程序实例程序实例 1v按照语句出现的先后顺序依次执行。按照语句出现的先后顺序依次执行。2.1 顺序结构顺序结构 语句1语句2图2.1 顺序结构流程图22.1.1 定义语句定义语句v说明语句说明语句v在在C+程序中,一个标识符(变量名、常量名、函程序中,一个标识符(变量名、常量名、函数名、对象名等)在使用之前必须先定义,通知编数名、对象名等)在使用之前必须先定义,通知编译器为其分配存储空间,或告诉编译器它的存在及译器为其分配存储空间,或告诉编
2、译器它的存在及其特征。其特征。v例如:例如:int a=0,b=3;const double pi=3.14159;int sum(int,int);float score 503;32.1.2 表达式语句表达式语句v形式:形式:;v可以进行的操作通常包括赋值操作,复合赋值可以进行的操作通常包括赋值操作,复合赋值操作,增量、减量操作,函数调用操作和输入操作,增量、减量操作,函数调用操作和输入输出操作。输出操作。v例如:例如:i+;-j;abs(x);coutij;sum=a+b;a=b=c;i=1,j=2;b*=c;42.1.3 复合语句复合语句v形式:形式:v作用:当程序中某个位置在语法上只
3、允许一条作用:当程序中某个位置在语法上只允许一条语句,而在语义上要执行多条语句才能完成某个语句,而在语义上要执行多条语句才能完成某个操作时,需要使用复合语句。操作时,需要使用复合语句。例如:例如:if(x=0)couta;coutb;52.1.4 空语句空语句v形式:形式:;v作用:作用:当程序中某个位置在语法上需要一当程序中某个位置在语法上需要一条语句,而在语义上又不条语句,而在语义上又不 要求执行任何动要求执行任何动作时,可放上一条空语句。作时,可放上一条空语句。v一般适用于在循环语句中做空循环体一般适用于在循环语句中做空循环体v例如:例如:for(m=0;m1000;m+);62.1.5
4、 基本输入输出基本输入输出v在在C+中,所有输入输出是通过中,所有输入输出是通过输入输出流输入输出流来实现的。来实现的。v在在C+中,将数据从一个对象到另一个对象的流动抽中,将数据从一个对象到另一个对象的流动抽象为象为“流流”。在。在iostream库中包含一个标准输入流对库中包含一个标准输入流对象象cin和一个标准输出流对象和一个标准输出流对象cout,分别用来实现从,分别用来实现从键盘读取数据,以及将数据在屏幕上输出。键盘读取数据,以及将数据在屏幕上输出。v要使用要使用cin和和cout,需要在,需要在C+程序开头加上如下包程序开头加上如下包含命令:含命令:#include /新标准中的头
5、文件名新标准中的头文件名using namespace std;/引入引入std名字空间中的标识符名字空间中的标识符71.标准输入流标准输入流cinvcin负责从键盘读取数据,使用负责从键盘读取数据,使用提取提取运算符运算符“”就就可以将键盘键入的数据读入到变量中。可以将键盘键入的数据读入到变量中。v语法格式:语法格式:cin变量变量1变量变量2变量变量n;变量可以是任意数据类型,输入时各个数据之间用变量可以是任意数据类型,输入时各个数据之间用空格键、空格键、Tab键或键或Enter键分隔。键分隔。v 例如:例如:int a,b;cinab;键盘上输入:键盘上输入:93 a9键盘键盘b3键盘键
6、盘82.标准输出流标准输出流coutv负责将数据输出到屏幕上,使用负责将数据输出到屏幕上,使用插入插入运算符运算符“”就可以将数据显示在屏幕上当前光标就可以将数据显示在屏幕上当前光标所在位置。所在位置。v语法格式:语法格式:cout表达式表达式1表达式表达式2表达式表达式n;表达式可以是任意类型的,数据输出的格式表达式可以是任意类型的,数据输出的格式由系统自动决定。由系统自动决定。9表表2.1 常用格式控制符常用格式控制符格式控制符格式控制符说说 明明示示 例例语语 句句结结 果果endl输输出出换换行行符符cout120endl240;120240dec十十进进制表制表示示coutdec12
7、0;120hex十六十六进进制制表示表示couthex120;78oct八八进进制表制表示示coutoct120;170setw(int n)设设置数据置数据输输出的出的宽宽度度coutxsetw(3)y;x y(中(中间间有有2个个空格)空格)10表表2.1 常用格式控制符常用格式控制符格式控制符格式控制符说说 明明示示 例例语语 句句结结 果果setfill(char c)设设置填充字符置填充字符coutsetfill()setw(6)120;120setprecision(int n)设设置浮点数的置浮点数的精度(有效数精度(有效数字位数或小数字位数或小数位数)位数)coutsetpre
8、cision(5)12.3456;12.346setiosflags(ios:fixed)定点格式定点格式输输出出coutsetiosflags(ios:fixed)12.3456789;12.345679setiosflags(ios:scientific)指数格式指数格式输输出出coutsetiosflags(ios:scientific)12.3456789;1.234568e+00111【例【例2.1】cout应用示例应用示例#include using namespace std;int main()int m=2,n=8;double pai_1=3.14159265;float
9、pai_2=3.141f;char ch1=A,ch2=B;bool ok=true;coutm=mendl;coutn=nendl;coutpai_1=pai_1,pai_2=pai_2endl;coutch1=ch1,ch2=ch2endl;coutok=okendl;cout!ok=!okendl;return 0;图2.2 cout应用示例12【例【例2.2】使用格式控制符输出数据使用格式控制符输出数据#include#include using namespace std;int main()int a=35;double b=12.3456789;coutdeca hexa oct
10、aendl;coutbendl;coutsetprecision(4)bendl;coutsetw(10)bendl;coutsetw(10)setfill(#)bendl;coutsetiosflags(ios:scientific)bendl;coutsetprecision(3)bendl;coutsetprecision(2)bb,则将,则将a、b交换,否则不交换。两数交交换,否则不交换。两数交换可采用借助于第三个变量间接交换的方法换可采用借助于第三个变量间接交换的方法 if(ab)t=a;a=b;b=t;16#include using namespace std;int main(
11、)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=a+b;b=a-b;a=a-b;172if-else语句(双分支)语句(双分支)if(表达式表达式)语句语句1 else 语句语句2true表达表达式式语句语句1false语句语句2图图2.7 双分支双分支if语句流程图语句流程图18【例【例2.4】输入一个年份,判断是否为闰年。】输入一个年份,判断是否为闰年。v分析分析 闰年的年份可以被闰年的年份可以被4整除而不能被整除而不能被100整除,或整除,或者能被者
12、能被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;193if-else if 语句(多分支)语句(多分支)if(表达式表达式1)语句语句1 else if(表达式表达式2)语句语句2 else if(表达式表达式n)语句语句n else 语句语句n+1falsefalsefalsetruetrue表达式1表达式2表达式n语
13、句n语句n+1语句2语句1true20【例例2.5】根据x的值,计算分段函数y的值。y的计算公式为:21#include#include using namespace std;int main()double x,y;coutx;if(x0)y=fabs(x);else if(x10)y=exp(x)*sin(x);else if(x20)y=pow(x,3);else y=(3+2*x)*log(x);couty=y0)if(y0)coutx与与y均大于均大于0;else coutx大于大于0,y小于等于小于等于0;如何使之与如何使之与第一个第一个if配配对?对?24【例【例2.62.6】
14、从键盘上输入两个字符,比较其大小,输出大】从键盘上输入两个字符,比较其大小,输出大于、等于和小于的判断结果。于、等于和小于的判断结果。#include using namespace std;int main()char ch1,ch2;coutch1ch2;if(ch1!=ch2)if(ch1ch2)coutch1大于大于ch2endl;else coutch1小于小于ch2endl;elsecoutch1等于等于ch2endl;return 0;252.2.2 switch语句语句switch(表达式表达式)case 常量表达式常量表达式1:语句语句1 case 常量表达式常量表达式2:语
15、句语句2 case 常量表达式常量表达式n:语句语句n default:语句序列语句序列n+1 注意:表达式只能是整型、注意:表达式只能是整型、字符型或枚举型字符型或枚举型注注意意:常常量量表表达达式式1n的的值值必必须须各各不不相同。相同。26有有无无无无false有有无无falsetrue计算表达式的值计算表达式的值常量表达式常量表达式1语句语句1break常量表达式常量表达式2语句语句2break无无有有false常量表达式常量表达式ntrue语句语句nbreakdefault语句语句n+1true有有图图2.12 switch语句执行流程语句执行流程27【例例2.72.7】将将输输入入
16、的的百百分分制制成成绩绩按按以以下下规规定转换成相应的等级:定转换成相应的等级:成成 绩绩 等级等级10090 优秀优秀 8980 良好良好 7970 中等中等 6960 及格及格 590 不及格不及格 28#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:coutscor
17、e分:中等分:中等endl;break;case 6:coutscore分:及格分:及格endl;break;default:coutscore“分:不及格分:不及格”endl;else cout输入数据有误输入数据有误!endl;return 0;共用同一个语句组 思考:若省去思考:若省去break语句,情况语句,情况会怎样?会怎样?292.3 循环结构循环结构v按照给定规则重复地执行程序中的语句按照给定规则重复地执行程序中的语句 2.3.1 while 语句语句while(表达式表达式)语句语句falsetrue表达表达式式语句语句图2.14 while语句流程图循循环环条条件件,其其 值
18、值 为为true(非非0)、false(0)循环体循环体30【例【例2.8】求求 1+2+3+100#include using namespace std;int main()int i(1),sum(0);/定义变量,初始化定义变量,初始化while(i=100)/构造循环构造循环 sum+=i;/循环体,多次执行循环体,多次执行 i+;coutsum=sumendl;return 0;循环条件循环条件初值初值循环次数循环次数1234.99100101sumi0112真真33真真64真真105真真真真100真真101真真5050假假sum50500sum1i1233641005050101
19、循环结束循环结束!实际上是将实际上是将i不停地累加到一起不停地累加到一起31【例例2.9】求出满足不等式的最小求出满足不等式的最小n值:值:#include using namespace std;int main()int i=0;double s=0;while(s5)s+=double(1)/+i;coutn=iendl;return 0;322.3.2 do-while语句语句do 语句语句while(表达式表达式);falsetrue表达表达式式语句语句图图2.15 do-while语句流程图语句流程图33【例【例2.10】求自然数求自然数1100之和,要求用之和,要求用do-whi
20、le语句实现。语句实现。#include using namespace std;int main()int i(1),sum(0);do sum+=i;i+;while(i=100);coutsum=sum2)cout”I like C+!”endl;/相当于一个空操作语句相当于一个空操作语句do cout”I like C+!”2);/输出一行文字信息输出一行文字信息注意:注意:dowhile首首先先执执行行循循环环体体,然然后后再再判判断断表表达达式式,至至少少执执行行一一次次循循环环体体。当当第第一一次次循循环环表表达达式式的的值值为为真真时时,while与与dowhile的结果完全一
21、样,否则结果不相同。的结果完全一样,否则结果不相同。35【例例2.11】输输入入一一个个自自然然数数,将将该该数数的的每每一一位位数数字按反序输出。例如:输入字按反序输出。例如:输入12345,输出,输出54321。#include using namespace std;void main()unsigned long int num,digital;coutnum;dodigital=num%10;num/=10;cout0);coutendl;36for(for(表达式表达式1;1;表达式表达式2;2;表达式表达式3 3)表达式表达式2执行执行非非00退出退出循环循环表达式表达式1表达式
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 课件 章程 控制 结构
限制150内