预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共30页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

上机习题1*1=11*2=22*2=41*3=32*3=63*3=91*4=42*4=83*4=124*4=16……1*8=82*8=163*8=24……8*8=641*9=92*9=183*9=27……8*9=729*9=81第6章练习:CH6FACT:求出一个给定整数的所有因子,形式为72=2*2*2*3*3。CH6EX8第6章循环控制for语句例1求1+1/2+1/3+…+1/10程序如下:#include"stdio.h"voidmain(){inti;/*计数器*/floatsum=0;/*累加器*/for(i=1;i<=10;i++)sum=sum+1./i;printf("sum=%f\n",sum);}例2求n!,n从终端输入。voidmain(){intn,i;longfactorial=1;printf("Inputaninteger(<13):");scanf("%d",&n);for(i=1;i<=n;i++)factorial*=i;/*乘法器*/printf("%d!=%ld\n",n,factorial);}例3求1!+2!+3!+…+20!#include"stdio.h"voidmain(){inti;floats=0.,t=1.;for(i=1;i<=20;i++){t*=i;s+=t;}printf("1!+2!+3!+…+20!=%-20.0f\n",s);}例4求和:1-1/2+1/3-1/4+……-1/100voidmain(){floatsum,t;ints=1,i;/*s为正负1*/for(i=1,sum=0;i<=100;i++){t=s*1./i;sum+=t;s=-s;}printf("sum=%f\n",sum);}例6.7求Fibonacci序列前n个数1,1,2,3,5,8,13,21……其规律为:fib1=fib2=1fibn=fibn-1+fibn-2用循环移位算法,其循环体为:fib1fib2fib3fib3=fib1+fib2;1+1→2fib1=fib2;1+2→3fib2=fib3;2+3→5程序见下页:voidmain(){intn,i;longfib1=1,fib2=1,fib3;scanf("%d",&n);for(i=1;i<=n;i++){printf("%12ld",fib1);if(i%4==0)putchar('\n');fib3=fib1+fib2;fib1=fib2;fib2=fib3;}}例6.8验证整数m是否为素数算法如下:1.输入m;2.k=√m3.fori:2~k做若i能整除m则3.1结束循环;4.若i>k则输出m是素数;否则输出m不是素数;#include"math.h"voidmain(){inti,m,k;scanf("%d",&m);k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf("%disaprime.\n",m);elseprintf("%disnotaprime.\n",m);}continue及break的使用例5输入10个正整数(非正整数重输)求和voidmain(){inta,i=0,s=0;for(;;)/*用for(i=s=0;;)更合理*/{scanf("%d",&a);if(a<=0)continue;i++;s+=a;/*i是循环控制变量*/if(i==10)break;}printf("sum=%d\n",s);}while语句voidmain(){inti=1,sum=0;while(i<=100){sum+=i;i++;}printf("sum=%d\n",sum);}本例用for循环语句更为合理例6求某正整数(1000以内)的所有不重复因子#include"stdlib.h"voidmain(){inta,k=1;scanf("%d",&a);if(a<=0||a>=1000){printf("error\n");exit(1);}while(k<=a){if(a%k==0)printf("%5d",k);k++;}}do-while语句例7求10个整数中的最大者算法设计如下:1.max=-32768;i=1;2.循环做2.1.输入a;2.2.若a>max则max=a;2.3.i增加1;当i≤10执行2.;3.输出max;(提问:能否也同时求出最小者?)voidmain(){inta,max