C语言基础 五、循环

  • 格式:doc
  • 大小:166.00 KB
  • 文档页数:24

下载文档原格式

  / 24
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

五、循环结构程序设计

本章概述:

以笔试和上机两种形式考核。笔试中,多出现在选择题第20-23题。填空题第8、9题。分值约占12%。上机中,三种题型中均有体现,抽中几率约为37%。考生要熟练掌握。

大纲要求:

1.for循环结构。

2.while和do-while循环结构。

3.continue语句和break语句。

4.循环的嵌套。

重点难点:

1.for循环结构。

2.continue语句和break语句。

3.循环的嵌套。

考点分析:

while 语句

while 语句一般形式:

while (条件表达式)

{

循环体

}

while 语句执行过程:

先判断条件是否成立,只要条件成立则一直执行循环体语句,直到条件不成立则结束循环,结束while语句。

说明:

(1)while语句的特点是先判断,再执行。因此,若条件表达式的值一开始就为“假”,那么循环体一次也不执行。

(2)当循环体为多个语句组成,必须用{}括起来,形成复合语句。

(3)在循环体中应有使循环趋于结束的语句,以避免“死循环”的发生。

试题解析

1.要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是(A)

A)while((ch=getchar())!=′N′)printf("%c",ch);

B)while(ch=getchar()!=′N′)printf("%c",ch);

C)while(ch=getchar()==′N′)printf("%c",ch);

D)while((ch=getchar())==′N′)printf("%c",ch);

解析:while语句的功能是:计算表达式的值,如为真,则执行循环体语句,执行完毕后,再计算表达式的值,若仍为真,则重复执行循环体语句。直到表达式的值为假时,结束

循环。ch=getchar()应加一个括号,表示输入字符的函数。

2.利用while语句,计算1+1/2+1/4+…+1/50的值,并显示出来。

#include“stdio.h”

main()

{

float sum=1;

int i=2;

while (i<=50)

{

sum +=1/(float) i;

i+=2;

}

printf("sum=%f",sum);

}

运行结果:

sum=2.907979

解析:在此程序中,在循环体中进行累加计算时,必须要对变量i进行强制类型转换,即利用(float)i使其变为浮点型中间变量后再参加运算,否则,由于i中存放的是大于1的整型量,所以,1/i将按整型规则运算,其结果总是为0。

do-while 语句

do

{

循环体

}

while(条件表达式);

do-while语句执行过程:

先执行循环体,之后判断条件,条件为真,则重复执行循环体,再判断条件,直到条件为假为止,该do-while语句结束。

【特别提醒】:

(1)do是C语言的关键字,必须与While联合使用。do-while循环由do开始,用while 结束。注意:在while(表达式)后的“;”不可丢,它表示do-while语句的结束。

(2)do-while总是先执行一次循环体,再求表达式的值,因此,无论表达式的值是真或假,循环体至少要被执行一次。

(3)和while循环一样,在do-while循环体中,一定要有能使while后表达式的值变为0的操作,否则,循环将会无限制的进行下去。

do while、while 语句区别:

(1)do while:先执行,再判断,循环体至少执行一次。

(2)While:先判断,再执行,循环体至少执行0次。

试题解析

1.while和do-while循环的比较

main() main()

{ {

int sum=0,i; int sum=0,i;

scanf("%d",&i); scanf("%d",&i);

while(i<=10) do

{ {

sum=sum+i; sum=sum+i;

i++; i++;

} }while(i<=10);

printf("sum=%d\n",sum); printf("sum=%d\n",sum);

} }

解析:本例左半部分用while循环求i到10的连加和,i的值由用户输入。右半部分用do-while循环实现相同的功能。当输入i的值小于或等于10时,二者得到的结果相同。例如,当输入的i=1时,用while结构和do-while结构得到的结果是都是55;而当输入的i的值大于10时,二者得到的结果就不同了。例如,当输入的i=15时,用while结构得到的结果是0;而用do-while结构得到的结果是15。这是因为此时对while循环来说,一次也不执行循环体,而对do-while循环来说,则要执行一次循环体。由此可以得到结论:当while后面的表达式的第一次的值为“真”时,两种循环得到的结果相同。否则,两者结果

for 语句

for(变量初始化表达式;条件表达式;变量变化表达式)

{

循环体

}

// 变量初始化表达式一般用来设置变量的初始值.

//条件表达式是控制循环次数的,只有当条件成立时,循环才进行。

//变量变化表达式控制每次循环后变量的变化。

for 语句执行过程:

(1) 当进入for循环时,首先执行变量初始化表达式,接着就判断条件,如条件不成立,则循环一次也不会执行。

(2) 如条件成立,则执行循环的语句,循环语句可以是单个语句,也可以是复合语句。

(3) 变量变化表达式在循环体语句执行完成后执行,之后回到(2)。

说明:

(1)for语句一般形式中的“变量初始化表达式”可以省略,此时应在for语句之间前给循环变量赋初值。

(2)如果“条件表达式”省略,即不判断循环条件,循环将无终止地进行下去

(3)“变量变化表达式”也可以省略,但此时程序设计者应另外设法保证循环能正常结束。

【特别提醒】:

几种循环的比较

(1)一般来说,do与while循环常用于预先不确定循环次数的循环中,而for循环更适合用于预先确定循环次数的循环中。

//例如计算n个(或指定个数)数的平均成绩、阶乘等。。。

(2)For 语句的循环体至少执行0次,可改写为相应的 while 语句(注意不可改写为