《[工学]电大C语言程序设计-第3章-流程控制语句.ppt》由会员分享,可在线阅读,更多相关《[工学]电大C语言程序设计-第3章-流程控制语句.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、n第第3章章 流程控制语句流程控制语句 n(一一) 教学内容教学内容n1. if语句的定义格式和作用;语句的定义格式和作用;n2. switch语句的定义格式和作用;语句的定义格式和作用;n3. for语句的定义格式和作用;语句的定义格式和作用;n4. while语句的定义格式和作用;语句的定义格式和作用;n5. do-while语句的定义格式和作用;语句的定义格式和作用;n6. continue和和break语句的定义格式和作用;语句的定义格式和作用;n7. return和和goto语句的定义格式和作用。语句的定义格式和作用。 n 第第3章章 流程控制语句流程控制语句 n(二二) 教学要求教
2、学要求n理解:各种语句的定义格式;理解:各种语句的定义格式;n应用:分析程序,按照解决问题的需要应用:分析程序,按照解决问题的需要编写出相应程序。编写出相应程序。n第第3章章 流程控制语句流程控制语句n3.1 流程控制语句概述流程控制语句概述n1.流程控制:控制语句执行的顺序流程控制:控制语句执行的顺序n2.流程控制的方式流程控制的方式(三种三种) 顺序控制顺序控制 条件分支控制条件分支控制 循环控制循环控制n3. 程序结构的分类程序结构的分类 顺序结构顺序结构 条件分支结构:由条件分支结构:由if语句和语句和switch语句实现。语句实现。 循环结构:由循环结构:由while语句、语句、fo
3、r语句和语句和dowhile语句实现。语句实现。n 第第3章章 流程控制语句流程控制语句n 3.2 if语句语句n 1.if语句格式语句格式(设设p为条件表达式,为条件表达式,s为语句为语句)n 格式1:if p s;N-S图 Y P N Sn 第第3章章 流程控制语句流程控制语句n 3.2 if语句语句n 1.if语句格式语句格式(设设p为条件表达式,为条件表达式,s为语句为语句)n格式2:if p s1; else s2;N-S图 Y P N S1 S2n 第第3章章 流程控制语句流程控制语句n 3.2 if语句语句n 2.语句执行过程语句执行过程n 3.语句格式举例语句格式举例(1)if
4、(x!=-1) c+;(2)if(x=a) s1+=x; else s2+=x;(3)if(grade100) printf(“error!n”);(4)if(x) y=3*x+1;z=sqrt(fabs(x)+2); elsey=6;z=y*pow(y,4)-3;n 第第3章章 流程控制语句流程控制语句n 3.2 if语句语句n 4.if语句嵌套语句嵌套n c+规定,规定,else总是和其前面最近的尚未配总是和其前面最近的尚未配对的且可见的对的且可见的if配对。配对。n (1)if(p1) if(p2) s1 else s2(2)if(p1) if(p2) s1 s2 else p3(3)i
5、f(p1) s1 else if(p2) s2 else s3n第第3章章 流程控制语句流程控制语句n3.2 if语句语句n5.程序举例程序举例n程序程序3_1n程序程序3_2n程序程序3_3n6. 应用编程举例应用编程举例n例例3_1 编写一个程序,判断从键盘输入的任一个年份是否编写一个程序,判断从键盘输入的任一个年份是否为公历的闰年。公历闰年的计算方法是:若一个年份能够为公历的闰年。公历闰年的计算方法是:若一个年份能够被被4整除而不能被整除而不能被100整除的是闰年,若一个年份能够被整除的是闰年,若一个年份能够被400整除的也是闰年。整除的也是闰年。n例例3_2 编写一个程序,求一元二次方
6、程编写一个程序,求一元二次方程ax2+bx+c=0的实数的实数根。根。n第第3章章 流程控制语句流程控制语句n3.3 switch语句语句n1.语句格式语句格式n格式格式1(不带不带break语句语句) switch (表达式表达式) case 常量表达式常量表达式1:语句:语句1; case 常量表达式常量表达式2:语句:语句2; case 常量表达式常量表达式n:语句:语句n; default:语句语句n+1; n第第3章章 流程控制语句流程控制语句n3.3 switch语句语句n1.语句格式语句格式n例:例:#includen void main() int dayOfTheWeek;
7、cindayOfTheWeek; switch(dayOfTheWeek) case 0:cout“Sunday; case 1:cout“Monday; case 2:cout“Tuesday; case 3:cout“Wednesday; case 4:cout“Thursday; case 5:cout“Friday; case 6:cout“Saturday; default:cout“Unknow week day; n第第3章章 流程控制语句流程控制语句n3.3 switch语句语句n1.语句格式语句格式n格式格式2(带带break语句语句) switch (表达式表达式) cas
8、e 常量表达式常量表达式1:语句:语句1; break; case 常量表达式常量表达式2:语句:语句2; break; case 常量表达式常量表达式n:语句:语句n; break; default:语句语句n+1; n第第3章章 流程控制语句流程控制语句n3.3 switch语句语句n1.语句格式语句格式n例:例:#includen void main() int dayOfTheWeek; cindayOfTheWeek; switch(dayOfTheWeek) case 0:cout“Sunday;break; case 1:cout“Monday; break; case 2:co
9、ut“Tuesday; break; case 3:cout“Wednesday; break; case 4:cout“Thursday; break; case 5:cout“Friday; break; case 6:cout“Saturday; break; default:cout“Unknow week day; n 第第3章章 流程控制语句流程控制语句n 3.3 switch语句语句n 2.语句执行过程语句执行过程n 3.语句格式举例语句格式举例 4.程序举例程序举例程序程序3_4 程序程序3_5 程序程序3_6n 5.应用编程举例应用编程举例例例3_3 编写一个程序,要求把从键
10、盘上输编写一个程序,要求把从键盘上输入的一个入的一个015的整数转换为一位的整数转换为一位16进制数进制数后输出。后输出。n第第3章章 流程控制语句流程控制语句n3.4 for语句语句n1. 语句格式语句格式nfor ( 表达式表达式1 ; 表达式表达式2 ; 表达式表达式3 ) 语句语句n说明:说明: 表达式表达式1-循环变量赋初值循环变量赋初值 表达式表达式2-循环结束条件循环结束条件 表达式表达式3-循环变量增值循环变量增值n第第3章章 流程控制语句流程控制语句n3.4 for语句语句n2. 语句执行过程语句执行过程n第第3章章 流程控制语句流程控制语句n3.4 for语句语句n3. 语
11、句格式举例语句格式举例n(1)for(i=1;i10;i+) printf(“%d”,i);(2)for(i=1;i+=1000;) ;(3)for(i=0,y=0;in;i+) scanf(“%d”,&x); y+=x;(4)for(;b;a=b,b=r) r=a%b;(5)for(k=20;k!=0;k-) a=rand()%100; printf(“%d”,a); if(a%2) c1+; else c2+; n第第3章章 流程控制语句流程控制语句n3.4 for语句语句n4. 语句嵌套语句嵌套n(1)for(i=1;i=5;i+) for(j=1;j=6;j+) s+=i*j;(2)f
12、or(i=1;i=5;i+) for(j=1;j=i;j+) printf(“%c”,*); printf(“n”); (3)for(i=0;im;i+) for(j=0;jmax) max=aaij;row=i;col=j; n第第3章章 流程控制语句流程控制语句n3.4 for语句语句n5. 程序举例程序举例n程序程序3_7 程序程序3_8 程序程序3_9 程序程序3_10n6. 应用编程举例应用编程举例n例例3_4:编一个程序计算:编一个程序计算1+22+42+62+502的值。的值。n例例3_5:已知一组实验数据为:已知一组实验数据为3.62,2.93,3.16,3.73,2.86,3
13、.40,2.86,3.07,3.29,3.24,编一程序计算其平均值、方差和均方差,编一程序计算其平均值、方差和均方差,要求每一结果只保留两位小数。要求每一结果只保留两位小数。n第第3章章 流程控制语句流程控制语句n3.4 for语句语句n6. 应用编程举例应用编程举例n例例3_5:假设平均值、方差和均方差用变量:假设平均值、方差和均方差用变量v, f和和t表示,则有:表示,则有:11niivxn2211niifxvntfn第第3章章 流程控制语句流程控制语句n3.4 for语句语句n6. 应用编程举例应用编程举例n例例3_6:由勾股定理可知,在一个直角三角形:由勾股定理可知,在一个直角三角形
14、中,两条直角边中,两条直角边a和和b与斜边与斜边c的关系为的关系为a2+b2=c2,编一程序求出每条直角边均不大于编一程序求出每条直角边均不大于30的所有整数解。如的所有整数解。如(3,4,5),(5,12,13)都是解。都是解。n例例3_7:编一程序求出:编一程序求出299之间的所有素数。之间的所有素数。n第第3章章 流程控制语句流程控制语句n3.5 while语句语句n1. 语句格式语句格式n格式:格式:while ( 表达式表达式 ) 语句语句 n2. 执行过程执行过程n第第3章章 流程控制语句流程控制语句n3.5 while语句语句n3. 格式举例格式举例n(1)while(x10)
15、printf(“重输重输x的值:的值:”); scanf(“%d”,&x);(2)while(in&x!=ai) i+;(3)while(i+N) x=rand()%100; if(x%2=0) c2+; if(x%3=0) c3+; if(x%5=0) c5+; n第第3章章 流程控制语句流程控制语句n3.5 while语句语句n4. 程序举例程序举例n程序程序3_11 程序程序3_12 程序程序3_13n5. 应用编程举例应用编程举例n例例3_8 编一个程序求出满足不等式的最小编一个程序求出满足不等式的最小n值。值。1111.523nn第第3章章 流程控制语句流程控制语句n3.5 whil
16、e语句语句n5. 应用编程举例应用编程举例n例例3_9 有一家企业,若年产值平均增长率分有一家企业,若年产值平均增长率分别按别按2%, 4%, 6%, 20%计算,问分别需要计算,问分别需要经过多少年才能使年产值翻一番。经过多少年才能使年产值翻一番。分析:假定把当年的年产值定为分析:假定把当年的年产值定为1个单位,则个单位,则翻一番就为翻一番就为2。设年产值平均增长率为。设年产值平均增长率为x,经,经过的年数为过的年数为n,n年后的产值为年后的产值为y,则,则y的计算的计算公式为公式为y=(1+x)nn第第3章章 流程控制语句流程控制语句n3.6 do-while语句语句n1. 语句格式语句格
17、式n格式:格式:do 语句语句 while ( 表达式表达式 );n2. 执行过程执行过程n第第3章章 流程控制语句流程控制语句n3.6 do-while语句语句n3. 格式举例格式举例(1)do i+; while(xi0);(3)do int x=rand()%98+2; int y=(int)(sqrt(x)+1e-5); for(i=2;iy) n+;printf(“%d is primen”,x); while(n5);n第第3章章 流程控制语句流程控制语句n3.6 do-while语句语句n4. 程序举例程序举例n程序程序3_14 程序程序3_15n5. 应用编程举例应用编程举例n
18、例例3_10 编一个程序把从键盘上输入的一个十进制整编一个程序把从键盘上输入的一个十进制整数转换为对应的十六进制数字串后输出。数转换为对应的十六进制数字串后输出。n例例3_11 编一个程序利用牛顿法求解方程编一个程序利用牛顿法求解方程ex+3x-2的根,的根,要求两相邻近似根之差的绝对值不大于要求两相邻近似根之差的绝对值不大于0.001。 n第第3章章 流程控制语句流程控制语句n3.7 跳转类语句跳转类语句n跳转类语句包括跳转类语句包括goto,continue,break和和return四种语句。四种语句。n1. goto语句语句n语句格式:语句格式:goto ;n功能:将程序的执行转移到标
19、识符所标识的功能:将程序的执行转移到标识符所标识的语句处。语句处。n例子参见例子参见第第3章章 流程控制语句流程控制语句n3.7 跳转类语句跳转类语句n2. continue语句语句n功能:结束本次循环,接着进行下一次是否功能:结束本次循环,接着进行下一次是否执行循环的判定。执行循环的判定。n例子参见例子参见3. break语句语句n功能:用在功能:用在switch语句中,使流程跳出语句中,使流程跳出switch语句。用在循环体中,使流程跳出最近的封语句。用在循环体中,使流程跳出最近的封闭循环体。闭循环体。n第第3章章 流程控制语句流程控制语句n3.7 跳转类语句跳转类语句n3. break语句语句nbreak跳出循环体,不再判定条件。跳出循环体,不再判定条件。continue结束本结束本次循环,再判定条件。次循环,再判定条件。n例子参见例子参见4. return语句语句n语句格式:语句格式:return ;n说明:该语句在类型为说明:该语句在类型为void的函数中,则不能带有的函数中,则不能带有选项,若使用在其他任何类型的函数中,则选项,若使用在其他任何类型的函数中,则必须带有必须带有选项。选项。n例子参见例子参见return.c
限制150内