C语言教案第5章.docVIP

  • 43
  • 0
  • 约1.42万字
  • 约 30页
  • 2016-08-10 发布于重庆
  • 举报
C语言教案第5章

复习 自增自减运算符和复合赋值表达式 新授 循环结构程序设计 5.1 循环语句概述 以求1~100的累计和为例。 根据已有的知识,可以用“1+2+……+100”来求解,但显然很繁琐。现在换个思路来考虑: 首先设置一个累计器sum,其初值为0,利用sum += n来计算(n依次取1、2、……、100),只要解决以下3个问题即可: (1)将n的初值置为1; (2)每执行1次“sum += n”后,n增1; (3)当n增到101时,停止计算。此时,sum的值就是1~100的累计和。 根据已有的知识,单独实现每一步都不难。但是,由于需要经常使用这种重复计算结构(称为循环结构),C语言提供了3条循环语句来实现,以简化、并规范循环结构程序设计。 在C语言中,可用以下语句实现循环: (1)用for语句。 (2)用do-while语句。 (3)用while语句。 (4)用goto语句和if语句构成循环。使用goto语句实现求解1~100累计和的程序可以如下: main() { int n=1, sum=0;  loop: sum += n; n++; if (n=100) goto loop; printf(“sum=%d\n”, sum); } 其中“loop:”为语句标号(格式:标号: 语句行),其命名遵循标识符命名规则。goto语句格式:goto 标号,功能为:使系统转向标号所在的语句行执行。 5.2 while 语句 一、while语句 (1)一般格式 while(循环继续条件)    { 循环体语句组;} (2)执行过程 执行过程如图5-2(P70)所示。 1)求解“循环继续条件”表达式。如果其值为非0,转2);否则转3)。 2)执行循环体语句组,然后转1)。 3)执行while语句的下一条。 显然,while循环是for循环的一种简化形式(缺省“变量赋初值”和“循环变量增值”表达式)。 [案例5.3] 用while语句求1~100的累计和。 /*案例代码文件名:AL5_3.C*/ /*程序功能:求1~100的累计和*/ main() { int i=1,sum=0; /*初始化循环控制变量i和累计器sum*/ while( i=100 ) { sum += i; /*实现累加*/ i++; /*循环控制变量i增1*/ } printf(“sum=%d\n”,sum); } 程序运行情况如下: sum=5050 自编程序:求∑n!(n=1~20) main() { int n=0; double t=1.0,sum=0.0; clrscr(); while(n20) { n++; t*=n; sum+=t; } printf(∑%d!= %e”,n,sum); } 5.3 直到型循环do-while语句 1.一般格式 do { 循环体语句组; } while(循环继续条件); /*本行的分号不能缺省*/ 当循环体语句组仅由一条语句构成时,可以不使用复合语句形式。 2.执行过程 执行过程如图5-3所示。 (1)执行循环体语句组。 (2)计算“循环继续条件”表达式。如果“循环继续条件”表达式的值为非 0(真),则转向(1)继续执行;否则,转向(3)。 (3)执行do-while的下一条语句。 do-while循环语句的特点是:先执行循环体语句组,然后再判断循环条件。 [案例5.4] 用do-while语句求解1~100的累计和。 /*案例代码文件名:AL5_4.C*/ /*程序功能:求1~100的累计和*/ main() { int i=1, sum=0; /*定义并初始化循环控制变量,以及累计器*/ do { sum += i; /*累加*/ i++; } while(i=100); /*循环继续条件:i=100*/ printf(“sum=%d\n”,sum); } do-while语句比较适用于处理:不论条件是否成立,先执行1次循环体语句组的情况。除此之外,do-while语句能实现的,for语句也能实现,而且更简洁。 例:求5! 循环 次数 fact*i i++ 1 1*1 2 2 1!*2 3 3 2!*3 4 4 3!*4 5 5 4!*5 6 #include stdio.h/*03.c*/ main() { int i, fact; i=1, fact=1; clrscr(); do

文档评论(0)

1亿VIP精品文档

相关文档