好文档 - 专业文书写作范文服务资料分享网站

《C语言程序设计》教案第三章程序的控制结构—循环结构while和dowhile

天下 分享 时间: 加入收藏 我要投稿 点赞

《C语言程序设计》课程教案表

授课题目 第三章 程序的控制结构(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 算法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(\ 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

《C语言程序设计》教案第三章程序的控制结构—循环结构while和dowhile

《C语言程序设计》课程教案表授课题目第三章程序的控制结构(6)——循环结构while和do-while教学目的和要求1.掌握:while语句、do-while语句2.熟悉:三种循环语句教学内容1.基本内容:(1)while语句(2)do-while语句(3)for语句2.重点:三种循环语句讲课进程和时间分配1、问题引入:回顾if语句和for语句。(15
推荐度:
点击下载文档文档为doc格式
60zqm1r2ho2b61z97l7x8uhsm07tfq016wa
领取福利

微信扫码领取福利

微信扫码分享