您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 电大C语言程序设计 第3章 流程控制语句
《C语言程序设计》计算机科学与技术专业本科第3章流程控制语句(一)教学内容1.if语句的定义格式和作用;2.switch语句的定义格式和作用;3.for语句的定义格式和作用;4.while语句的定义格式和作用;5.do---while语句的定义格式和作用;6.continue和break语句的定义格式和作用;7.return和goto语句的定义格式和作用。第3章流程控制语句(二)教学要求理解:各种语句的定义格式;应用:分析程序,按照解决问题的需要编写出相应程序。第3章流程控制语句3.1流程控制语句概述1.流程控制:控制语句执行的顺序2.流程控制的方式(三种)①顺序控制②条件分支控制③循环控制3.程序结构的分类①顺序结构②条件分支结构:由if语句和switch语句实现。③循环结构:由while语句、for语句和do…while语句实现。第3章流程控制语句3.2if语句1.if语句格式(设p为条件表达式,s为语句)格式1:ifps;N-S图YPNS第3章流程控制语句3.2if语句1.if语句格式(设p为条件表达式,s为语句)格式2:ifps1;elses2;N-S图YPNS1S2第3章流程控制语句3.2if语句2.语句执行过程3.语句格式举例(1)if(x!=-1)c++;(2)if(x=a)s1+=x;elses2+=x;(3)if(grade0||grade100)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章流程控制语句3.2if语句4.if语句嵌套c++规定,else总是和其前面最近的尚未配对的且可见的if配对。(1)if(p1)if(p2)s1elses2(2)if(p1){if(p2)s1s2}elsep3(3)if(p1)s1elseif(p2)s2elses3第3章流程控制语句3.2if语句5.程序举例程序3_1程序3_2程序3_36.应用编程举例例3_1编写一个程序,判断从键盘输入的任一个年份是否为公历的闰年。公历闰年的计算方法是:若一个年份能够被4整除而不能被100整除的是闰年,若一个年份能够被400整除的也是闰年。例3_2编写一个程序,求一元二次方程ax2+bx+c=0的实数根。第3章流程控制语句3.3switch语句1.语句格式格式1(不带break语句)switch(表达式){case常量表达式1:语句1;case常量表达式2:语句2;…case常量表达式n:语句n;[default:语句n+1;]}第3章流程控制语句3.3switch语句1.语句格式例:#includeiostream.hvoidmain(){intdayOfTheWeek;cindayOfTheWeek;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章流程控制语句3.3switch语句1.语句格式格式2(带break语句)switch(表达式){case常量表达式1:语句1;break;case常量表达式2:语句2;break;…case常量表达式n:语句n;break;[default:语句n+1;]}第3章流程控制语句3.3switch语句1.语句格式例:#includeiostream.hvoidmain(){intdayOfTheWeek;cindayOfTheWeek;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章流程控制语句3.3switch语句2.语句执行过程3.语句格式举例p68.c4.程序举例程序3_4程序3_5程序3_65.应用编程举例例3_3编写一个程序,要求把从键盘上输入的一个0~15的整数转换为一位16进制数后输出。第3章流程控制语句3.4for语句1.语句格式for(表达式1;表达式2;表达式3)语句说明:表达式1-----循环变量赋初值表达式2-----循环结束条件表达式3-----循环变量增值第3章流程控制语句3.4for语句2.语句执行过程第3章流程控制语句3.4for语句3.语句格式举例(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++;elsec2++;}第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;im;i++){for(j=0;jn;j++)if(aa[i][j]max){max=aa[i][j];row=i;col=j;}第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章流程控制语句3.4for语句6.应用编程举例例3_5:假设平均值、方差和均方差用变量v,f和t表示,则有:11niivxn2211niifxvntf第3章流程控制语句3.4for语句6.应用编程举例例3_6:由勾股定理可知,在一个直角三角形中,两条直角边a和b与斜边c的关系为a2+b2=c2,编一程序求出每条直角边均不大于30的所有整数解。如(3,4,5),(5,12,13)都是解。例3_7:编一程序求出2~99之间的所有素数。第3章流程控制语句3.5while语句1.语句格式格式:while(表达式)语句2.执行过程第3章流程控制语句3.5while语句3.格式举例(1)while(x10){printf(“重输x的值:”);scanf(“%d”,&x);}(2)while(in&&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章流程控制语句3.5while语句4.程序举例程序3_11程序3_12程序3_135.应用编程举例例3_8编一个程序求出满足不等式的最小n值。1111...523n第3章流程控制语句3.5while语句5.应用编程举例例3_9有一家企业,若年产值平均增长率分别按2%,4%,6%,…,20%计算,问分别需要经过多少年才能使年产值翻一番。分析:假定把当年的年产值定为1个单位,则翻一番就为2。设年产值平均增长率为x,经过的年数为n,n年后的产值为y,则y的计算公式为y=(1+x)n第3章流程控制语句3.6do--while语句1.语句格式格式:do语句while(表达式);2.执行过程第3章流程控制语句3.6do--while语句3.格式举例(1)doi++;while(x[i]y);(2)do{scanf(“%d”,&x);s+=x;}while(--n0);(3)do{intx=rand()%98+2;inty=(int)(sqrt(x)+1e-5);for(i=2;i=y;i++)if(x%i==0)break;if(iy){n++;printf(“%disprime\n”,x);}}while(n5);第3章流程控制语句3.6do--while语句4.程序举例程序3_14程序3_155.应用编程举例例3_10编一个程序把从键盘上输入的一个十进制整数转换为对应的十六进制数字串后输出。例3_11编一个程序利用牛顿法求解方程ex+3x-2的根,要求两相邻近似根之差的绝对值不大于0.001。第3章流程控制语句3.7跳转类语句跳转类语句包括goto,continue,break和return四种语句。1.goto语句语句格式:goto语句标号;功能:将程序的执行转移到标识符所标识的语句处。例子参见goto.c第3章流程控制语句3.7跳转类语句2.continue语句功能:结束本次循环,接着进行下一次是否执行循环的判定。例子参见continue.c3.break语句功能:用在switch语句中,使流程跳出switch语句。用在循环体中,使流程跳出最近的封闭循环体。第3章流程控制语句3.7跳转类语句3.break语句break跳出循环体,不再判定条件。continue结束本次循环,再判定条件。例子参见break.c4.return语句语句格式:return[表达式];说明:该语句在类型为void的函数中,则不能带有表达式选项,若使用在其他任何类型的函数中,则必须带有表达式选项。例子参见return.c
本文标题:电大C语言程序设计 第3章 流程控制语句
链接地址:https://www.777doc.com/doc-654491 .html