C语言循环语句学案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C语言项目实训教程—项目三循环程序设计—打鱼还是晒网1项目三循环程序设计—打鱼还是晒网任务一while语句学案学生自评教师评分专业班级姓名工位号【学习要求】1.了解循环结构、循环语句2.掌握while语句和语法形式、执行顺序及用法3.掌握循环结构的嵌套使用方法【学习重点、难点】1.while语句2.算法描述。【学时安排】4学时【学习过程】中国有句俗话叫“三天打鱼两天晒网”。某人从1990年1月1日开始“三天打鱼两天晒网”,问这个人在1994年3月1日这一天是在“打鱼”,还是“晒网”?一、课前预习及课堂学习任务1、循环结构?2、循环语句:实现循环结构的语句称为循环语句。3、在C中,循环语句有以下三种:for语句while语句do…while语句1)while循环——当型循环while语句的一般格式为:while(表达式)语句C语言项目实训教程—项目三循环程序设计—打鱼还是晒网2while语句的执行过程为:(1)计算并判断表达式的值。若值为0,则结束循环,退出while语句;若值为非0,则执行循环体。(2)转步骤(1)。执行过程流程图:1.写出以下程序的运行结果程序屏幕显示注意事项例3-1100例如:求nn=1#includestdio.hvoidmain(void){inta=1,sum=0;while(a=100){sum+=a;a++;}printf(%d,sum);}练习求s=1+2+3+……+10练习用while语句实现阶乘5!。注意“边界值”的选择!应有使循环趋于结束的语句C语言项目实训教程—项目三循环程序设计—打鱼还是晒网3程序屏幕显示注意事项例3-2:统计从键盘输入的一行字符的个数。#includestdio.hvoidmain(void){intnum=0;printf(请输入一行字符:);while(getchar()!='\n')num++;printf(共输入了%d个字符!,num);}例3-3:个位数是6,且能被3整除的5位数共有多少个?#includestdio.hvoidmain(void){longintn=10006;intcount=0;while(n=99999){if(n%3==0)count++;n+=10;}printf(“count=%d\n”,count);}练习:能被3整除的3位偶数共有多少个?C语言项目实训教程—项目三循环程序设计—打鱼还是晒网4程序屏幕显示注意事项例3-3利用辗转相除法,求两个正整数的最大公约数算法:1)若j=0,则i为最大公约数2)若j不为0,将i除以j,余数为k,i=j;j=k;转1)main(){inti,j,temp;printf(“Enter2integers:”);scanf(“%d%d”,&i,&j);while(j){temp=i%j;i=j;j=temp;}printf(“Gcd=%d\n”,i);}二、While语句-------使用要点(当型循环)1.圆括号中的表达式可以是任意表达式,它仅用来测试表达式的结果值是零值还是非零值,用以决定循环进行的条件,称为“判终表达式”,一般是关系表达式或逻辑表达式,与条件语句一样可进行如下简化:C语言项目实训教程—项目三循环程序设计—打鱼还是晒网5while(x!=0)while(x==0)2.当判终表达式为时,这样的while语句为无穷循环语句,如:while(1)语句;//无穷循环语句3.while语句的循环体通常是一个复合语句,也可以是简单语句,甚至可以是一个。4.在循环体中应有使循环趋于的语句,以避免“死循环”。任务二do-while循环——直到型循环学案学生自评教师评分专业班级姓名工位号【学习要求】1.了解循环结构、循环语句2.掌握do-while语句和语法形式、执行顺序及用法3.掌握循环结构的嵌套使用方法【学习重点、难点】1.do-while语句【学时安排】2学时【学习过程】二、课前预习及课堂学习任务do-while语句的一般格式为do语句while(表达式);do-while语句的执行过程为:(1)执行循环体语句。(2)计算并判断表达式的值。若值为0,则结束循环,退出while语句;若值为非0,则转步骤(1)。执行过程:C语言项目实训教程—项目三循环程序设计—打鱼还是晒网6程序编程注意事项、流程图绘制例3-4100例如:求nn=1#includestdio.hvoidmain(void){inti,sum=0;i=1;do{sum=sum+i;i++;}while(i=100);printf(“%d”,sum);}练习求s=2+4+6+……+20练习求s=1+3+5+……+19无论表达式的值是多少,循环体至少执行!C语言项目实训教程—项目三循环程序设计—打鱼还是晒网7程序编程提示例3-5从键盘输入一行字符,统计其中包含的数字字符个数,并输出。#includestdio.hmain(){intch,num=0;printf(“Enteralinetext:”);do{ch=getchar();if()num++;}while(ch!=);printf(“num=%d\n,num”);}练习个位数是6,且能被3整除的5位数共有多少个?练习个位数是奇数,且能被7整除的4位数共有多少个?1)题目要求从键盘读入一个字符,说明字符的不确定,需要根据行结束标记(回车符)判断输入的结束。2)题目只需要统计数字字符个数,所以不需要保存每个字符。3)为了统计数字字符的个数,需要定义一个整形变量num,用于累加数字字符的。C语言项目实训教程—项目三循环程序设计—打鱼还是晒网8三、do-while语句与while语句的本质区别1)while语句是的值。若其值为非0,则执行;若其值为0,则退出。2)do-while语句则首先执行循环体,然后再计算并的值。因此,do-while语句至少要执行循环体。四、do-while语句-------使用要点1.与while语句类似,判终表达式可以是任意表达式,它仅用来测试表达式的值是零值还是非零值,用以决定循环进行的条件.2.do-while语句的循环体既可以是一个复合语句,也可以是一个简单语句。但即使循环体是一个简单语句,包围它的一对大括号也不能省略。任务三for语句学案【学习要求】1.了解循环结构、循环语句2.掌握for语句和语法形式、执行顺序及用法3.掌握循环结构的嵌套使用方法【学习重点、难点】1.for语句2.算法描述。for语句的一般格式为:for(表达式1;表达式2;表达式3)语句表达式1用于循环赋初始值,它只能执行一次;表达式2是循环条件;表达式3用于对循环条件的修改,以使循环能趋于结束。执行过程流程图:C语言项目实训教程—项目三循环程序设计—打鱼还是晒网9程序编程注意事项、流程图绘制例3-6求从1加到100的程序。程序如下:#includestdio.hmain(){ints,i;s=0;for(i=1;i=100;i++)s=s+i;printf(″sum=%d″,s);}练习求s=2+4+6+……+20练习求s=1+3+5+……+19for语句---使用要点1、for语句中的表达式1可以省略,但在for循环之前应给循环变量赋值.例如:i=1;for(;i=100;i++)sum=sum+i;2、表达式2也可以省略,但循环将陷入死循环.例如:for(i=1;;i++)sum=sum+i;3、表达式3也可以省略,但应在循环体中增加使循环变量值改变的语句.例如:for(sum=0,i=0;i=100;){sum=sum+i;i++;}4、表达式1和表达式3同时省略也允许,例如:i=1;sum=0;for(;i=100;){sum=sum+i;i++;}这是完全与while循环等同.5、三个表达式都可以省略,但“;”不能省略。for(;;)sum=sum+i;循环将无休止的执行下去6、表达式1中的表达式可以是循环变量的赋初值的表达式,也可是与赋初值根本无关的其他表达式,或者两者兼而有之.例如:for(sum=0,i=1;i=100;i++)sum=sum+i;表达式3也可以出现同样的情况,例如:for(sum=0,i=1;i=100;sum=sum+i,i++);7、表达式2一般清况下是关系表达式或逻辑表达式,也可以是其他表达式,例如:for(;(c=getchar())!=‘\n’;printf(“%c”,c));若输入:cauc输出为cauc,不是输出ccaauucc.C语言项目实训教程—项目三循环程序设计—打鱼还是晒网10程序编程提示例3-7求Fibonacci数列1,1,2,3,5,8……的前30个数F1=1F2=1Fn=Fn-1+Fn-22=1+13=1+25=2+38=3+5在一次循环中计算两项,递推公式为:F1=1F2=1(初值)F1=F1+F2F2=F2+F1#includestdio.hmain(){longintf1,f2;inti,nprintf(“Inputn:”);scanf(“%d”,&n);f1=f2=1;for(i=1;i=n;i++){printf(“%ld\t%ld\n”,f1,f2);f1=f1+f2;f2=f2+f1;}}例3-8求10个大于0小于100的数中的最大数和最小数置初值的方法一般有两种:1)极值法:取有界数据的上界作为最小值的初值,取有界数据的下界作为最大的初值2)成员法:取一批数据的第一个数作为最大值和最小值的初值。极值法main(){inta,i,max,min;max=0;min=100;for(i=1;i=10;i++){scanf(“%d”,&a);if(maxa)max=a;if(mina)min=a;}printf(“Max=%d,Min=%d\n”,max,min);}成员法main(){inta,i,max;scanf(%d,&max);/*输入其中的一个数作初始值*/for(i=1;i=9;i++)/*与剩下的9个数比较*/{scanf(%d,&a);if(maxa)max=a;}printf(Max=%d,max);}C语言项目实训教程—项目三循环程序设计—打鱼还是晒网11程序编程注意事项、流程图绘制练习:求10!练习求s=1+3+5+……+19练习s=1+2!+3!+4!+…+20!for语句的特点:1、使用了表达式2、循环控制变量可以在循环体内使用,也可以不使用,仅用来控制循环次数3、从正常出口离开循环时,循环控制变量会终值。任务四跳转语句学案【学习要求】1.了解continue、break、goto语句2.掌握continue、break语句和语法形式、执行顺序及用法【学习重点、难点】1.continue语句continue语句用于提前结束循环中的一轮循环。当程序执行到continue语句时,就跳过循环中后面还未执行的语句,回到循环的起始处,继续进行下一轮的循环。continue语句常与if语句联合起来使用,以便在满足一定条件时提前结束本轮循环。C语言项目实训教程—项目三循环程序设计—打鱼还是晒网12功能:结束本次循环,接着判定下一次是否执行循环。程序编程提示、注意事项例3-9对除5的倍数以外的1~100的数求和。练习:对除3的倍数以为的1~150的数求和。例3-10把100~200之间的不能被3整除的数输出.#includestdio.hvoidmain(void){intn;for(n=100;n=200;n++){if(n%3==0)continue;printf(“%d”,n);}}…s=0;for(i=1;i=100;i++){if(!(i%5))continue;s+=i;}printf(″SUM=%d\n″,s);…C语言项目实训教程—项目三循环程序设计—打鱼还是晒网132.break语句ISO/ANSIC++标准中规定的跳转语句有break语句、continue语retu

1 / 20
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功