计算机二级C语言循环结构文档格式.docx
《计算机二级C语言循环结构文档格式.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言循环结构文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
9<
10*10
10<
10假
end
(3)表达式为循环控制条件。
结束循环:
改变条件表达式的值,使其最终为假
条件恒真,强行退出
intk=0,n=0;
n++;
if(n>
=10)break;
10*1jia
10*2jia
………
10*9jia
10*10break
(4)程序举例:
累加思想:
编写程序,求12+22+..+n2
直到累加和大于或等于10000为止。
1
2
3
….
i++i*i
用∏/4=1-
+
-
+…..公式求∏的近似值,直到最后一项的绝对值小于10-6为止。
11/1
1/31/(1+2)
1/51/(3+2)
fm=fm+2
t=1/fm
s=1s=-s
#include<
stdio.h>
math.h>
main()
{doublesum=0,fm=1,pi,t=1;
ints=1;
while(fabs(t)>
=1e-6)
{sum=sum+t*s;
fm=fm+2;
t=1.0/fm;
s=-s;
}
pi=4*sum;
printf(“%f\n”,pi);
1>
=1e-60+1*131.0/3-1
1/3>
=1e-61+1/3*-151.0/51
1/5>
=1e-6….+1/571.0/7-1
…….
迭代思想:
用迭代法求方程x=cosx的根,要求误差小于10-6.
2.do—while语句
do
循环体
while(表达式);
{printf(“*”);
k++;
}while(k<
10);
注:
do---while联合使用;
do---while整体作为一条语句,故后面的分号不可少;
while后圆括号中的表达式为c语言中一个任意合法的表达式,它决定了是否执行循环体;
循环体语法上认为是一条语句,若有多条则应用复合语句。
先执行后判断
}while(k<
10);
*11<
10
*22<
*33<
*99<
*1010<
10jia
(3)程序举例:
数列递推思想:
计算数列,直到某项大于1000为止,并输出该项的值。
f0=0,f1=1,f2=1,f3=2,f4=3,…..fn=fn-2+fn-1.
3.for语句
for(表1;
表2;
表3)
intk;
for(k=0;
k<
10;
k++)
printf(“*”);
printf(“end”);
for是关键字;
圆括号中通常为3个表达式,之间用分号隔开;
(表达式1给变量赋初值,表达式2为循环条件,由它的值真假决定是否执行循环体;
表达式3用于循环一次后对某些变量的值进行改变。
三个表达式可省略1个或多个,表达式1和3还可是一个逗号表达式;
循环体语法上为一条语句。
for(表1;
for(k=0;
printf(“*”);
k=00<
1<
2<
10*3
9<
{printf("
*"
);
printf("
end"
(3)一般形式的变形及其注意的地方
3个表达式可省略1个或多个,但分号不可省。
表1和表3还可是逗号表达式
intk=0;
for(;
;
)
if(k>
*1ifjia
*2ifjia
……
*10ifzhenbeak
intk;
printf(“*”),k++);
10kong*1
10kong*2
……
10kong*10
10<
end
循环体可是空语句或复合语句
intsum=0,i;
for(i=1;
i<
=10;
sum=sum+i,i++);
i++)
{sum=sum+i;
编写程序,求1+2+..+100
sum=sum+i;
i++;
编写程序,求1-3+5-7+…..-99+101
sum=sum+i*s
i=i+2
编写程序,求xn25
编写程序,求x!
5!
编写程序,输入一个数判断其是否为素数。
{intx,i,flag=0;
scanf("
%d"
&
x);
for(i=2;
x;
i++)
if(x%i==0){flag=1;
break;
if(flag==0)printf("
素数"
elseprintf("
非素数"
{intx,i;
if(x%i==0)
{printf("
if(i>
=x)printf("
4.循环嵌套
概念:
在一个循环体内又完整的包含了另外一个循环。
=5;
for(j=1;
j<
=3;
j++)
i=11<
=51<
=3*
=3*
3<
4<
=3jia
=5……
=5
5<
6<
=6jia
执行过程:
当内层的循环结束后才可以到外层的下一次循环。
举例:
编写程序输出如下图形
*
***
*****
行for(i=1;
每一行空格for(k=1;
=3-I;
printf(““);
星号for(j=1;
=i;
printf(*”);
{inti,j;
for(i=1;
{for(j=1;
printf(“\n”);
编写程序找出2~~100以内所有素数。
外层:
范围for(i=2;
=100;
里层:
for(j=2;
i;
…………
#include<
{inti,j,flag,n=0;
{flag=0;
for(j=2;
if(i%j==0){flag=1;
if(flag==0){printf(“%d”,i);
n++;
if(n%5==0)printf(“\n”);
2345
5.break语句和continue语句
for(…..)
{for(..){语句;
break;
语句;
break跳出它所在的循环体或switch语句体
continue结束本次循环中尚未执行的语句
Stdio.h>
{intk=0,s=0,i;
{s=s+i;
if(s>
5)
{printf(“**%d%d%d\n”,i,s,k);
continue;
k=k+s;
printf(“%d%d%d\n”,i,s,k);
=5s==1
jia
k==1
111
=5s==3
Jia
K=4
234
=5s==6
***364continue
=5s==10
***4104continue
=5s==15
***5154continue