C语言程序设计:流程控制语句课件_第1页
C语言程序设计:流程控制语句课件_第2页
C语言程序设计:流程控制语句课件_第3页
C语言程序设计:流程控制语句课件_第4页
C语言程序设计:流程控制语句课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

《C语言程序设计》计算机科学与技术专业本科《C语言程序设计》1第3章流程控制语句

(一)教学内容1.if语句的定义格式和作用;2.switch语句的定义格式和作用;3.for语句的定义格式和作用;4.while语句的定义格式和作用;5.do---while语句的定义格式和作用;6.continue和break语句的定义格式和作用;7.return和goto语句的定义格式和作用。第3章流程控制语句2第3章流程控制语句

(二)教学要求理解:各种语句的定义格式;应用:分析程序,按照解决问题的需要编写出相应程序。第3章流程控制语句3第3章流程控制语句3.1流程控制语句概述1.流程控制:控制语句执行的顺序2.流程控制的方式(三种)

①顺序控制

②条件分支控制

③循环控制3.程序结构的分类

①顺序结构

②条件分支结构:由if语句和switch语句实现。

③循环结构:由while语句、for语句和do…while语句实现。第3章流程控制语句4第3章流程控制语句3.2if语句1.if语句格式(设p为条件表达式,s为语句)格式1:ifp

s;N-S图

Y

PNS第3章流程控制语句N-S图5第3章流程控制语句3.2if语句1.if语句格式(设p为条件表达式,s为语句)格式2:ifp

s1;

else

s2;N-S图

Y

PNS1S2第3章流程控制语句N-S图6第3章流程控制语句3.2if语句2.语句执行过程3.语句格式举例

(1)if(x!=-1)c++;

(2)if(x<=a)s1+=x;elses2+=x;

(3)if(grade<0||grade>100)printf(“error!\n”);

(4)if(x){y=3*x+1;z=sqrt(fabs(x)+2);}else{y=6;z=y*pow(y,4)-3;}第3章流程控制语句7第3章流程控制语句3.2if语句4.if语句嵌套c++规定,else总是和其前面最近的尚未配对的且可见的if配对。(1)if(p1)if(p2)s1elses2

(2)if(p1){if(p2)s1s2}elsep3

(3)if(p1)s1

elseif(p2)s2

elses3第3章流程控制语句8第3章流程控制语句3.2if语句5.程序举例程序3_1程序3_2程序3_36.应用编程举例例3_1编写一个程序,判断从键盘输入的任一个年份是否为公历的闰年。公历闰年的计算方法是:若一个年份能够被4整除而不能被100整除的是闰年,若一个年份能够被400整除的也是闰年。例3_2编写一个程序,求一元二次方程ax2+bx+c=0的实数根。第3章流程控制语句9第3章流程控制语句3.3switch语句1.语句格式格式1(不带break语句)

switch(表达式)

{case常量表达式1:语句1;

case常量表达式2:语句2;

case常量表达式n:语句n;

[default:语句n+1;]}第3章流程控制语句10第3章流程控制语句3.3switch语句1.语句格式例:#include<iostream.h>voidmain()

{

intdayOfTheWeek;

cin>>dayOfTheWeek;

switch(dayOfTheWeek)

{case0:cout<<“Sunday";

case1:cout<<“Monday";

case2:cout<<“Tuesday";

case3:cout<<“Wednesday";

case4:cout<<“Thursday";

case5:cout<<“Friday";

case6:cout<<“Saturday";

default:cout<<“Unknowweekday";

}

}第3章流程控制语句11第3章流程控制语句3.3switch语句1.语句格式格式2(带break语句)

switch(表达式)

{case常量表达式1:语句1;break;

case常量表达式2:语句2;break;

case常量表达式n:语句n;break;

[default:语句n+1;]}第3章流程控制语句12第3章流程控制语句3.3switch语句1.语句格式例:#include<iostream.h>voidmain()

{

intdayOfTheWeek;

cin>>dayOfTheWeek;

switch(dayOfTheWeek)

{case0:cout<<“Sunday";break;

case1:cout<<“Monday";break;

case2:cout<<“Tuesday";break;

case3:cout<<“Wednesday";break;

case4:cout<<“Thursday";break;

case5:cout<<“Friday";break;

case6:cout<<“Saturday";break;

default:cout<<“Unknowweekday";

}

}第3章流程控制语句13第3章流程控制语句3.3switch语句2.语句执行过程3.语句格式举例p68.c4.程序举例

程序3_4程序3_5程序3_65.应用编程举例

例3_3编写一个程序,要求把从键盘上输入的一个0~15的整数转换为一位16进制数后输出。第3章流程控制语句14第3章流程控制语句3.4for语句1.语句格式for(表达式1;表达式2;表达式3)语句说明:表达式1-----循环变量赋初值

表达式2-----循环结束条件

表达式3-----循环变量增值第3章流程控制语句15第3章流程控制语句3.4for语句2.语句执行过程第3章流程控制语句16第3章流程控制语句3.4for语句3.语句格式举例(1)for(i=1;i<10;i++)printf(“%d”,i);

(2)for(i=1;i++<=1000;);

(3)for(i=0,y=0;i<n;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++;elsec2++;

}第3章流程控制语句17第3章流程控制语句3.4for语句4.语句嵌套(1)for(i=1;i<=5;i++)

for(j=1;j<=6;j++)s+=i*j;

(2)for(i=1;i<=5;i++){

for(j=1;j<=i;j++)printf(“%c”,’*’);

printf(“\n”);

}

(3)for(i=0;i<m;i++){

for(j=0;j<n;j++)

if(aa[i][j]>max){

max=aa[i][j];row=i;col=j;

}第3章流程控制语句18第3章流程控制语句3.4for语句5.程序举例程序3_7程序3_8程序3_9程序3_106.应用编程举例例3_4:编一个程序计算1+22+42+62+…+502的值。例3_5:已知一组实验数据为3.62,2.93,3.16,3.73,2.86,3.40,2.86,3.07,3.29,3.24,编一程序计算其平均值、方差和均方差,要求每一结果只保留两位小数。第3章流程控制语句19第3章流程控制语句3.4for语句6.应用编程举例例3_5:假设平均值、方差和均方差用变量v,f和t表示,则有:第3章流程控制语句20第3章流程控制语句3.4for语句6.应用编程举例例3_6:由勾股定理可知,在一个直角三角形中,两条直角边a和b与斜边c的关系为a2+b2=c2,编一程序求出每条直角边均不大于30的所有整数解。如(3,4,5),(5,12,13)都是解。例3_7:编一程序求出2~99之间的所有素数。第3章流程控制语句21第3章流程控制语句3.5while语句1.语句格式格式:while(表达式)语句2.执行过程第3章流程控制语句22第3章流程控制语句3.5while语句3.格式举例(1)while(x<10)

{printf(“重输x的值:”);scanf(“%d”,&x);}

(2)while(i<n&&x!=a[i])i++;

(3)while(i++<N){

x=rand()%100;

if(x%2==0)c2++;

if(x%3==0)c3++;

if(x%5==0)c5++;

}第3章流程控制语句23第3章流程控制语句3.5while语句4.程序举例程序3_11程序3_12程序3_135.应用编程举例例3_8编一个程序求出满足不等式的最小n值。第3章流程控制语句24第3章流程控制语句3.5while语句5.应用编程举例例3_9有一家企业,若年产值平均增长率分别按2%,4%,6%,…,20%计算,问分别需要经过多少年才能使年产值翻一番。

分析:假定把当年的年产值定为1个单位,则翻一番就为2。设年产值平均增长率为x,经过的年数为n,n年后的产值为y,则y的计算公式为y=(1+x)n第3章流程控制语句25第3章流程控制语句3.6do--while语句1.语句格式格式:do语句

while(表达式

);2.执行过程第3章流程控制语句26第3章流程控制语句3.6do--while语句3.格式举例

(1)doi++;while(x[i]<y);

(2)do{scanf(“%d”,&x);s+=x;

}while(--n>0);

(3)do{

intx=rand()%98+2;

inty=(int)(sqrt(x)+1e-5);

for(i=2;i<=y;i++)

if(x%i==0)break;

if(i>y){n++;printf(“%disprime\n”,x);}

}while(n<5);第3章流程控制语句27第3章流程控制语句3.6do--while语句4.程序举例程序3_14程序3_155.应用编程举例例3_10编一个程序把从键盘上输入的一个十进制整数转换为对应的十六进制数字串后输出。例3_11编一个程序利用牛顿法求解方程ex+3x-2的根,要求两相邻近似根之差的绝对值不大于0.001。

第3章流程控制语句28第3章流程控制语句3.7跳转类语句跳转类语句包括goto,continue,break和return四种语句。1.goto语句语句格式:goto<语句标号>;功能:将程序的执行转移到标识符所标识的语句处。例子参见goto.c第3章流程控制语句29第3章流程控制语句3.7跳转类语句2.continue语句功能:结束本次循环,接着进行下一次是否执行循环的判定。例子参见continue.c3.break语句功能:用在switch语句中,使流程跳出switch语句。用在循环体中,使流程跳出最近的封闭循环体。第3章流程控制语句30第3章流程控制语句3.7跳转类语句3.break语句break跳出循环体,不再判定条件。continue结束本次循环,再判定条件。例子参见break.c4.return语句语句格式:return[<表达式>];说明:该语句在类型为void的函数中,则不能带有<表达式>选项,若使用在其他任何类型的函数中,则必须带有<表达式>选项。例子参见return.c第3章流程控制语句31演讲完毕,谢谢观看!演讲完毕,谢谢观看!32《C语言程序设计》计算机科学与技术专业本科《C语言程序设计》33第3章流程控制语句

(一)教学内容1.if语句的定义格式和作用;2.switch语句的定义格式和作用;3.for语句的定义格式和作用;4.while语句的定义格式和作用;5.do---while语句的定义格式和作用;6.continue和break语句的定义格式和作用;7.return和goto语句的定义格式和作用。第3章流程控制语句34第3章流程控制语句

(二)教学要求理解:各种语句的定义格式;应用:分析程序,按照解决问题的需要编写出相应程序。第3章流程控制语句35第3章流程控制语句3.1流程控制语句概述1.流程控制:控制语句执行的顺序2.流程控制的方式(三种)

①顺序控制

②条件分支控制

③循环控制3.程序结构的分类

①顺序结构

②条件分支结构:由if语句和switch语句实现。

③循环结构:由while语句、for语句和do…while语句实现。第3章流程控制语句36第3章流程控制语句3.2if语句1.if语句格式(设p为条件表达式,s为语句)格式1:ifp

s;N-S图

Y

PNS第3章流程控制语句N-S图37第3章流程控制语句3.2if语句1.if语句格式(设p为条件表达式,s为语句)格式2:ifp

s1;

else

s2;N-S图

Y

PNS1S2第3章流程控制语句N-S图38第3章流程控制语句3.2if语句2.语句执行过程3.语句格式举例

(1)if(x!=-1)c++;

(2)if(x<=a)s1+=x;elses2+=x;

(3)if(grade<0||grade>100)printf(“error!\n”);

(4)if(x){y=3*x+1;z=sqrt(fabs(x)+2);}else{y=6;z=y*pow(y,4)-3;}第3章流程控制语句39第3章流程控制语句3.2if语句4.if语句嵌套c++规定,else总是和其前面最近的尚未配对的且可见的if配对。(1)if(p1)if(p2)s1elses2

(2)if(p1){if(p2)s1s2}elsep3

(3)if(p1)s1

elseif(p2)s2

elses3第3章流程控制语句40第3章流程控制语句3.2if语句5.程序举例程序3_1程序3_2程序3_36.应用编程举例例3_1编写一个程序,判断从键盘输入的任一个年份是否为公历的闰年。公历闰年的计算方法是:若一个年份能够被4整除而不能被100整除的是闰年,若一个年份能够被400整除的也是闰年。例3_2编写一个程序,求一元二次方程ax2+bx+c=0的实数根。第3章流程控制语句41第3章流程控制语句3.3switch语句1.语句格式格式1(不带break语句)

switch(表达式)

{case常量表达式1:语句1;

case常量表达式2:语句2;

case常量表达式n:语句n;

[default:语句n+1;]}第3章流程控制语句42第3章流程控制语句3.3switch语句1.语句格式例:#include<iostream.h>voidmain()

{

intdayOfTheWeek;

cin>>dayOfTheWeek;

switch(dayOfTheWeek)

{case0:cout<<“Sunday";

case1:cout<<“Monday";

case2:cout<<“Tuesday";

case3:cout<<“Wednesday";

case4:cout<<“Thursday";

case5:cout<<“Friday";

case6:cout<<“Saturday";

default:cout<<“Unknowweekday";

}

}第3章流程控制语句43第3章流程控制语句3.3switch语句1.语句格式格式2(带break语句)

switch(表达式)

{case常量表达式1:语句1;break;

case常量表达式2:语句2;break;

case常量表达式n:语句n;break;

[default:语句n+1;]}第3章流程控制语句44第3章流程控制语句3.3switch语句1.语句格式例:#include<iostream.h>voidmain()

{

intdayOfTheWeek;

cin>>dayOfTheWeek;

switch(dayOfTheWeek)

{case0:cout<<“Sunday";break;

case1:cout<<“Monday";break;

case2:cout<<“Tuesday";break;

case3:cout<<“Wednesday";break;

case4:cout<<“Thursday";break;

case5:cout<<“Friday";break;

case6:cout<<“Saturday";break;

default:cout<<“Unknowweekday";

}

}第3章流程控制语句45第3章流程控制语句3.3switch语句2.语句执行过程3.语句格式举例p68.c4.程序举例

程序3_4程序3_5程序3_65.应用编程举例

例3_3编写一个程序,要求把从键盘上输入的一个0~15的整数转换为一位16进制数后输出。第3章流程控制语句46第3章流程控制语句3.4for语句1.语句格式for(表达式1;表达式2;表达式3)语句说明:表达式1-----循环变量赋初值

表达式2-----循环结束条件

表达式3-----循环变量增值第3章流程控制语句47第3章流程控制语句3.4for语句2.语句执行过程第3章流程控制语句48第3章流程控制语句3.4for语句3.语句格式举例(1)for(i=1;i<10;i++)printf(“%d”,i);

(2)for(i=1;i++<=1000;);

(3)for(i=0,y=0;i<n;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++;elsec2++;

}第3章流程控制语句49第3章流程控制语句3.4for语句4.语句嵌套(1)for(i=1;i<=5;i++)

for(j=1;j<=6;j++)s+=i*j;

(2)for(i=1;i<=5;i++){

for(j=1;j<=i;j++)printf(“%c”,’*’);

printf(“\n”);

}

(3)for(i=0;i<m;i++){

for(j=0;j<n;j++)

if(aa[i][j]>max){

max=aa[i][j];row=i;col=j;

}第3章流程控制语句50第3章流程控制语句3.4for语句5.程序举例程序3_7程序3_8程序3_9程序3_106.应用编程举例例3_4:编一个程序计算1+22+42+62+…+502的值。例3_5:已知一组实验数据为3.62,2.93,3.16,3.73,2.86,3.40,2.86,3.07,3.29,3.24,编一程序计算其平均值、方差和均方差,要求每一结果只保留两位小数。第3章流程控制语句51第3章流程控制语句3.4for语句6.应用编程举例例3_5:假设平均值、方差和均方差用变量v,f和t表示,则有:第3章流程控制语句52第3章流程控制语句3.4for语句6.应用编程举例例3_6:由勾股定理可知,在一个直角三角形中,两条直角边a和b与斜边c的关系为a2+b2=c2,编一程序求出每条直角边均不大于30的所有整数解。如(3,4,5),(5,12,13)都是解。例3_7:编一程序求出2~99之间的所有素数。第3章流程控制语句53第3章流程控制语句3.5while语句1.语句格式格式:while(表达式)语句2.执行过程第3章流程控制语句54第3章流程控制语句3.5while语句3.格式举例(1)while(x<10)

{printf(“重输x的值:”);scanf(“%d”,&x);}

(2)while(i<n&&x!=a[i])i++;

(3)while(i++<N){

x=rand()%100;

if(x%2==0)c2++;

if(x%3==0)c3++;

if(x%5==0)c5++;

}第3章流程控制语句55第3章流程控制语句3.5while语句4.程序举例程序3_11程序3_12程序3_135.应用编程举例例3_8编一个程序求出满足不等式的最小n值。第3章流程控制语句56第3章流程控制语句3.5while语句5.应用编程举例例3_9有一家企业,若年产值平均增长率分别按2%,4%,6%,…,20%计算,问分别需要经过多少年才能使年产值翻一番。

分析:假定把当年的年产值定为1个单位,则

温馨提示

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

最新文档

评论

0/150

提交评论