资源描述:
《最新C语言——6(计算机2级考试必学资料)教学讲义ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言——6(计算机2级考试必学资料)例:求3~150中所有素数的和。算法分析:1.用变量a从3到150循环,每次值增加12.用变量i从2到a-1循环,每次值增加13.若a%i==0,结束i的循环,执行第4步4.若i==a,把a累加到s上。5.输出s的值注意:此题中执行第4步时有两种情况。第一种:在第3步中发现了满足a%i==0的情况,直接跳出了i的循环,此时的i一定是在2到a-1中间的一个值,而且a不是素数。第二种:一直没有发现满足a%i==0的i,在i==a时,不再满足i循环的执行条件,i循环结束,此时的a
2、是素数!程序:#includemain(){inta,s=0,i;for(a=3;a<=150;a++){for(i=2;i<=a-1;i++)if(a%i==0)break;if(a==i)s=s+a;}printf(“%d”,s)}求素数的方法很多,大同小异。此题可以做一些改动。如:i的值可以是从2取到sqrt(a);可以不用最后察看i的值,而是通过在发现因子时改动标志变量,最后根据标志变量的值判断是否是素数。程序:#includemain(){inta,b,c,n=
3、0;printf(“%d”,n);}for(c=1;c<=97;c++)for(b=c+1;b<=98;b++)for(a=b+1;a<=99;a++)if(a+b+c<100&&c*c*(a*a+b*b)==a*a*b*b)n++;此题可做改进,在循环时确保a>b>c,而不需要再在if中判断。改进如左所示:for(a=1;a<=99;a++)for(b=1;b<=99;b++)for(c=1;c<=99;c++)if(a>b&&b>c&&a+b+c<100&&c*c*(a*a+b*b)==a*a*b*b)
4、n++;#includemain(){longintI,s=0;for(I=10;I<=130;I++)s=s+I*I;printf(“%d”,s);}注意:i一定要是longint型。编程题1.[10,130]之间,所有整数的平方和。分析:用变量i从10到130循环,用变量s求和,s初值为0,每次循环,s=s+i*i;#includemain(){longinti,s=0;for(i=10;i<=150;i++)if(i%2!=0)s=s+i*i;printf(“%
5、ld”,s);}2.[10,150]奇数的平方和。分析:用变量s求和,s初值为0。用变量I从10到150循环,如果I是奇数(i%2!=0),则s=s+i*i#includemain(){longintI,s=0;for(I=10;I<=150;I++)if(I%3==0
6、
7、I%7==0)s=s+I*I;printf(“%ld”,s);}3.[10,150]之间,能被3或7整除的数的平方和。分析:用变量s求和,s初值为0。用变量I从10到150循环,如果I能被3或7整除(I%3==0
8、
9、i%
10、7==0),则s=s+I*I#includemain(){intI,n=0;for(I=1;I<=800;I++)if(I%3==0&&I%8==0)n++;printf(“%d”,n);}4.[1,800]中能被3和8整除的数的个数。分析:用变量n求个数,n初值为0。用变量I从1到800循环,如果I能被3和8整除(I%3==0&&i%8==0),则n++#includemain(){intI;floats=0;for(I=1;I<=50;I++)s=s+1.0/(I*I
11、)printf(“%.4f”,s);}5.s=1+1/(2*2)+1/(3*3)+…..+1/(m*m),求m=50时的s(结果保留4位小数)分析:用变量s求和,s初值为0。用变量I从1到50循环,s=s+1/(I*I)#includemain(){intn=1,s=0;do{s=s+n*n;n=n+1;}while(s<=5500);printf(“n=%d”,n-1);}6.求100以内最小的自然数n,使1*1+2*2+3*3+…+n*n>5500分析:用变量s求和,s初值为0。用
12、变量n从1开始循环,每次I增加1,如果s>5500,循环结束。#includemain(){intI;floata=1;for(I=2;I<=25;I++)a=1/(1+a);printf(“%.10f”,a);}7.a1=1a2=1/(1+a1)an=1/(1+an-1),求a25(结果保留10位小数)分析:用变量a求项,a初值为1。用变量I从2到25循环,a=