计算机二级C语言循环结构.docx

上传人:b****6 文档编号:9054169 上传时间:2023-02-03 格式:DOCX 页数:12 大小:20.32KB
下载 相关 举报
计算机二级C语言循环结构.docx_第1页
第1页 / 共12页
计算机二级C语言循环结构.docx_第2页
第2页 / 共12页
计算机二级C语言循环结构.docx_第3页
第3页 / 共12页
计算机二级C语言循环结构.docx_第4页
第4页 / 共12页
计算机二级C语言循环结构.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

计算机二级C语言循环结构.docx

《计算机二级C语言循环结构.docx》由会员分享,可在线阅读,更多相关《计算机二级C语言循环结构.docx(12页珍藏版)》请在冰豆网上搜索。

计算机二级C语言循环结构.docx

计算机二级C语言循环结构

第五章循环结构

引言:

循环结构用于在给定条件成立时,反复执行某个语句组,反复执行的语句组称为循环体。

循环体可以是复合语句,也可是单一的语句或空语句。

1.while语句

(1)一般形式:

while(表达式)

循环体

intk=0;

while(k<10)

{printf(“*”);

k++;

}

printf(“end”);

while是关键字;

while后圆括号中的表达式可以是c语言中任意合法的表达式,但它不可以为空。

它用来判断是否执行循环体;

循环体在语法上认为是一条语句,若有多条则应用复合语句。

(2)执行过程:

表达式为真进入循环,表达式为假退出循环。

intk=0;

while(k<10)

{printf(“*”);

k++;

}

printf(“end”);

0<10*1

1<10*2

……..

9<10*10

10<10假

end

(3)表达式为循环控制条件。

结束循环:

改变条件表达式的值,使其最终为假

条件恒真,强行退出

intk=0;

while(k<10)

{printf(“*”);

k++;

}

printf(“end”);

intk=0,n=0;

while(k<10)

{printf(“*”);

n++;

if(n>=10)break;

}

printf(“end”);

0<10*1jia

0<10*2jia

………

0<10*9jia

0<10*10break

end

(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

#include

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语句

(1)一般形式:

do

循环体

while(表达式);

printf(“end”);

intk=0;

do

{printf(“*”);

k++;

}while(k<10);

printf(“end”);

注:

do---while联合使用;

do---while整体作为一条语句,故后面的分号不可少;

while后圆括号中的表达式为c语言中一个任意合法的表达式,它决定了是否执行循环体;

循环体语法上认为是一条语句,若有多条则应用复合语句。

(2)执行过程:

先执行后判断

intk=0;

do

{printf(“*”);

k++;

}while(k<10);

printf(“end”);

*11<10

*22<10

*33<10

……..

*99<10

*1010<10jia

end

(3)程序举例:

数列递推思想:

计算数列,直到某项大于1000为止,并输出该项的值。

f0=0,f1=1,f2=1,f3=2,f4=3,…..fn=fn-2+fn-1.

 

3.for语句

(1)一般形式:

for(表1;表2;表3)

循环体

intk;

for(k=0;k<10;k++)

printf(“*”);

printf(“end”);

注:

for是关键字;

圆括号中通常为3个表达式,之间用分号隔开;(表达式1给变量赋初值,表达式2为循环条件,由它的值真假决定是否执行循环体;表达式3用于循环一次后对某些变量的值进行改变。

三个表达式可省略1个或多个,表达式1和3还可是一个逗号表达式;

循环体语法上为一条语句。

(2)执行过程:

for(表1;表2;表3)

循环体

for(k=0;k<10;k++)

printf(“*”);

printf(“end”);

k=00<10*1

1<10*2

2<10*3

……..

9<10*10

10<10jia

end

intk=0;

while(k<10)

{printf("*");

k++;

}

printf("end");

intk=0;

do

{printf("*");

k++;

}

while(k<10);

printf("end");

for(k=0;k<10;k++)

printf(“*”);

printf(“end”);

(3)一般形式的变形及其注意的地方

3个表达式可省略1个或多个,但分号不可省。

表1和表3还可是逗号表达式

intk=0;

for(;;)

{printf(“*”);k++;

if(k>=10)break;

}

printf(“end”);

*1ifjia

*2ifjia

……

*10ifzhenbeak

end

intk;

for(k=0;k<10;printf(“*”),k++);

printf(“end”);

k=00<10kong*1

1<10kong*2

……

9<10kong*10

10<10jia

end

循环体可是空语句或复合语句

intsum=0,i;

for(i=1;i<=10;sum=sum+i,i++);

intsum=0,i;

for(i=1;i<=10;i++)

{sum=sum+i;

printf(“*”);

}

 

(4)程序举例:

编写程序,求1+2+..+100

sum=sum+i;

i++;

编写程序,求1-3+5-7+…..-99+101

sum=sum+i*s

i=i+2

编写程序,求xn25

编写程序,求x!

5!

编写程序,输入一个数判断其是否为素数。

#include

main()

{intx,i,flag=0;

scanf("%d",&x);

for(i=2;i

if(x%i==0){flag=1;break;}

if(flag==0)printf("素数");

elseprintf("非素数");

}

main()

{intx,i;

for(i=2;i

if(x%i==0)

{printf("非素数");break;}

if(i>=x)printf("素数");

}

4.循环嵌套

概念:

在一个循环体内又完整的包含了另外一个循环。

for(i=1;i<=5;i++)

for(j=1;j<=3;j++)

printf(“*”);

printf(“end”);

i=11<=51<=3*

2<=3*

3<=3*

4<=3jia

2<=51<=3*

2<=3*

3<=3*

4<=3jia

3<=5……

4<=5

5<=5

6<=6jia

执行过程:

当内层的循环结束后才可以到外层的下一次循环。

举例:

编写程序输出如下图形

*

***

*****

行for(i=1;i<=3;i++)

每一行空格for(k=1;k<=3-I;k++)

printf(““);

星号for(j=1;j<=i;j++)

printf(*”);

#include

main()

{inti,j;

for(i=1;i<=3;i++)

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

printf(“*”);

printf(“\n”);

}

}

编写程序找出2~~100以内所有素数。

外层:

范围for(i=2;i<=100;i++)

里层:

for(j=2;j

…………

#include

main()

{inti,j,flag,n=0;

for(i=2;i<=100;i++)

{flag=0;

for(j=2;j

if(i%j==0){flag=1;break;}

if(flag==0){printf(“%d”,i);n++;}

if(n%5==0)printf(“\n”);

}

}

2345

 

5.break语句和continue语句

for(…..)

{for(..){语句;break;}

break;

语句;

}

break跳出它所在的循环体或switch语句体

continue结束本次循环中尚未执行的语句

#include

main()

{intk=0,s=0,i;

for(i=1;i<=5;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);

}

}

i=11<=5s==1

jia

k==1

111

2<=5s==3

Jia

K=4

234

3<=5s==6

***364continue

4<=5s==10

***4104continue

5<=5s==15

***5154continue

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 经济学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1