300数位分解按数位筛选《计算机等级考试上机体分类2》.docx
- 文档编号:11410806
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:42
- 大小:22.29KB
300数位分解按数位筛选《计算机等级考试上机体分类2》.docx
《300数位分解按数位筛选《计算机等级考试上机体分类2》.docx》由会员分享,可在线阅读,更多相关《300数位分解按数位筛选《计算机等级考试上机体分类2》.docx(42页珍藏版)》请在冰豆网上搜索。
300数位分解按数位筛选《计算机等级考试上机体分类2》
300数位分解按数位筛选《计算机等级考试上机体分类2》.txt丶︶ ̄喜欢的歌,静静的听,喜欢的人,远远的看我笑了当初你不挺傲的吗现在您这是又玩哪出呢?
8请编写函数CountValue(),它的功能是:
求n以内(不包括n),同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。
主函数最后调用函数progReadWrite()从IN.dat文件中读取10组数据,分别得出结果,且把结果输出到文件OUT.dat中。
例如,若n为1000时,函数值应为:
s=153.909064。
注意:
部分程序已经给出。
请勿改动主函数main()和输入输出数据函数progReadWrite()的内容。
#include
#include
#include
doubleCountValue(intn)
{
}
voidprogReadWrite()
{FILE*fp,*wf;
inti,n;
floats;
fp=fopen("in.dat","r");
if(fp==NULL)
{printf("数据文件in.dat不存在!
");
return;
}
wf=fopen("out.dat","w");
for(i=0;i<10;i++)
{fscanf(fp,"%d,",&n);
s=(float)countValue(n);
fprintf(wf,"%f\n",s);
}
fclose(fp);
fclose(wf);
}
main()
{printf("1000以内符合条件的自然数之和的平方根=%f\n",CountValue(1000));
progReadWrite();
}
doublecountValue(intn)
{doublexy=0.0;
inti;
for(i=1;i if(i%3==0&&i%7==0) xy+=i; xy=sqrt((double)xy); returnxy; } 9已知在文件IN.dat中存有N个(N<200)实数,函数RData()读取这N个实数并存入数组original中。 请编写函数CalValue(),要求实现的功能有: ①求出这N个实数的平均值(aver);②分别求出这N个实数的整数部分之和(sumint)以及小数部分之和(sumdec),最后调用函数WData()把所求的结果输出到文件OUT.dat中。 注意: 部分源程序已给出。 请勿改动主函数main()、读数据函数RData()和输出数据函数WData()的内容。 #include #include #defineMAXNUM200 floatoriginal[MAXNUM]; doubleaver=0.0; longsumint=0; doublesumdec=0.0; intRData(void); voidWData(void); voidCalValue(void) { } voidmain() {inti; for(i=0;i original[i]=0; if(RData()) {printf("数据文件IN.dat不能打开! \007\n"); return; } CalValue(); printf("平均值=%.2lf\n",aver); printf("整数部分之和=%ld\n",sumint); printf("小数部分之和=%.2lf\n",sumdec); WData(); } intRData(void) {FILE*fp; inti=0; if((fp=fopen("IN.dat","r"))==NULL) return1; while(! feof(fp)) fscanf(fp,"%f,",&original[i++]); fclose(fp); return0; } voidWData(void) {FILE*fp; fp=fopen("OUT.dat","w"); fprintf(fp,"%.2lf\n%ld\n%.2lf\n",aver,sumint,sumdec); fclose(fp); } voidCalValue(void) {inti; doublex,sum=0; for(i=0;i {sumint=sumint+(int)original[i]; x=original[i]-(int)original[i]; sumdec=sumdec+x; sum=sum+original[i]; } aver=sum/MAXNUM; } 10已知数据文件IN.dat中存有300个四位数,并已调用读函数Rdata()把这些数存入数组a中,请编写函数primeNum(),其功能是: 求出所有这些四位数中素数的个数count,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。 最后调用写函数Wdata(),把结果输出到OUT.dat文件中。 例如,5591是素数,则该数满足条件存入数组b中,且个数count=count+1。 9812是非素数,则该数不满足条件,不存入数组b中,count值也不加1。 注意: 部分源程序已经给出。 程序中已定义数组a[300]、b[300],已定义变量count。 请勿改动主函数main()、读函数Rdata()和写函数Wdata()的内容。 #include inta[300],b[300],count=0; intisP(intm) {inti; for(i=2;i if(m%i==0) return0; return1; } voidprimeNum() { } voidRdata() {FILE*fp; inti; fp=fopen("in.dat","r"); for(i=0;i<300;i++) fscanf(fp,"%d,",&a[i]); fclose(fp); } voidWdata() {FILE*fp; inti; fp=fopen("out.dat","w"); fprintf(fp,"%d\n",count); for(i=0;i fprintf(fp,"%d\n",b[i]); fclose(fp); } main() {inti; Rdata(); primeNum(); Wdata(); printf("count=%d\n",count); for(i=0;i printf("b[%d]=%d\n",i,b[i]); } voidprimeNum() {intj,i,value; for(i=0;i<300;i++) if(isP(a[i])) {b[count]=a[i]; count++; } for(i=0;i for(j=i+1;j if(b[i]>b[j]) {value=b[i]; b[i]=b[j]; b[j]=value; } } 14请编写函数countValue(),它的功能是: 求出1~1000之内能被7或11整除但不能同时被7或11整除的所有整数,将它们放在数组a中,并通过n返回这些数的个数。 主函数最后调用函数Wdata()把计算结果输出到OUT.dat中。 注意: 部分源程序已经给出。 请勿改动主函数main()和输出数据函数Wdata()的内容。 #include #include voidcountValue(int*a,int*n) { } voidWdata() {intaa[1000],n,k; FILE*fp; fp=fopen("out.dat","w"); countValue(aa,&n); for(k=0;k if((k+1)%10==0) fprintf(fp,"%5d\n",aa[k]); else fprintf(fp,"%5d",aa[k]); fprintf(fp,"\n"); fclose(fp); } main() {intaa[1000],n,k; countValue(aa,&n); for(k=0;k if((k+1)%10==0) printf("%5d\n",aa[k]); else printf("%5d",aa[k]); Wdata(); } voidcountValue(int*a,int*n) {inti; *n=0; for(i=1;i<=1000;i++) if(i%7==0&&i%11) {*a=i; *n=*n+1; a++; } elseif(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(intnumber[200])及输出格式已给出。 #include #include #defineN200 voidread_dat(intnumber[N]) {inti,j; FILE*fp; fp=fopen("IN.dat","r"); for(i=0;i<20;i++) {for(j=0;j<10;j++) {fscanf(fp,"%d,",&number[i*10+j]); printf("%d",number[i*10+j]); } printf("\n"); } fclose(fp); } voidmain() {inti; intcnt1,cnt2,number[N]; longj=0; floatave; FILE*fw; fw=fopen("OUT.dat","w"); read_dat(number); /**************************************/ /**************************************/ printf("\n\ncnt1=%d,cnt2=%d,ave=%6.2f\n",cnt1,cnt2,ave); fprintf(fw,"%d\n%d\n%6.2f\n",cnt1,cnt2,ave); fclose(fw); } for(i=0,j=0,cnt1=0,cnt2=0;i {if(number[i]%2) cnt1++; else cnt2++; if(i%2==0) j+=number[i]; } ave=(float)j/(N/2); 19已知数据文件IN.dat中存有200个四位数,并已调用读函数rdata()把这些数存入数组a中,请编写函数evenvalue(),其功能是: 如果四位数每位上的数字均是0、2、4、6或8,则统计出满足此条件的四位数的个数count,并把这些四位数按从大到小的顺序存入数组b中。 最后main()函数调用写函数wdata(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。 注意: 部分程序已经给出。 程序中已定义数组a[200],b[200];已定义变量count。 请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数rdata()和写函数wdata()中的内容。 #include #defineMAX200 inta[MAX],b[MAX],count=0; voidevenvalue() { } voidrdata() {inti; FILE*fp; fp=fopen("IN.dat","r"); for(i=0;i fscanf(fp,"%d,",&a[i]); fclose(fp); } voidwdata() {FILE*fp; inti; fp=fopen("OUT.dat","w"); fprintf(fp,"%d\n",count); for(i=0;i fprintf(fp,"%d\n",b[i]); fclose(fp); } voidmain() {inti; rdata(); evenvalue(); printf("满足条件的数=%d\n",count); for(i=0;i printf("%d",b[i]); printf("\n"); wdata(); } voidevenvalue() {intbb[4]; inti,j,k,flag; for(i=0;i<200;i++) {bb[0]=a[i]/1000; bb[1]=a[i]%1000/100; bb[2]=a[i]%100/10; bb[3]=a[i]%10; for(j=0;j<4;j++) {if(bb[j]%2==0) {flag=1; } else {flag=0; break; } } if(flag==1) {b[count]=a[i]; count++; } } for(i=0;i for(j=i+1;j if(b[i] {k=b[i]; b[i]=b[j]; b[j]=k; } } 24已知数据文件IN.dat中存有200个四位数,并已调用读函数RData()把这些数存入数组a中,请编写函数evenVal(),其功能是: 若一个四位数的千位上的数字值小于等于百位上的数字值,百位上的数字值小于等于十位上的数字值,以及十位上的数字值小于等于个位上的数字值,并且该四位数是偶数,则统计出满足此条件的个数count,并把这些四位数按从小到大的顺序存入数组b中。 最后调用写函数WData(),把结果count以及数组b中符合条件的四位数输出到OUT.dat文件中。 程序中已定义数组a[200],、b[200],已定义变量count。 注意: 部分程序已经给出。 请勿改动数据文件IN.dat中的任何数据及主函数main()、读函数RData()和写函数WData()的内容。 #include #defineMAX200 inta[MAX],b[MAX],count=0; voidevenVal() { } voidRData() {inti; FILE*fp; fp=fopen("IN.dat","r"); for(i=0;i fscanf(fp,"%d,",&a[i]); fclose(fp); } voidWData() {FILE*fp; inti; fp=fopen("OUT.dat","w"); fprintf(fp,"%d\n",count); for(i=0;i fprintf(fp,"%d\n",b[i]); fclose(fp); } voidmain() {inti; RData(); evenVal(); printf("满足条件的数=%d\n",count); for(i=0;i printf("%d",b[i]); printf("\n"); WData(); } voidevenVal() {inti,j; inta1,a2,a3,a4,k; for(i=0;i {a1=a[i]/1000; a2=a[i]%1000/100; a3=a[i]%100/10; a4=a[i]%10; if((a1<=a2)&&(a2<=a3)&&(a3<=a4)&&(a[i]%2==0)) {b[count]=a[i]; count++; } } for(i=0;i for(j=i+1;j if(b[i]>b[j]) {k=b[i]; b[i]=b[j]; b[j]=k; } } 25下列程序的功能是: 在三位整数(100~999)中寻找符合条件的整数并依次从小到大存入数组中;该整数既是完全平方数,又有两个数字相同,例如144、676等。 请编写函数SearchVal()实现此功能,满足该条件的整数的个数通过所编写的函数返回。 最后调用函数WData(),把结果输出到文件OUT.dat中。 注意: 部分源程序已给出。 请勿改动主函数main()和写函数WData()的内容。 #include SearchVal(intbb[]) { } voidWData(intnum,intb[]) {FILE*out; inti; out=fopen("out.dat","w"); printf("%d\n",num); fprintf(out,"%d\n",num); for(i=0;i {printf("%d\n",b[i]); fprintf(out,"%d\n",b[i]); } fclose(out); } main() {intb[20],num; num=SearchVal(b); WData(num,b); } searchVal(intbb[]) {inti,a,b,c,cnt=0; for(i=10;i*i<1000;i++) {a=i*i/100; b=i*i/10%10; c=i*i%10; if(a==b||b==c||c==a) bb[cnt++]=i*i; } returncnt; } 26已知数据文件IN.dat中存有300个四位数,并已调用读函数RData()把这些数存入数组a中,请编写函数jsValue(),其功能是: 求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于0的数的个数count,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。 最后调用写函数WData(),把结果输出到OUT.dat文件中。 例如,9123,9-1-2-3>0,则该数满足条件存入数组b中,且个数count=count+1。 9812,9-8-1-2<0,则该数不满足条件,忽略。 程序中已定义数组a[300],b[300];已定义变量count。 注意: 部分程序已经给出。 请勿改动主函数main()、读函数RData()和写函数WData()的内容。 #include inta[300],b[300],count=0; voidjsValue() { } voidRData() {FILE*fp; inti; fp=fopen("in.dat","r"); for(i=0;i<300;i++) fscanf(fp,"%d,",&a[i]); fclose(fp); } voidWData() {FILE*fp; inti; fp=fopen("out.dat","w"); fprintf(fp,"%d\n",count); for(i=0;i fprintf(fp,"%d\n",b[i]); fclose(fp); } main() {inti; RData(); jsValue(); WData(); printf("count=%d\n",count); for(i=0;i printf("b[%d]=%d\n",i,b[i]); } voidjsValue() {inti,thou,hun,ten,data,j; for(i=0;i<300;i++) {thou=a[i]/1000; hun=a[i]%1000/100; ten=a[i]%100/10; data=a[i]%10; if(thou-hun-ten-data>0) {b[count]=a[i]; count++; } } for(i=0;i for(j=i+1;j if(b[i]>b[j]) {data=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机等级考试上机体分类2 300 数位 分解 筛选 计算机等级考试 机体 分类