C语言程序设计教案 第六章 循环程序设计
第六章 循环程序设计
课题:第五章 选择结构程序设计教学目的:1、掌握三种循环语句的语法结构
2、灵活运用循环语句教学重点:
教学难点:三种循环语句while、do-while、for三种循环语句的区别步骤一 引入新课
问题1:假如全班41人,欲从键盘上输入每人的数学成绩,然后计算出平均成绩;
问题2: 编程计算n!。
重复执行一组语句是程序设计要求的基本功能之一。在C语言中可以用以下语句来实现循环:(1)if 和 goto (2)while (3)do-while (4)for
?
步骤二 讲授新课
一、goto语句及用goto构成循环
语法:goto label;
其中:label是语句标号,它命名的规则同变量名;
语义:使程序无条件地转向标号为label的语句去执行;
如:用if语句构成循环,求sum=1+2+…+100
main( )
{ int i=1,sum=0;
loop: if (i<=100)
{sum+=i; i++; goto loop;}
printf(“%d”, sum);
}
说明:
标号不必进行类型说明;
程序中的任何一个语句均可带上标号,但标号必须以冒号结束;
不提倡使用goto语句。
?
二、while语句
语法:while (exp) 循环体语句;
语义:当exp为真时,执行循环体;为假时,执行循环语句的后续语句;
如:用while语句构成循环,求sum=1+2+…+100
程序如下:main(){ int i=1, sum=0; while (i<=100) { sum+=i; i++; } printf(“%d”,sum);}
说明:
循环体可以用复合语句;
在while语句前应有为测试表达式(exp)中的循环控制变量赋初值的语句,以确保循环的正常开始;
循环体内应有改变循环控制变量的语句,以确保循环进行有限次后正常结束; 如:i=1; while (i<=100) sum=sum+1; (死循环)
while 循环的特点是先判断后执行,故循环有可能一次都不被执行; 如: i=3; while (i<3) printf(“i=%d\n”, i);
?
三、do-while语句
语法:do
循环体语句;
while (exp);
语义:当exp为真时,执行循环体;为假时,执行循环语句的后续语句;
如:用do-while语句构成循环,求 sum=1+2+…+100
程序如下:main(){ int i=1,sum=0; do { sum+=i; i++; } while (i<=100); printf(“%d”,sum);}
?
说明:
循环体可以用复合语句;
循环控制变量在执行do前必须赋初值;循环体内应有改变循环控制变量的语句;
do-while 循环的特点是先执行后判断,故循环至少被执行一次;
如:i=3; do { sum+= i; i++; } while (i>10);
例1:用公式求π的近似值,直到最后一项的绝对值小于10-6为止。
π/4≈1-1/3+1/5-1/7+……
?
# include main( ){ int s=1; float n=1.0, t=1, pi=0; while((fabs(t))>1e-6) { pi=pi+t; n+=2; s=-s; t=s/n; } pi=pi*4; printf(“pi=%10.6f\n”,pi);}
?
?
例2:求整数a和b的最小公倍数。
#include main( ){ int a,b, i; scanf(“%d%d”,&a,&b); i=0; while(1) { i++; if (i%a= =0) if (i%b= =0){printf(“%d\n”, i); break;} }}
思考:有一张足够大的纸,厚0.09毫米,问将它对折多少次后可以达到