2022年《C语言程序设计》教案第三章程序的控制结构循环结构while和dowhile.docx
名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学习必备 欢迎下载C 语言程序设计课程教案表授课题目while课时支配2 第三章程序的掌握结构 (6)循环结构授课时间和 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 语句又称 “当型 ”循环结构; 其特点是先判定表达式的值,然后执行循环体中的语句;假如表达式的值一开头为假(值为 摸索;如何求 1+2+3+4+ 100=.0),就直接执行循环体下面的语句;算法 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 存放上一步 第 1 页,共 7 页 的和;那么每一步都可以写成: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+=ii 依次取值为 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、循环掌握变量:能够打算掌握条件是真是假的量;如whilei< 100中的变量 i 要写出一个正确的循环结构,对掌握变量要做三方面的工作:1、对循环掌握变量赋初值;2、将循环掌握变量写入正确的掌握条件;3、对循环掌握变量值的更新;使用 while 语句需要留意以下几点 : while 语句的特点是先运算表达式的值,然后依据表达式的值打算是否执行循环体中的语句;因此,假如表达式的值一开头就为“假 ”,那么循环体一次也不执行;当循环体为多个语句组成,必需用 括起来,形成复合语句;在循环体中应有使循环趋于终止的语句,以防止“死循环 ” 的发生;以下情形,退出 while 循环条件表达式不成立(为零)细心整理归纳 精选学习资料 循环体内遇break,goto 第 2 页,共 7 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -无限循环 : while1 学习必备欢迎下载循环体 ; 例:分析程序的运行结果#include <stdio.h> main int i=1,sum=0; while i<=100 printf “ i=%d,sum=%dn ” ,i,sum += i; printf “ sum=%dn ”,sum; 结果:程序将不停的打印“i=1,sum=.;”无法正常终止的程序,称为“ 死循环 ”;结论:在 while 语句循环体中 ,肯定要有能够对循环 掌握条件产生影响的语句;防止显现“ 死循环” 现象;例 显示 110 的平方 #include <stdio.h> main int i=1; whilei<=10 printf"%d*%d=%dn",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; whilek=0 k=k-1; A while 循环执行 10 次 B 无限循环 C 循环体一次也不被执行 D 循环体被执行一次 下面程序的运行结果是 _;main int s=0,i=1; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 7 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学习必备 欢迎下载whiles<=10 s=s+i*i; i+; printf“%d” , 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; whilen+<=20; printf“%d”,n;A、20 B、21 C、22 D、23 定义 int a=10; 以下循环的输出结果是 _;whilea>7 a- ; printf“%d”,a;D 9 8 7 6 A 10 9 8 B 9 8 7 C 10 9 8 7 3、do while语句( 20 分钟)do while 语句的一般形式:格式:do 语句 while (表达式);功能 :先执行语句 ,后判定表达式的值;执行过程 :先执行一次指定的语句,然后判定表达式的值,当表达式的值为非零(“真” )时,返回重新执行该语句,如此反复,直到表达式的值等于 如图 5-3 所示;0 为止,此时循环终止;结构流程图细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学习必备 欢迎下载说明: 1)循环体假如包含一个以上的语句,应当用花括弧括起来,以复合语句形式显现;2)do while 语句与 while 语句都是循环语句,但有区分,do while 语句先执行一次循环体,然后再回去判定条件是否成立,比while 语句多执行一次;该语句用来实现“ 直到型 ”循环结构;例:运算 1+2+ +100=.main int i=1,sum=0; do sum=sum+i; i+; whilei<=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; doy-; while-y; printf“n”%d,y-; A-1 B 1 C 2 D 0 以下程序段的执行结果是main int a=1;b=10; do 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 7 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -学习必备 欢迎下载b-=a; a+; whileb-<0; printf“%d,%d,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 第 6 页,共 7 页 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -等;判定一个素数:数学习必备欢迎下载m 是素数;m 用 2m-1 除,如都除不尽,就程序代码 : main int m,n=0,i,k; form=1;m<=100;m=m+2 ifn%10= =0 printf"n"/*每行打印 10 个数 */ fori=2;i<m;i+ .ifm%i=0 break ; /*如有一个能除尽,终止内循环*/ .ifi>=m /* 如是素数应i>=m */ . printf"%5d",m; .n+; . 争论、摸索题、作业:试验指导书习题参考资料(含参考书、文献等):叶斌 陈世强 . C 语言程序设计 . 北京:科学出版社授课类型:理论课争论课试验课练习课其他 第 7 页,共 7 页 教学方式:传统授课双语争论示教指导其他教学资源:多媒体模型实物挂图音像其他细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - - - - - - - - - -