1、计算机三级机试数列问题 39题编写函数JSvalue()它的功能是求F数列中大于t的最小的一个数,结果由函数返回,其中F数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)最后调用函数writeDAT()把结果输入到文件outDAT中。答案解析:int f0=0, f1=1,fn; fn=f0+f1; while (fn=0.000001); return x1;第95题请编写函数countValue(),它的功能是求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根,并作为函数值返回,最后结果s输出到文件夹OUTDAT中。答案解析: int i;
2、double s=0; for (i=21;in;i+=21) s+=i; return sqrt (s); 第七题 下列程序的功,能是;计算出自然数six和nine,他们满足的条件是six+six+six=nine+nine的个数cnt,以及满足此条件的所有six与nine的和SUM,请编写函数countValue()实现程序要求,最后调用WRITEDAT()把结果cnt,sum输出到文件outDAT中,其中SIXNE各代表一个十进制数字。答案解析: int i,j,a1,a2,a3,a4; for (i=100;i=1000 & j=9999 & 3*i=2*j) cnt+; sum+=i
3、+j; 素数问题 44 45 1045.下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx,请编写函数num(int m,int k,inxx )实现程序的要求,最后调用函数readwriteDAT()把结果输出到out dat文件中。答案解析:int i,d,h,n=0; d=m+1; while (nk) h=d/2; for(i=2;ih) xxn=d; n+;d+; 44.下列程序的功能是计算500-800之间的个数cnt,并按所要求素数的值从大到小的顺序,在计算其间隔减加之和,即第一个素数-第二个素数+第三个素数-第四个素数+第五个素数的值sum,请编写函数countvlu
4、e(),实现程序的要求,最后调用函数writeDAT()把结果cnt和sum输出到文件outDAT中。答案解析:int i,j,h,f=1; for (i=799;i500;i-=2) h=i/2; for (j=2;jh) cnt+; sum+=i*f; f=-f; 10. 下列程序的功能是:选出100-1000之间的所有个位数字与十位数字之和被10 除所得余数恰是百位数字的素数(293)。计算并输出上述这些素数的个数cnt,以及这些函数值的和sum请编写函数vlue(),实现程序的要求,最后调用函数writeDAT()把结果cnt和sum输出到文件outDAT中。答案解析:int i,j,
5、h,ge,shi,bai; for (i=101;i=999;i+=2) ge=i%10; shi=i/10%10; bai=i/100; if (ge+shi)%10=bai) h=i/2; for(j=2;jh) cnt+; sum+=i; 第91题 下列程序的功能是:寻找并输出11至999之间的数m,它满足m,m2,m3,均为回文数,所谓回文数是指各位数字左右对称的整数,例如121,676,94249等,满足上述条件的数如m=11,m2=121,m3=1331,皆为回文数,如果是回文数,则函数返回1,反之返回0,把结果输出到文件OUT,DAT中。答案解析:int i,cnt=0,xx10
6、,j; while (n0) xxcnt=n%10; n=n/10; cnt+; for (i=0,j=cnt-1;ij) return 1; else return 0;第九题 下列程序的功能是,在三位整数中(100至999)中寻找符合下面条件的整数,并依次从小大存入数组中,它既是完全平方数,又有两位数字相同,例如144,676等,请编制函数 int jsvalue(int bb ),实现此功能满足该条件的的整数的个数通过所编制的函数返回。答案解析: int i,j,t,ge,shi,bai ,cnt=0; for (i=100;i=999;i+) ge=i%10; shi=i/10%10;
7、 bai=i/100; if(ge=shi | shi=bai | bai=ge) for (j=10;j=33;j+) if (i=j*j) bbcnt=i; cnt+; return cnt ;对四位数的处理 2 24 25 27 76 77 78 80 81 982.已知数据文件INDAT中存有300个四位数,并已调用读函数readdat(),把这些数存入数组a中,请编制函数javalue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数的cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数wri
8、tedat把数组b中的数输出到OUTdat中。 int i,j,t,ge,shi,bai,qian; for (i=0;i300;i+) ge=ai%10; shi=ai/10%10; bai=ai/100%10; qian=ai/1000; if(ge+qian=shi+bai) bcnt=ai; cnt+; for(i=0;icnt-1;i+) for(j=i+1;jbj) t=bi; bi=bj; bj=t; 24. 已知数据文件INDAT中存有200个四位数,并已调用读函数readdat(),把这些数存入数组a中,请编制函数javalue(),其功能是:如果四位数各位数上的数均为奇数,
9、则统计出满足条件的个数cnt,并把四位数按从大到小的顺序存入数组b中,最后调用写函数writedat把数组b中的数输出到OUTdat中。答案解析:int i,j,t,ge,shi,bai,qian; for(i=0;i200;i+) ge=ai%10; shi=ai/10%10; bai=ai/100%10; qian=ai/1000; if (ge%2!=0 & shi%2!=0 & bai%2!=0 & qian%2!=0) bcnt=ai; cnt+; for (i=0;icnt-1;i+)for (j=i+1;jcnt;j+)if (bibj) t=bi; bi=bj; bj=t;25
10、. 已知数据文件INDAT中存有300个四位数,并已调用读函数readdat(),把这些数存入数组a中,请编制函数javalue(),其功能是:千+百=十+个的个数的cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序,最后调用写函数writedat把数组b中的数输出到OUTdat中。答案解析:int i,j,t,ge,shi,bai,qian; for (i=0;i300;i+) ge=ai%10; shi=ai/10%10; bai=ai/100%10; qian=ai/1000; if(qian+bai=shi+ge) bcnt=ai; cnt
11、+; for (i=0;icnt-1;i+) for (j=i+1;jcnt;j+) if(bibj) t=bi; bi=bj; bj=t; 76. 已知数据文件INDAT中存有300个四位数,并已调用读函数readdat(),把这些数存入数组a中,请编制函数javalue(),其功能是:如果四位数各位数上的数均是0,2,4,6,或8.则统计满足条件的个数cnt,最后调用写函数writedat把数组b中的数输出到OUTdat中。答案解析:int i,j,t,ge,shi,bai,qian; for (i=0;i200;i+) ge=ai%10; shi=ai/10%10; bai=ai/100
12、%10; qian=ai/1000; if (ge%2=0 & shi%2=0 & bai%2=0 & qian%2=0) bcnt=ai; cnt+; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bi=0且ab-cd=10且两个数均为奇数,同时两个新十位数字均不为0,则将满足此条件的四位数字按从大到小的顺序存入数组b中,并计算满足上述条件的四位数的个数cnt,最后调用函数writeDAT()中,把结果cnt及数组b中符合条件的四位数输出到outdat文件中。答案解析:int i,j,t,ge,shi,bai,qian,ab,cd; for(i=0;i=0
13、 & (ab-cd)=10 & ab%2=1 & cd%2=1 & qian!=0 & ge!=0) bcnt=ai; cnt+; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) t=bi; bi=bj; bj=t; 29. 已知数据文件INDAT中存有200个四位数,并已调用读函数readdat()把这些数存入数组a中,请编制一个函数jsval(),其功能是,把千位数字和十位数字重新组成一个新的二位数ab(新十位数的2位数字是原四位数的千位数字,新2位数字的个位数是原四位数的个位数字)以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十
14、位数字是原四位数的百位数字,新2位数的个位数字是原四位数的个位数字)如果新组成两个十位数均为奇数,并且两个二位数中至少有一个能被5整除,同时两个新十位数字都不为0,则将满足此条件的四位数字按从大到小的顺序存入数组b中,并计算满足上述条件的四位数的个数cnt,最后调用函数writeDAT()中,把结果cnt及数组b中符合条件的四位数输出到outdat文件中。答案解析:int i,j,t,ge,shi,bai,qian,ab,cd; for (i=0;i200;i+) ge=ai%10; shi=ai/10%10; bai=ai/100%10; qian=ai/1000; ab=qian*10+g
15、e; cd=bai*10+shi; if (ab%2=1 & cd%2=1 & (ab%5=0 | cd%5=0)& qian!=0 & bai!=0) bcnt=ai; cnt+; for (i=0;icnt-1;i+) for (j=i+1;jcnt;j+) if(bi=10且ab-cd=20且两个数均为偶数,同时两个新十位数字均不为0,则将满足此条件的四位数字按从大到小的顺序存入数组b中,并计算满足上述条件的四位数的个数cnt,最后调用函数writeDAT()中,把结果cnt及数组b中符合条件的四位数输出到outdat文件中。答案解析:int i,j,t,ge,shi,bai,qian,
16、ab,cd; for(i=0;i=10) &(ab-cd=20) & (ab%2=0)& (cd%2=0) & qian!=0 &ge!=0) bcnt=ai; cnt+; for(i=0;icnt-1;i+) for(j=i+1;jcnt;j+) if(bibj) t=bi; bi=bj; bj=t; 31. 已知数据文件INDAT中存有200个四位数,并已调用读函数readdat()把这些数存入数组a中,请编制一个函数jsval(),其功能是,把千位数字和十位数字重新组成一个新的二位数ab(新十位数的2位数字是原四位数的千位数字,新2位数字的个位数是原四位数的十位数字)以及把个位数字和百位
17、数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新2位数的个位数字是原四位数的百位数字)如果新组成两个十位数均为素数,且两个新十位数字均不为0,则将满足此条件的四位数字按从大到小的顺序存入数组b中,并计算满足上述条件的四位数的个数cnt,最后调用函数writeDAT()中,把结果cnt及数组b中符合条件的四位数输出到outdat文件中。答案解析:int i,j,t,ge,shi,bai,qian,ab,cd; for(i=0;i200;i+) ge=ai%10; shi=ai/10%10; bai=ai/100%10; qian=ai/1000; ab=qian*10+s
18、hi; cd=ge*10+bai; if(isprime(ab)&isprime(cd)&qian!=0&ge!=0) bcnt=ai; cnt+; for (i=0;icnt-1;i+) for (j=i+1;jcnt;j+) if(bibj) t=bi; bi=bj; bj=t; 63. 已知数据文件INDAT中存有200个四位数,并已调用读函数readdat()把这些数存入数组a中,请编制一个函数jsval(),其功能是,把千位数字和十位数字重新组成一个新的二位数ab(新十位数的2位数字是原四位数的千位数字,新2位数字的个位数是原四位数的十位数字)以及把个位数字和百位数字组成另一个新的十
19、位数cd(新十位数的十位数字是原四位数的个位数字,新2位数的个位数字是原四位数的百位数字)如果新组成两个十位数abcd,ab必须是奇数且不能被5整除,cd必须是偶数。且两个新十位数字均不为0,则将满足此条件的四位数字按从大到小的顺序存入数组b中,并计算满足上述条件的四位数的个数cnt,最后调用函数writeDAT()中,把结果cnt及数组b中符合条件的四位数输出到outdat文件中。答案解析:int i,j,t,ge,shi,bai,qian,ab,cd;for (i=0;i200;i+) ge=ai%10; shi=ai/10%10; bai=ai/100%10; qian=ai/1000;
20、 ab=qian*10+shi; cd=ge*10+bai;if(abcd)&(ab%2=1)&(ab%5!=0)&(cd%2=0)&qian!=0&ge!=0) bcnt=ai; cnt+; for (i=0;icnt-1;i+)for (j=i+1;jcnt;j+)if(bibj) t=bi; bi=bj; bj=t;82. 已知数据文件INDAT中存有200个四位数,并已调用读函数readdat()把这些数存入数组a中,请编制一个函数jsval(),其功能是,把千位数字和个位数字重新组成一个新的二位数ab(新十位数的2位数字是原四位数的个位数字,新2位数字的个位数是原四位数的千位数字)以
21、及把十位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的百位数字,新2位数的个位数字是原四位数的十位数字)如果新组成两个十位数均为偶数且至少有一个能被9整除,且两个新十位数字均不为0,则将满足此条件的四位数字按从大到小的顺序存入数组b中,并计算满足上述条件的四位数的个数cnt,最后调用函数writeDAT()中,把结果cnt及数组b中符合条件的四位数输出到outdat文件中。答案解析:int i,j,t,ge,shi,bai,qian,ab,cd;for (i=0;i200;i+) ge=ai%10; shi=ai/10%10; bai=ai/100%10; qian=a
22、i/1000; ab=ge*10+qian; cd=bai*10+shi; if (ab%2=0& cd%2=0)& (ab%9=0 | cd%9=0)& ge!=0 & bai!=0) bcnt=ai; cnt+; for (i=0;icnt-1;i+) for (j=i+1;jcnt;j+) if(bibj) t=bi; bi=bj; bj=t; 83. 84对四位数处理(3) 4 32 96 994.已知数据文件INDAT中有300个四位数,并已调用函数readDAT(),把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位
23、数上的数的个数cnt,再求出满足所有满足条件的四位数的平均值pjz1,以及所有不满足此条件的四位数的平均值pjz2,最后调用函数writedat()把结果cnt.pjz1,pjz2输出到OUTDAT文件。答案解析:int i,ge,shi,bai,qian; double sum1=0,sum2=0; for(i=0;i300;i+) ge=ai%10; shi=ai/10%10; bai=ai/100%10; qian=ai/1000; if (qian+bai=shi+ge) cnt+; sum1+=ai; else sum2+=ai; pjz1=sum1/cnt; pjz2=sum2/(300-cnt);32. 已知数据文件INDAT中有300个四位数,并已调用函数readDAT(),把这些数存入数组a中,请编制一函数jsvalue(),其功能是:求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于0的数的个数cnt,再求出满足所有满足条件的四位数的平均值pjz1,以及所有不满足此条件的四位数的平均值pjz2,最后调用函数writedat()把结果cnt.pjz1,pjz2输出到OUTDAT文件。答案解析:int i,ge,shi,bai,qian;
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2