C语言 第五章 循环结构总结

更新时间:2024-04-08 23:34:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第五章 循环结构总结

基本知识点:

C语言中三种可以构成循环结构的循环语句:while 、do-while 、和for

循环体的结构要素:1. 循环的初始条件 2. 循环的控制条件3. 循环的终止条件 4. 循环体 ※while循环的执行过程 : 先计算表达式的值,当表达式为非0值时,执行循环体,否则执行循环语句的下一语句。即“先判断,后执行”。

例 编程求12+22+32+?+n2,直到累加和大于等于10000为止。 #include main() { int i,sum=0; i=1; while (sum<10000) { sum+=i*i; i++; } printf(“n=%d,sum=%d\\n”,i-1,sum); } 运行结果为: n=31,sum=10416

※do-while循环的一般形式 do 循环体 while (表达式); 其特点是:先执行循环体,后判断表达式。

说明:1、表达式可以是C语言中任意合法的表达式,但不能为空; 2、循环体可以是一个语句,也可以是复合语句。

100例 用do-while循环求

?nn?1

#include void main() { int i,sum=0; i=1; do { sum=sum+1; i++; } while (i<=100); printf(“%d\\n”,sum); }

For循环的一般形式 for(表达式1;表达式2;表达式3)语句 它的执行过程为: 1、先求解表达式1; 2、求解表达式2,若其值为真,则执行for语句中指定的内嵌语句(循环体),然后执行第3步。若为假,则结束循环,转到第5步。 3、若表达式为真,在执行指定语句后,求解表达式3。 4、转回到上面第2步继续执行。 5、退出循环,执行for语句的下一语句。

1 第五章 循环结构总结

例 编写程序,找出2~100以内的所有素数。 #include void main() { int k,i,tag; for (i=2;i<=100;i++) { tag=0; for (k=2;k

应用

1、以下四个关于C语言的结论中,只有一个是错误的,它是 ( )。 [A]可以用while语句实现的循环,一定可以用for语句实现 [B]可以用for语句实现的循环,一定可以用while语句实现

[C]可以用do-while语句实现的循环,一定可以用while语句实现

[D] do-while语句与while语句的区别仅是关键字“while”出现的位置不同

解析:本题考查的是循环问题。C语言中三种循环结构可以互相转换,因此前三个选项均正确,do-while语句与while语句的区别在于do-while语句至少执行一次循环体,而while语句可能一次也不执行循环体。因此,正确答案为[B]。 2、在while(x)中的x与下面条件表达式等价的是( )。 [A] x==0 [B] x==1 [C] x!=1 [D] x!=0

解析:本题考查的是while循环问题。while(x)中的条件x表示x的值为0时,条件不成立,x的值为非0时,条件成立。因此,正确答案为[D]。 3、执行语句for (i=10; i-->3;);后,变量i的值为( )。 [A]2 [B]3 [C]4 [D]5

解析:本题考查的是for循环问题。注意for语句的执行过程,本题循环条件为i-->3,i的值不断减小,当i=4时,i--的值为4,条件成立执行循环体,i=3,i--的值为3,i的值为2,条件不成立不执行循环体。因此,正确答案为[A]。 4、以下不构成无限循环的语句或者语句组是( )。(全国计算机二级考试题2008年4月)[A]n=0; [B]n=0;

do{++n;}while(n<=0); while(1){n++;}

[C]n=10; [D] for(n=0,i=1; ;i++) n+=i; while(n); {n--;}

解析:本题考查的是循环结构问题。选项B中循环条件为1(真),是死循环。选项C中循环条件为n,n的值为10(真),是死循环。选项D中无循环条件,是死循环。选项A中n的值为0,执行do循环后n的值为1,不满足循环条件n<=0。因此,正确答案为[A]。 5、若int a=5;则执行以下语句后打印的结果为( )。 do{

printf(“-\\n”, a--); } while (!a);

[A] 5 [B] 不打印任何内空 [C] 4 [D] 陷入死限环

解析:本题考查的是do-while循环结构问题。对于do-while循环来说,无论循环条件成立

2 第五章 循环结构总结

与否,至少招待一次循环体,因此先输出a--的值,即5,然后a的值变为4,判断条件!a结果为假条件不成立结束循环。因此,正确答案为[A]。 6、有以下程序 #include < stdio.h > void main() {

int y=10;

while(y--); printf(\}

程序执行后的输出结果是( )。(全国计算机二级考试题2006年4月) [A] y=0 [B] y=-1 [C] y=1 [D] while构成无限循环

解析:本题考查的是while循环问题。本题关键在于搞清楚while循环的循环体是一条空语句;,因此不断执行y--,最终y的值变为0时,执行条件y--,循环条件不成立,结束循环,y的值为-1。因此,正确答案为[B]。 7、有以下程序 #include < stdio.h > void main() {

int i,j;

for(i=1;i<4;i++) {

for(j=i;j<4;j++)

printf(“%d*%d=%d “,i,j,i*j); printf(“\\n”); } }

程序运行后的输出结果是 ( )。(全国计算机二级考试题2007年4月) [A]1*1=1 1*2=2 1*3=3 [B] 1*1=1 1*2=2 1*3=3

2*1=2 2*2=4 2*2=4 2*3=6 3*1=3 3*3=9 [C] 1*1=1 [D] 1*1=1

1*2=2 2*2=4 2*1=2 2*2=4

1*3=3 2*3=6 3*3=9 3*1=3 3*2=6 3*3=9

解析:本题考查的是for循环的嵌套问题。对于此类图形题,外层循环用来控制行,内层循环用来控制列。本题外层循环循环变量i由1变到3共执行3次循环,即输出3行,内层循环循环变量j由i变到3,即第1行输出3列,第2行输出2列,第3行输出1列,每次输出i*j的值。因此,正确答案为[B]。

8、编程求1+1/3+1/5+…+1/51的值,并显示出来。

解析:本题为多数求和运算,注意控制循环次数为25次。 #include\void main() {

int i;

float sum=0,t=1; /*定义变量并赋初值*/

3 第五章 循环结构总结

for(i=1;i<=25;i++) /*控制循环次数共25次*/ {

sum+=t; /*求和*/

t=1.0/(2*t+1); /*构造下一个数据项*/ }

printf(\ /*输出结果*/ }

9、显示如下图形 * * * * * * * * * * * * * * *

解析:本题为典型的图形题,可能过双层for循环实现,外层循环控制行数,内层循环控制列数(*的个数)。 #include\void main() {

int i,j; /*定义变量*/

for(i=1;i<=5;i++) /*外层循环控制输出5行*/ {

for(j=1;j<=i;j++) /*内层循环控制输出列数*/ printf(\

printf(\ /*换行*/ } }

4

本文来源:https://www.bwwdw.com/article/uhgr.html

Top