10《C语言程序设计》教案第三章程序的控制结构(6)—循环结构while和dowhile10《C语言程序设计》教案第三章程序的控制结构(6)—循环结构while和dowhile
《C语言程序设计》课程教案表
授课题目 2 课时安排
第三章 程序的控制结构(6)——循环结构while 授课时间 和do-while
教学目的和要求
1(掌握:while语句、do-while语句
2(熟悉:三种循环语句
教学内容
1(基本内容:(1)while语句(2)do-while语句(3)for语句
2(重点:三种循环语句
讲课进程和时间分配
1、问题引入:回顾if语句和for语句。(15分钟)
2、wh...
10《C语言程序设计》
第三章程序的控制结构(6)—循环结构while和dowhile
《C语言程序设计》课程教案表
授课题目 2 课时安排
第三章 程序的控制结构(6)——循环结构while 授课时间 和do-while
教学目的和要求
1(掌握:while语句、do-while语句
2(熟悉:三种循环语句
教学内容
1(基本内容:(1)while语句(2)do-while语句(3)for语句
2(重点:三种循环语句
讲课进程和时间分配
1、问题引入:回顾if语句和for语句。(15分钟)
2、while语句(35分钟)
(1)while 语句 循环条件 • 格式:while (条件表达式)
语句序列; 循环体
执行过程:
先计算while后面的表达式的值,如果其值为“真”则执行循环体,在执行完循环体后,再次计算while后面的表达式的值,如果其值为“真”则继续执行循环体,如果表达式的值为假,退出此循环结构。
说明:1)循环体可以是一条简单的语句,也可以由多个语句组成。若是2个语句以上必须用{ }括起来,形成复合语句。
2)在循环体中应有使循环趋向于结束的语句,即设置改变循环条件的语句。
3)while语句又称“当型”循环结构。其特点是先判断表达式的值,然后执行循环体中
的语句。如果表达式的值一开始为假(值为0),则直接执行循环体下面的语句。 思考;如何求 1+2+3+4+……100=?
算法1:直接写出算式(用变量sum存放和)
sum=1+2+3+4+5+…+100
考虑:1+2+3+…+100可以改写为:(((1+2)+3)+…+100),
sum=0;
sum=sum+1;
sum=sum+2;
sum=sum+3;
…
sum=sum+100;
规律:每一步都是两个数相加,加数总是对上一步加数增加1后参与本次加法运算,被加数总是上一步加法运算的和。可以考虑用一个变量i存放加数,一个变量sum存放上一步的和。那么每一步都可以写成:sum+i
根据规律上述式子可以改成:
sum=sum+i, i=i+1
sum=sum+i, i=i+1
sum=sum+i, i=i+1
规律:若i小于或等于100重复执行该算式
算法2:
分析:设想用sum作为累加器,初值为0,利用sum+=i(i依次取值为1、2。。100)
此分析需要解决的3个问题:
1) sum=0,i=1;
2)每执行一次 sum+=i 后,i增1( i=i+1);
3) 判断如果i小于或等于100,重新执行步骤(2),否则停止计算 main()
,
int i,s=0;
i=1;
while(i<=100) /*i<=100为循环条件*/
,
s=s+i;
i++; /*改变i的值*/
,
printf(″s=%d″,s);
,
运行结果:s=5050
说明:循环结构的三个术语:
1、循环条件:循环结构中的条件表达式如while (i<=100)其中,i<100就是循环条件。 2、循环体:在每个循环周期均要执行一次的语句序列。如while下用{ }括起来的语句序列。 3、循环控制变量:能够决定控制条件是真是假的量。如while(i<,100)中的变量i 要写出一个正确的循环结构,对控制变量要做三方面的工作:
1、对循环控制变量赋初值。2、将循环控制变量写入正确的控制条件。3、对循环控制变量值的更新。
使用while语句需要注意以下几点:
while语句的特点是先计算表达式的值,然后根据表达式的值决定是否执行循环体中的
语句。因此,如果表达式的值一开始就为“假”,那么循环体一次也不执行。
当循环体为多个语句组成,必须用{}括起来,形成复合语句。
在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。
下列情况,退出while循环
条件表达式不成立(为零)
循环体内遇break,goto
无限循环: while(1)
循环体;
例:分析程序的运行结果
#include
main ( )
{ int i=1,sum=0;
while ( i<=100 )
printf(“i=%d,sum=%d\n”,i,sum += i);
printf(“sum=%d\n”,sum); }
结果:程序将不停的打印“i=1,sum=...”。
无法正常终止的程序,称为“死循环”。
结论:在while语句循环体中,一定要有能够对循环
控制条件产生影响的语句。避免出现“死循环”现象。
例 显示1,10的平方
#include
main()
{ int i=1;
while(i<=10)
{ printf("%d*%d=%d\n",i,i,i*i);
i++;
}
}
运行结果:
1*1=1
2*2=4
3*3=9
4*4=16
5*5=25
6*6=36
7*7=49
8*8=64
9*9=81
10*10=100
练习:
对下列程序段叙述正确的是[ ]。
int k=0;
while(k=0) k=k-1;
A) while循环执行10次 B) 无限循环
C) 循环体一次也不被执行
D) 循环体被执行一次
下面程序的运行结果是_______________。
main()
{ int s=0,i=1;
while(s<=10)
{s=s+i*i;
i++;
}
printf(“%d”,--i);
}
A) 4 B) 3 C) 5 D) 6
对以下程序段,描述正确的是________________。
int x=0,s=0;
while(!x!=0) s+=++x;
printf(“%d”,s);
A) 运行程序段后输出0 B) 运行程序段后输出1 C) 程序段中的控制表达式是非法的 D) 程序段循环无数次
下面程序段的运行结果是[ ]。
int n=0;
while(n++<=20);
printf(“%d”,n);
A、20 B、21 C、22 D、23
定义int a=10;下列循环的输出结果是_______________。
while(a>7)
{a--; printf(“%d”,a);}
A) 10 9 8 B) 9 8 7 C) 10 9 8 7 D) 9 8 7 6
3、do …while语句(20分钟)
do while语句的一般形式:
格式: do
{
〈语句〉
}
while(表达式);
功能:先执行〈语句〉,后判断表达式的值。 执行过程:先执行一次指定的语句,然后判断表达式的值,当表达式的值为非零(“真”)时,
返回重新执行该语句,如此反复,直到表达式的值等于0为止,此时循环结束。结构图
如图5-3所示。
说明:1)循环体如果包含一个以上的语句,应该用花括弧括起来,以复合语句形式出现;
2)do while语句与while语句都是循环语句,但有区别,do while语句先执行一次循
环体,然后再回去判断条件是否成立,比while语句多执行一次。该语句用来实现“直到型”
循环结构。
例:计算1+2+…+100=?
main()
{
int i=1,sum=0;
do
{
sum=sum+i;
i++;
}while(i<=100);
printf(“the sum is:%d”,sum);
}
例:求正整数5的阶乘 (即求5!) 。
main()
{
float fact=1.0;
int i=1;
do
{
fact=fact*i;
i++;
} while( i<=5)
printf(“the 5 ! is :%f”, fact);
}
说明:do-while循环,总是先执行一次循环体,然后再求表达式的值,因此,无论表达
式是否为“真”,循环体至少执行一次。
do-while循环与while循环十分相似,它们的主要区别是:while循环先判断循环条件再
执行循环体,循环体可能一次也不执行。do-while循环先执行循环体,再判断循环条件,循
环体至少执行一次。
其它:复合语句{},避免死循环要求同while循环。 练习:以下程序段的执行结果是( )
main()
{ int y=4;
do{y--;} while(--y);
printf(“%d\n”,y--);
}
A)-1 B) 1 C) 2 D) 0 以下程序段的执行结果是( )
main()
{int a=1;b=10;
do
{b-=a; a++;} while(b--<0);
printf(“%d,%d\n”,a,b);
}
A) 3,11 B) 2,8 C) 1,-1 D) 4,9
以下说法正确的是( )
x=1;
do
{x=x*x;}
while(!x);
A)无限循环 B) 循环执行两次 C) 循环执行一次 D) 有语法错误
4、总结(10分钟)
学过的三种循环语句
• 循环结构的基本组成部分(小结)
• 循环变量、条件(状态)的初始化
• 循环变量、条件(状态)检查,以确认是否进行循环
• 循环变量、条件(状态)的修改,使循环趋于结束(循环体中)
• 循环体处理的其它工作。
2、三种循环的比较
• 循环变量初始化:while和do-while循环,循环变量初始化应该在while和do-while
语句之前完成;而for循环,循环变量的初始化可以在表达式1中完成。
• 循环条件:while和do-while循环只在while后面指定循环条件;而for循环可以在
表达式2中指定。
• 循环变量修改使循环趋向结束:while和do-while循环要在循环体内包含使循环趋于
结束的操作;for循环可以在表达式3中完成。
• for循环可以省略循环体,将部分操作放到表达式2,表达式3中,for语句功能强大。
• while和for循环先测试表达式,后执行循环体,而do-while是先执行循环体,再判
断表达式。(所以while,for循环是典型的当型循环,而do-while循环可以看作是直
到型循环)。
• 三种基本循环结构一般可以相互替代,不能说哪种更加优越。具体使用哪一种结构
依赖于程序的可读性和程序设计者个人程序设计的风格(偏好)
• 对计数型的循环或确切知道循环次数的循环,用for比较合适,对其它不确定循环
次数的循环,许多程序设计者喜好用while/do-while循环
5、多重循环(10分钟)
• 一个循环结构程序的循环体包含另一个循环。
形如: while( ) for( ) while( ) { { { for( ) for( ) while() { { { } } } } } } 例5.12】求出1---100间的全部素数。
提示:? 素数(质数)是除了1和它本身以外,不能够被其它数除尽的数,例3,5,7,11……
等; ?判断一个素数:数m 用2,m-1除,若都除不尽,则m是素数。 程序代码:
main()
{ int m,n=0,i,k;
for(m=1;m<=100;m=m+2)
{ if(n%10= =0) printf("\n");/*每行打印10个数 */
for(i=2;i=m) /*若是素数应i>=m */
• { printf("%5d",m);
• n++;
• }
}
}
讨论、思考题、作业:
实验指导书习题
参考资料(含参考书、文献等):
叶斌 陈世强. C语言程序设计. 北京:科学出版社
授课类型:理论课, 讨论课? 实验课? 练习课? 其他? 教学方式:传统授课, 双语? 讨论? 示教? 指导? 其他? 教学资源:多媒体, 模型? 实物? 挂图? 音像? 其他?
本文档为【10《C语言程序设计》教案第三章程序的控制结构(6)—循环结构while和dowhile】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。