300数位分解按数位筛选《计算机等级考试上机体分类2》_第1页
300数位分解按数位筛选《计算机等级考试上机体分类2》_第2页
300数位分解按数位筛选《计算机等级考试上机体分类2》_第3页
300数位分解按数位筛选《计算机等级考试上机体分类2》_第4页
300数位分解按数位筛选《计算机等级考试上机体分类2》_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、300数位分解按数位筛选计算机等级考试上机体分类2.txt丶喜欢的歌,静静的听,喜欢的人,远远的看我笑了当初你不挺傲的吗现在您这是又玩哪出呢?8 请编写函数CountValue(),它的功能是:求n以内(不包括n),同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。主函数最后调用函数progReadWrite()从IN.dat文件中读取10组数据,分别得出结果,且把结果输出到文件OUT.dat中。例如,若n为1000时,函数值应为:s=153.。注意:部分程序已经给出。请勿改动主函数main()和输入输出数据函数progReadWrite()的内容。#include #inclu

2、de #include double CountValue(int n)void progReadWrite()FILE *fp, *wf;int i, n;float s;fp = fopen(in.dat, r);if (fp = NULL)printf(数据文件in.dat不存在!);return;wf = fopen(out.dat, w);for (i=0; i10; i+)fscanf(fp, %d, &n);s = (float)countValue(n);fprintf(wf, %fn, s);fclose(fp);fclose(wf);main()printf(1000以内符

3、合条件的自然数之和的平方根=%fn, CountValue(1000);progReadWrite();double countValue(int n)double xy = 0.0;int i;for (i=1; in; i+)if (i%3=0 & i%7=0)xy += i;xy = sqrt(double)xy);return xy;9 已知在文件IN.dat中存有N个(N200)实数,函数RData()读取这N个实数并存入数组original中。请编写函数CalValue(),要求实现的功能有:求出这N个实数的平均值(aver);分别求出这N个实数的整数部分之和(sumint)以及小

4、数部分之和(sumdec),最后调用函数WData()把所求的结果输出到文件OUT.dat中。注意:部分源程序已给出。请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。#include #include #define MAXNUM 200float originalMAXNUM;double aver = 0.0;long sumint = 0;double sumdec = 0.0;int RData(void);void WData(void);void CalValue(void)void main()int i;for (i=0; iMAXNUM

5、; i+)originali = 0;if (RData()printf(数据文件IN.dat不能打开!007n);return;CalValue();printf(平均值=%.2lfn, aver);printf(整数部分之和=%ldn, sumint);printf(小数部分之和=%.2lfn, sumdec);WData();int RData(void)FILE *fp;int i = 0;if (fp = fopen(IN.dat, r) = NULL)return 1;while (!feof(fp)fscanf(fp, %f, &originali+);fclose(fp);re

6、turn 0;void WData(void)FILE *fp;fp = fopen(OUT.dat, w);fprintf(fp, %.2lfn%ldn%.2lfn, aver, sumint, sumdec);fclose(fp);void CalValue(void)int i;double x, sum = 0;for (i=0; iMAXNUM; i+)sumint = sumint+(int)originali;x = originali-(int)originali;sumdec = sumdec+x;sum = sum+originali;aver = sum/MAXNUM;1

7、0 已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数primeNum(),其功能是:求出所有这些四位数中素数的个数count,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。最后调用写函数Wdata(),把结果输出到OUT.dat文件中。例如,5591是素数,则该数满足条件存入数组b中,且个数count=count+1。9812是非素数,则该数不满足条件,不存入数组b中,count值也不加1。注意:部分源程序已经给出。程序中已定义数组a300、b300,已定义变量count。请勿改动主函数mai

8、n()、读函数Rdata()和写函数Wdata()的内容。#include int a300, b300, count = 0;int isP(int m)int i;for (i=2; im; i+)if (m%i = 0)return 0;return 1;void primeNum()void Rdata()FILE *fp;int i;fp = fopen(in.dat, r);for (i=0; i300; i+)fscanf(fp, %d, &ai);fclose(fp);void Wdata()FILE *fp;int i;fp = fopen(out.dat, w);fprin

9、tf(fp, %dn, count);for (i=0; icount; i+)fprintf(fp, %dn, bi);fclose(fp);main()int i;Rdata();primeNum();Wdata();printf(count=%dn, count);for (i=0; icount; i+)printf(b%d=%dn, i, bi);void primeNum()int j, i, value;for (i=0; i300; i+)if (isP(ai)bcount = ai;count+;for (i=0; icount-1; i+)for (j=i+1; j bj)

10、value = bi;bi = bj;bj = value;14 请编写函数countValue(),它的功能是:求出11000之内能被7或11整除但不能同时被7或11整除的所有整数,将它们放在数组a中,并通过n返回这些数的个数。主函数最后调用函数Wdata()把计算结果输出到OUT.dat中。注意:部分源程序已经给出。请勿改动主函数main()和输出数据函数Wdata()的内容。#include #include void countValue(int *a, int *n)void Wdata()int aa1000, n, k;FILE *fp;fp = fopen(out.dat, w

11、);countValue(aa, &n);for (k=0; kn; k+)if (k+1)%10 = 0)fprintf(fp, %5dn, aak);elsefprintf(fp, %5d, aak);fprintf(fp, n);fclose(fp);main()int aa1000, n, k;countValue(aa, &n);for (k=0; kn; k+)if (k+1)%10 = 0)printf(%5dn, aak);elseprintf(%5d, aak);Wdata();void countValue(int *a, int *n)int i;*n = 0;for (

12、i=1; i=1000; i+)if (i%7=0 & i%11)*a = i;*n = *n+1;a+;else if (i%7 & i%11=0)*a = i;*n = *n+1;a+;17请补充程序,使得程序能实现以下功能:从文件IN.dat中读取200个整数至数组number中,求出奇数的个数cnt1和偶数的个数cnt2以及数组number下标为偶数的元素值的算术平均值ave(保留2位小数)。把结果cnt1、cnt2、ave输出到OUT.dat中。注意:部分程序、读数据函数read_dat(int number200)及输出格式已给出。#include #include #define

13、 N 200void read_dat(int numberN)int i, j;FILE *fp;fp = fopen(IN.dat, r);for (i=0; i20; i+)for (j=0; j10; j+)fscanf(fp, %d, &numberi*10+j);printf(%d , numberi*10+j);printf(n);fclose(fp);void main()int i;int cnt1, cnt2, numberN;long j = 0;float ave;FILE *fw;fw = fopen(OUT.dat, w);read_dat(number);/*/*

14、/printf(nncnt1=%d,cnt2=%d,ave=%6.2fn, cnt1, cnt2, ave);fprintf(fw, %dn%dn%6.2fn, cnt1, cnt2, ave);fclose(fw);for (i=0, j=0, cnt1=0, cnt2=0; iN; i+)if (numberi%2)cnt1+;elsecnt2+;if (i%2 = 0)j += numberi;ave = (float)j/(N/2);19已知数据文件IN.dat中存有200个四位数,并已调用读函数rdata()把这些数存入数组a中,请编写函数evenvalue(),其功能是:如果四位数

15、每位上的数字均是0、2、4、6或8,则统计出满足此条件的四位数的个数count,并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数wdata(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。注意:部分程序已经给出。程序中已定义数组a200,b200;已定义变量count。请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数rdata()和写函数wdata()中的内容。#include #define MAX 200int aMAX, bMAX, count = 0;void evenvalue()void rdata()int

16、 i;FILE *fp;fp = fopen(IN.dat, r);for (i=0; iMAX; i+)fscanf(fp, %d, &ai);fclose(fp);void wdata()FILE *fp;int i;fp = fopen(OUT.dat, w);fprintf(fp, %dn, count);for (i=0; icount; i+)fprintf(fp, %dn, bi);fclose(fp);void main()int i;rdata();evenvalue();printf(满足条件的数=%dn, count);for (i=0; icount; i+)print

17、f(%d , bi);printf(n);wdata();void evenvalue()int bb4;int i, j, k, flag;for (i=0; i200; i+)bb0 = ai/1000;bb1 = ai%1000/100;bb2 = ai%100/10;bb3 = ai%10;for (j=0; j4; j+)if (bbj%2 = 0)flag = 1;elseflag = 0;break;if (flag = 1)bcount = ai;count+;for (i=0; icount-1; i+)for (j=i+1; jcount; j+)if (bi bj)k =

18、 bi;bi = bj;bj = k;24已知数据文件IN.dat中存有200个四位数,并已调用读函数RData()把这些数存入数组a中,请编写函数evenVal(),其功能是:若一个四位数的千位上的数字值小于等于百位上的数字值,百位上的数字值小于等于十位上的数字值,以及十位上的数字值小于等于个位上的数字值,并且该四位数是偶数,则统计出满足此条件的个数count,并把这些四位数按从小到大的顺序存入数组b中。最后调用写函数WData(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。程序中已定义数组a200,、b200,已定义变量count。注意:部分程序已经给出。请勿

19、改动数据文件IN.dat中的任何数据及主函数main()、读函数RData()和写函数WData()的内容。#include #define MAX 200int aMAX, bMAX, count = 0;void evenVal()void RData()int i;FILE *fp;fp = fopen(IN.dat, r);for (i=0; iMAX; i+)fscanf(fp, %d, &ai);fclose(fp);void WData()FILE *fp;int i;fp = fopen(OUT.dat, w);fprintf(fp, %dn, count);for (i=0;

20、 icount; i+)fprintf(fp, %dn, bi);fclose(fp);void main()int i;RData();evenVal();printf(满足条件的数=%dn, count);for (i=0; icount; i+)printf(%d , bi);printf(n);WData();void evenVal()int i, j;int a1, a2, a3, a4, k;for (i=0; iMAX; i+)a1 = ai/1000;a2 = ai%1000/100;a3 = ai%100/10;a4 = ai%10;if (a1 = a2) & (a2 =

21、 a3) & (a3 = a4) & (ai%2 = 0)bcount = ai;count+;for (i=0; icount-1; i+)for (j=i+1; j bj)k = bi;bi = bj;bj = k;25 下列程序的功能是:在三位整数(100999)中寻找符合条件的整数并依次从小到大存入数组中;该整数既是完全平方数,又有两个数字相同,例如144、676等。请编写函数SearchVal()实现此功能,满足该条件的整数的个数通过所编写的函数返回。最后调用函数WData(),把结果输出到文件OUT.dat中。注意:部分源程序已给出。请勿改动主函数main()和写函数WData()

22、的内容。#include SearchVal(int bb)void WData(int num, int b)FILE *out;int i;out = fopen(out.dat, w);printf(%dn, num);fprintf(out, %dn, num);for (i=0; inum; i+)printf(%dn, bi);fprintf(out, %dn, bi);fclose(out);main()int b20, num;num = SearchVal(b);WData(num, b);searchVal(int bb)int i, a, b, c, cnt = 0;fo

23、r (i=10; i*i0,则该数满足条件存入数组b中,且个数count=count+1。9812,9-8-1-20,则该数不满足条件,忽略。程序中已定义数组a300,b300;已定义变量count。注意:部分程序已经给出。请勿改动主函数main()、读函数RData()和写函数WData()的内容。#include int a300, b300, count = 0;void jsValue()void RData()FILE *fp;int i;fp = fopen(in.dat, r);for (i=0; i300; i+)fscanf(fp, %d, &ai);fclose(fp);v

24、oid WData()FILE *fp;int i;fp = fopen(out.dat, w);fprintf(fp, %dn, count);for (i=0; icount; i+)fprintf(fp, %dn, bi);fclose(fp);main()int i;RData();jsValue();WData();printf(count=%dn, count);for (i=0; icount; i+)printf(b%d=%dn, i, bi);void jsValue()int i, thou, hun, ten, data, j;for (i=0; i 0)bcount =

25、 ai;count+;for (i=0; icount-1; i+)for (j=i+1; j bj)data = bi;bi = bj;bj = data;45已知数据文件IN.dat中存有300个四位数,并已调用读函数RData()把这些数存入数组a中,请编写函数spellVal(),其功能是:求出千位上的数加个位上的数等于百位上的数加十位上的数的个数count,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。最后调用写函数WData(),把结果输出到OUT.dat文件中。例如,6712,6+2=7+1,则该数满足条件存入数组b中,且个数count

26、=count+1。8129,8+9!=1+2,则该数不满足条件,不存入数组b中,count变量也不加1。注意:部分源程序已经给出。程序中已定义数组a300,b300;已定义变量count。请勿改动主函数main()、读函数RData()和写函数WData()的内容。#include int a300, b300, count = 0;void spellVal()void RData()FILE *fp;int i;fp = fopen(IN.dat, r);for (i=0; i300; i+)fscanf(fp, %d, &ai);fclose(fp);void WData()FILE *

27、fp;int i;fp = fopen(OUT.dat, w);fprintf(fp, %dn, count);for (i=0; icount; i+)fprintf(fp, %dn, bi);fclose(fp);main()int i;RData();spellVal();WData();printf(count=%dn, count);for (i=0; icount; i+)printf(b%d=%dn, i, bi);void spellVal()int i, thou, hun, ten, data, j;for (i=0; i300; i+)thou = ai/1000;hun

28、 = ai%1000/100;ten = ai%100/10;data = ai%10;if (thou+data = hun+ten)bcount = ai;count+;for (i=0; icount-1; i+)for (j=i+1; j bj)data = bi;bi = bj;bj = data;46已知数据文件IN.dat中存有300个四位数,并已调用读函数RData()把这些数存入数组a中,请编写函数diffVal(),其功能是:求出千位上的数减百位上的数减十位上的数减个位上的数大于0的个数count,再求出所有满足此条件的四位数的平均值ave1,以及不满足此条件的四位数的平均

29、值ave2。最后调用写函数WData(),把结果输出到OUT.dat文件中。例如,9123,9-1-2-30,则该数满足条件,计算平均值ave1,且个数count=count+1。9812,9-8-1-20,则该数不满足条件,计算平均值ave2。注意:部分源程序已经给出。程序中已定义数组a300,已定义变量count、ave1、ave2。请勿改动主函数main()、读函数RData()和写函数WData()的内容。#include int a300, count = 0;double ave1 = 0.0, ave2 = 0.0;void diffVal()void RData()FILE *

30、fp;int i;fp = fopen(IN.dat, r);for (i=0; i300; i+)fscanf(fp, %d, &ai);fclose(fp);void WData()FILE *fp;fp = fopen(OUT.dat, w);fprintf(fp, %dn%7.2fn%7.2fn, count, ave1, ave2);fclose(fp);main()RData();diffVal();WData();printf(count=%dn满足条件的平均值pzj1=%7.2fn不满足条件的平均值pzj2=%7.2fn, count, ave1, ave2);void dif

31、fVal()int i, thou, hun, ten, data, n = 0;for (i=0; i 0)count+;ave1 += ai;elsen+;ave2 += ai;ave1 /= count;ave2 /= n;47已知数据文件IN.dat中存有200个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数spellNum(),其功能是:把千位数字和十位数字重新组成一个新的二位数(新二位数的十位数字是原四位数的千位数字,新二位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的二位数(新二位数的十位数字是原四位数的个位数字,新二位数的个位数

32、字是原四位数的百位数字),如果新组成的两个二位数均是素数且新数的十位数字均不为0,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数count。最后main()函数调用写函数Wdata(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。注意:部分源程序已经给出。程序中已定义数组a200、b200,已定义变量count。请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数Rdata()和写函数Wdata()的内容。#include #define MAX 200int aMAX, bMAX, count = 0;int

33、 isprime(int m)int i;for (i=2; i=m/2; i+)if (m%i = 0)return 0;return 1;void spellNum()void Rdata()int i;FILE *fp;fp = fopen(IN.dat, r);for (i=0; iMAX; i+)fscanf(fp, %d, &ai);fclose(fp);void Wdata()FILE *fp;int i;fp = fopen(OUT.dat, w);fprintf(fp, %dn, count);for (i=0; icount; i+)fprintf(fp, %dn, bi)

34、;fclose(fp);void main()int i;Rdata();spellNum();printf(满足条件的数=%dn, count);for (i=0; icount; i+)printf(%d , bi);printf(n);Wdata();48void spellNum()int i, thou, hun, ten, data, j;int ab, cd;for (i=0; i200; i+)thou = ai/1000;hun = ai%1000/100;ten = ai%100/10;data = ai%10;if (thou=0 | data=0)continue;ab

35、 = 10*thou+ten;cd = 10*data+hun;if (isprime(ab) & isprime(cd)bcount = ai;count+;for (i=0; icount-1; i+)for (j=i+1; jcount; j+)if (bi 0,则该数满足条件存入数组b中,满足条件count加1。9812,9-8-1-20,则该数不满足条件,count不变。注意:部分源程序已经给出。程序中已定义数组a300、b300,已定义变量count。请勿改动主函数main()、读函数Rdata()和写函数Wdata()的内容。#include int a300, b300, co

36、unt = 0;void diffNum()void Rdata()FILE *fp;int i;fp = fopen(IN.dat, r);for (i=0; i300; i+)fscanf(fp, %d, &ai);fclose(fp);void Wdata()FILE *fp;int i;fp = fopen(OUT.dat, w);fprintf(fp, %dn, count);for (i=0; icount; i+)fprintf(fp, %dn, bi);fclose(fp);main()int i;Rdata();diffNum();Wdata();printf(count=%

37、dn, count);for (i=0; icount; i+)printf(b%d=%dn, i, bi);void diffNum()int i, thou, hun, ten, data, j;for (i=0; i 0)bcount = ai;count+;for (i=0; icount-1; i+)for (j=i+1; j bj)data = bi;bi = bj;bj = data;57下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数

38、的个数count以及这些数的和sum。请编写函数calValue()实现程序的要求,最后调用函数writeDat(),把结果count和sum输出到OUT.dat文件中。注意:部分源程序已经给出。请勿改动主函数main()和输出数据函数writeDat()的内容。#include int count, sum;void calValue() void writeDat()FILE *fp;fp = fopen(OUT.dat, w);fprintf(fp, %dn%dn, count, sum);fclose(fp);void main()count = sum = 0;calValue();

39、printf(满足条件的自然数的个数=%dn, count);printf(满足条件的自然数的个数之和=%dn, sum);writeDat();void calValue() int i, thou, hun, ten, data;for (i=5000; i=1000; i-)thou = i/1000;hun = i%1000/100;ten = i%100/10;data = i%10;if (thou+hun=ten+data & thou+hun=(data-thou)*10)count+;sum += i;66已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata

40、()把这些数存入数组a中,请编写函数NumCal(),其功能是:求出千位上的数加个位上的数等于百位上的数加十位上的数的四位数的个数count,再求出所有满足此条件的四位数的平均值Ave1,以及不满足此条件的四位数的平均值Ave2。最后调用写函数Wdata(),把结果输出到OUT.dat文件中。例如,6712,6+2=7+1,则该数满足条件计算平均值Ave1,且个数count=count+1。8129,8+9!=1+2,则该数不满足条件计算平均值Ave2。注意:部分源程序已经给出。程序中已定义数组a300,已定义变量count、Ave1、Ave2。请勿改动主函数main()、读函数Rdata()

41、和写函数Wdata()的内容。#include int a300, count = 0;double Ave1 = 0.0, Ave2 = 0.0;void NumCal()void Rdata()FILE *fp;int i;fp = fopen(IN.dat, r);for (i=0; i300; i+)fscanf(fp, %d, &ai);fclose(fp);void Wdata()FILE *fp;fp = fopen(OUT.dat, w);fprintf(fp, %dn%7.2fn%7.2fn, count, Ave1, Ave2);fclose(fp);main()Rdata

42、();NumCal();Wdata();printf(count=%dn满足条件的平均值Avel=%7.2fn不满足条件的平均值Ave2=%7.2fn, count, Ave1, Ave2);void NumCal()int i, n = 0, thou, hun, ten, data;for (i=0; i300; i+)thou = ai/1000; hun = ai%1000/100;ten = ai%100/10; data = ai%10;if (thou+data = hun+ten)count+;Ave1 += ai;elsen+;Ave2 += ai;Ave1 /= count

43、;Ave2 /= n;68已知数据文件IN.dat中存有200个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数NumCal(),其功能是:把一个四位数的千位数字上的值加上个位数字上的值恰好等于百位数字上的值加上十位数字上的值,并且原四位数是奇数,则统计出满足此条件的个数count并把这些四位数按从小到大的顺序存入数组b中。最后调用写函数Wdata(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。注意:部分源程序已经给出。程序中已定义数组a200、b200,已定义变量count。请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数Rdata()和写函数Wdata()的内容。#include #define MAX 200int aMAX, bMAX, count = 0;void NumCal()void Rdata()int i;FILE *fp;fp = fopen(IN.d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论