工学电大C语言程序设计-第3章-流程控制语句_第1页
工学电大C语言程序设计-第3章-流程控制语句_第2页
工学电大C语言程序设计-第3章-流程控制语句_第3页
工学电大C语言程序设计-第3章-流程控制语句_第4页
工学电大C语言程序设计-第3章-流程控制语句_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

[工学]电大C语言程序设计-第3章-流程控制语句第一页,共31页。第3章流程控制语句

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

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

①顺序控制

②条件分支控制

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

①顺序结构

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

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

s;N-S图

Y

PNS第五页,共31页。第3章流程控制语句3.2if语句1.if语句格式(设p为条件表达式,s为语句)格式2:ifp

s1;

else

s2;N-S图

Y

PNS1S2第六页,共31页。第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;}第七页,共31页。第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第八页,共31页。第3章流程控制语句3.2if语句5.程序举例程序3_1程序3_2程序3_36.应用编程举例例3_1编写一个程序,判断从键盘输入的任一个年份是否为公历的闰年。公历闰年的计算方法是:若一个年份能够被4整除而不能被100整除的是闰年,若一个年份能够被400整除的也是闰年。例3_2编写一个程序,求一元二次方程ax2+bx+c=0的实数根。第九页,共31页。第3章流程控制语句3.3switch语句1.语句格式格式1(不带break语句)

switch(表达式)

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

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

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

[default:语句n+1;]}第十页,共31页。第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";

}

}第十一页,共31页。第3章流程控制语句3.3switch语句1.语句格式格式2(带break语句)

switch(表达式)

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

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

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

[default:语句n+1;]}第十二页,共31页。第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";

}

}第十三页,共31页。第3章流程控制语句3.3switch语句2.语句执行过程3.语句格式举例p68.c4.程序举例

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

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

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

表达式3-----循环变量增值第十五页,共31页。第3章流程控制语句3.4for语句2.语句执行过程第十六页,共31页。第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++;

}第十七页,共31页。第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;

}第十八页,共31页。第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,编一程序计算其平均值、方差和均方差,要求每一结果只保留两位小数。第十九页,共31页。第3章流程控制语句3.4for语句6.应用编程举例例3_5:假设平均值、方差和均方差用变量v,f和t表示,则有:第二十页,共31页。第3章流程控制语句3.4for语句6.应用编程举例例3_6:由勾股定理可知,在一个直角三角形中,两条直角边a和b与斜边c的关系为a2+b2=c2,编一程序求出每条直角边均不大于30的所有整数解。如(3,4,5),(5,12,13)都是解。例3_7:编一程序求出2~99之间的所有素数。第二十一页,共31页。第3章流程控制语句3.5while语句1.语句格式格式:while(表达式)语句2.执行过程第二十二页,共31页。第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++;

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

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

while(表达式

);2.执行过程第二十六页,共31页。第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%

温馨提示

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

评论

0/150

提交评论