第5章循环结构程序设计教学教材.docx
- 文档编号:13261571
- 上传时间:2023-06-12
- 格式:DOCX
- 页数:11
- 大小:18.83KB
第5章循环结构程序设计教学教材.docx
《第5章循环结构程序设计教学教材.docx》由会员分享,可在线阅读,更多相关《第5章循环结构程序设计教学教材.docx(11页珍藏版)》请在冰点文库上搜索。
第5章循环结构程序设计教学教材
第5章-循环结构程序设计
第五章循环结构程序设计
循环就是在程序执行过程中,反复多次的执行同一段程序。
一、C语言中有三种循环语句。
1.while循环语句
形式为:
while(表达式)
{
循环体
}
执行过程:
先计算表达式的值,当表达式的值非0时就执行循环体,之后再判断表达式的值,且重复以上过程;当表达式的值为0时就结束循环。
特点:
先执行语句,后判断表达式。
注意以下几点:
①while是关键字,要小写。
②while后面的循环条件和if后面的条件一样。
③对于任何循环,只要掌握两点内容:
一是循环条件是什么?
二是循环体是谁?
④若循环体只是一条语句,则一对花括号{}可以省略。
⑤如何结束循环,一般是两种方式:
一是正常结束(既不满足循环条件了)。
二是中途结束(用break语句)。
2.do--while循环语句
形式为:
do
{
循环体
}while(表达式);
执行过程:
先执行循环体一次,再判断表达式的值,当表达式的值非0时就再执行循环体,之后再判断表达式的值,且重复以上过程;当表达式的值为0时就结束循环。
特点:
先执行语句,后判断表达式。
注意以下几点:
①do和while是关键字,都要小写。
②循环至少执行一次。
③while()后面要有分号;
3.for循环语句
形式为:
for(表达式1;表达式2;表达式3)
{循环体}
执行过程:
先执行表达式1,然后判断表达式2是否为真?
,若为假则退出循环;若为真则执行循环,再执行表达式3,然后再去判断表达式2是否为真?
,若为真则继续执行循环体,再执行表达式3……,直到表达式2为假。
特点:
表达式1用于提供循环的初始值,表达式2提供了循环的条件,表达式3用于改变循环的条件。
若没有表达式2则会陷入死循环。
注意以下几点:
①三个表达式可有可无,但分号;必须有。
②三个表达式的含义如下:
表达式1:
一般是给变量赋值的。
表达式2:
是循环条件。
表达式3:
是变量的变化。
③重点弄明白循环条件是什么?
循环体是谁?
④如何结束循环,两种方式:
一是正常结束(既不满足循环条件了)。
二是中途结束(用break语句)。
二、三种循环语句的比较
三种循环语句可以完成同一件事,可任选其一。
使用while和do--while循环时,要提前给循环变量赋初值。
而for循环是在表达式1中赋初值的。
while循环和for循环都是先判断条件后执行循环体,有可能一次也不执行循环体,do--while循环是先执行循环体,后判断条件,即循环体至少也得执行一次。
for循环不限于计数循环,其循环条件可以是逻辑表达式和字符表达式等。
三、continue语句和break语句
5、break语句
形式为“break;”
break语句只能用于switch结构或循环结构,而且在循环语句嵌套使用的情况下,break语句只能跳出(或终止)它所在的循环,而不能同时跳出(或终止)多层循环。
6、continue语句
形式为:
“continue;”,
continue语句的功能是结束本次循环的执行,但不退出循环结构。
7、continue语句和break语句的比较
continue语句只结束本次循环,而不是终止整个循环的执行;而break语句则是结束循环,不再进行条件判断。
四、循环嵌套
三种循环控制语句可以互相嵌套,即在一个循环体内部又可以出现另一循环,这种嵌套在理论上来说可以是无限的。
注意必须是一个循环完整的套住另一个循环。
练习题
1.inta=1,x=1;循环语句while(a<10)x++;a++;的循环执行()。
A.无限次B.不确定次C.10次D.9次
2.下列语句中,错误的是()。
A.while(x=y)5;B.dox++while(x==10);
C.while(0);D.do2;while(a==b);
3.循环语句for(x=0,y=0;(y!
=123)||(x<4);x++);的循环执行()。
A.无限次B.不确定次C.4次D.3次
4.循环语句for(i=0,x=1;i=10&&x>0;i++);的循环执行()。
A.无限次B.不确定次C.10次D.9次
5.若i、j已定义为int类型,则以下程序段中内循环体的执行次数是()。
for(i=5;i;i--)
for(j=0;j<4;j++){………}
A.20B.24C.25D.30
6.inti=1,s=0;
while(i<100){s+=i++;if(i>100)break;}
执行以上程序段后,中放的是()。
A.1到101`的和B.1到100的和C.1到99的和D.以上都不是
7.假定a和b为int型变量,则执行以下语句后b的值为()。
a=1;b=10;
do{b-=a;a++;}
while(b--<0);
A.9B.-2C.-1D.8
8.设x和y均为int型变量,则执行下面的循环后,y的值为()。
for(y=1,x=1;y<=50;y++)
{if(x>=10)break;
if(x%2==1){x+=5;continue;}
x-=3;
}
A.2B.4C.6D.8
9.在C语言中,下列说法中正确的是()。
A.不能使用“do语句while(条件)”的循环
B.“do语句while(条件)”的循环必须使用“break”语句退出循环
C.“do语句while(条件)”的循环中,当条件为非0时将结束循环
D.“do语句while(条件)”的循环中,当条件为0时将结束循环
10.在C语言的语句中,用来决定分支流程的表达式是()。
A.可用任意表达式B.只能用逻辑表达式或关系表达式
C.只能用逻辑表达式D.只能用关系表达式
11.若有以下程序段,sum和i都是整型变量,则不能与该程序段等价的程序段是()。
┆A.for(i=2,sum=0;i<=10;i++)sum+=i;
sum=0;i=2;B.sum=0;i=2;
while(i<=10)do{sum=sum+i;i++;while(i<=10);
{sum=sum+i;C.sum=0;i=10;
i++;while(i>1){sum=sum+i;i--;}
}D.sum=0;i=11;
do{i--;sum=sum+i;}while(i>1)
11.C语言中while与do---while语句的主要区别是()
A.do---while的循环体至少无条件执行一次
B.do---while允许从外部转到循环体内
C.do---while的循环体不能是复合语句
D.while的循环控制条件比do---while的循环控制条件严格
12.以下程序段()
x=-1;
do
{x=x*x;}while(!
x);
A.是死循环B.循环执行两次C.循环执行一次D.有语法错误
13.以下的for循环
for(x=0,y=0;(y!
=123)&&(x<4);x++);
A.执行3次B.执行4次C.循环次数不定D.是无限循环
14.执行下面语句后,变量I的值是()。
for(I=1;I++<4;);
A.3B.4C.5D.不定
15.对for(表达式1;;表达式3)可理解为()
A.for(表达式1;0;表达式3)B.for(表达式1;1;表达式3)
C.for(表达式1;表达式1;表达式3)D.for(表达式1;表达式3;表达式3)
16.若i、j均为整型变量,则以下循环()
for(i=0,j=-1;j=1;i++,j++)
printf(“%d,%d\n“,i,j);
A.循环体只执行一次B.循环体一次也不执行
C.判断循环结束的条件不合法D.是无限循环
17.设j为int型变量,则下面for循环语句的执行结果是()
for(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf(“%d“,j);
}
A.63B.74C.62D.73
二、写出下列程序运行的结果。
1.下列程序运行后的输出结果是
#include
main()
{
inti,j;
for(i=4;i>=1;i--)
{
printf("*");
for(j=1;j<=4-i;j++)
printf("*");
printf("\n");
}
2.当运行以下程序时,从键盘键入right?
#include
main()
{charc;
while((c=getchar())!
=’?
’)putchar(++c)
}
3.下面的程序的运行结果是。
#include
main()
{inta,s,n,count;
a=2;s=0;n=1;count=1;
while(count<=7){n=n*a;s=s+n;++count}
printf(“s=%”,s);
}
4.下面程序段中循环体的执行次数是。
a=10;
b=0;
do{b+=2;a-+2+b;}while(a>=0);
5.面程序段的运行结果是。
x=2;
do{printf(“*”);x--;}while(!
x==0);
6.下面程序段的运行结果是。
i=1;a=0;s=1;
do{a=a+s*i;s=-s;i++;}while(i<=10);
printf(“a=%d”,a);
7.下面程序的运行结果是。
#include
main()
{inti,t,sum=0;
for(t=i=1;i<=10;)
{sum+=t;++i;
if(i%3==0)t=-i;
}
printf(“sum=%d”,sum);
}
8.下面程序的运行结果是。
#include
main()
{inti,k=0;
for(i=1;;i++)
{k++;
while(k
{k++;
if(k%3==0)gotoloop;
}
}
loop:
printf(“%d,%d,i,k”);
}
9.下面程序段的运行结果是。
i=1;s<3;
do{s+=i++;
if(s%7==0)continue;
else++i;
}while(s<15);
printf(“%d”,i);
四、程序填空题
1.下面的程序输出3到100之间的所有素数。
#tnclude<stdio.h>
main()
{inti,j;
for(i=3;i<=100;i++)
{for(j=2;j<=i-1;j++)
if(________)break;
if(________)
printf(“%4d”,i)
}
}
2.以下程序的功能是:
人键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入.请填空
.
main()
{
floatx,amax,amin;
scanf("%f",&x);
amax=x;amin=x;
while(_______)
{
if(x>amax)amax=x;
if(______)amin=x;
scanf("%f",&x);
}
printf("\namax=%f\namin=%f\n",amax,amin);
}
3.求:
1*2*3*…*10的积。
main()
{inti;
;
for(;i<101;i++)
sum*=i;
printf(“%d”,sum);
}
五、编程题
1.打印九九乘法表。
2.编程求:
2+4+6+8+……+100。
3.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 循环 结构 程序设计 教学 教材