计算机三级机试

上传人:无*** 文档编号:222102291 上传时间:2023-07-08 格式:PDF 页数:33 大小:973.57KB
收藏 版权申诉 举报 下载
计算机三级机试_第1页
第1页 / 共33页
计算机三级机试_第2页
第2页 / 共33页
计算机三级机试_第3页
第3页 / 共33页
资源描述:

《计算机三级机试》由会员分享,可在线阅读,更多相关《计算机三级机试(33页珍藏版)》请在装配图网上搜索。

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

2、 中。答案解析:int i;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=1

3、00;i=1000&j=9999&3*i=2*j)cnt+;sum+=i+j;素数问题 44 45 10 45.下列程序的功能是:将大于整数 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,并按所要求素数的值从大到小的顺序,在计算其间隔减加之和,即第一个素数-第二

4、个素数+第三个素数-第四个素数+第五个素数的值 sum,请编写函数 countvlue(),实现程序的要求,最后调用函数 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(),实现程序的要求,最后调用函数 w

5、riteDAT()把结果 cnt 和 sum 输出到文件outDAT 中。答案解析:int i,j,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,皆为回文数,如果是回文数,则函

6、数返回 1,反之返回 0,把结果输出到文件 OUT,DAT 中。答案解析:int i,cnt=0,xx10,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

7、=0;for(i=100;i=999;i+)ge=i%10;shi=i/10%10;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 98 2.已知数据文件 INDAT 中存有 300 个四位数,并已调用读函数 readdat(),把这些数存入数组 a 中,请编制函数 javalue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数的 cnt,再把所有满足此条件的四位数依次存入

8、数组 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(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

9、中,请编制函数 javalue(),其功能是:如果四位数各位数上的数均为奇数,则统计出满足条件的个数 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+)

10、if(bibj)t=bi;bi=bj;bj=t;25.已知数据文件 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/

11、1000;if(qian+bai=shi+ge)bcnt=ai;cnt+;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;i20

12、0;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(bi=0且 ab-cd=10 且两个数均为奇数,同时两个新十位数字均不为 0,则将满足此条件的四位数字按从大到小的顺序存入数组 b 中,并计算满足上述条件的四位数的个数 cnt,最后调用函数 writeDAT()中,把结果 cnt 及数组 b 中符合条件的四位数输出到 outdat 文件中。答案解析:int i,j,

13、t,ge,shi,bai,qian,ab,cd;for(i=0;i=0&(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 位数字的个位数是原四位数的个位数字)以及把

14、个位数字和百位数字组成另一个新的十位数 cd(新十位数的十位数字是原四位数的百位数字,新 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=

15、ai/100%10;qian=ai/1000;ab=qian*10+ge;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 文件中。答案

16、解析:int i,j,t,ge,shi,bai,qian,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/10

18、0%10;qian=ai/1000;ab=qian*10+shi;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

20、;shi=ai/10%10;bai=ai/100%10;qian=ai/1000;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(新十

21、位数的 2 位数字是原四位数的个位数字,新 2 位数字的个位数是原四位数的千位数字)以及把十位数字和百位数字组成另一个新的十位数 cd(新十位数的十位数字是原四位数的百位数字,新 2 位数的个位数字是原四位数的十位数字)如果新组成两个十位数均为偶数且至少有一个能被 9 整除,且两个新十位数字均不为 0,则将满足此条件的四位数字按从大到小的顺序存入数组 b 中,并计算满足上述条件的四位数的个数 cnt,最后调用函数writeDAT()中,把结果 cnt 及数组 b 中符合条件的四位数输出到 outdat 文件中。答案解析:int i,j,t,ge,shi,bai,qian,ab,cd;for(i

22、=0;i200;i+)ge=ai%10;shi=ai/10%10;bai=ai/100%10;qian=ai/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 99 4.已知数据文件 INDAT 中有 300 个四位数,并已调用函数 readDAT(),把这些数存入数组 a中,请编制一函数 jsv

23、alue(),其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数 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 su

24、m2+=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;double sum1=

25、0,sum2=0;for(i=0;i0)cnt+;sum1+=ai;else sum2+=ai;pjz1=sum1/cnt;pjz2=sum2/(300-cnt);96.已知数据文件 INDAT 中有 300 个四位数,并已调用函数 readDAT(),把这些数存入数组 a中,请编制一函数 jsvalue(),其功能是:千+个=百+十数的个数 cnt,再求出满足所有满足条件的四位数的平均值 pjz1,以及所有不满足此条件的四位数的平均值 pjz2,最后调用函数writedat()把结果 cnt.pjz1,pjz2 输出到 OUTDAT 文件。答案解析:int i,ge,shi,bai,qian

26、;double sum1=0,sum2=0;for(i=0;i0 数的个数 cnt,再求出满足所有满足条件的四位数的平均值 pjz1,以及所有不满足此条件的四位数的平均值 pjz2,最后调用函数writedat()把结果 cnt.pjz1,pjz2 输出到 OUTDAT 文件。答案解析:int i,ge,shi,bai,qian;double sum1=0,sum2=0;for(i=0;i0)cnt+;sum1+=ai;else sum2+=ai;pjz1=sum1/cnt;pjz2=sum2/(300-cnt);连续大于或小于前面或后面 5 个数 5.已知文件 INDAT 中存有 200 个

27、四位数,并已调用读函数 readdat()把这些数存入数组 a 中,请编制函数 jsval(),其功能是依次从数组 a 中取出一个四位数,如果该四位数连续小于该四位数以后的 5 个数,且该数是偶数(该四位数以后不满 5 个数不统计)则统计出满足此条件的数的个数cnt,并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writedat()把结果 cnt 及数组 b 中符合条件的四位数输出到 out.dat 文件中。答案解析:int i,j,t;for(i=0;i195;i+)if(aiai+1&aiai+2&aiai+3&aiai+4&aiai+5&ai%2=0)bcnt=ai;cnt+

28、;for(i=0;icnt-1;i+)for(j=i+1;jbj)t=bi;bi=bj;bj=t;35.已知文件 INDAT 中存有 200 个四位数,并已调用读函数 readdat()把这些数存入数组 a 中,请编制函数 jsval(),其功能是依次从数组 a 中取出一个四位数,如果该四位数连续大于该四位数以前的 5 个数,且该数是偶数(该四位数以后不满 5 个数不统计)则统计出满足此条件的数的个数cnt,并把这些四位数按从大到小的顺序存入数组b中,最后调用写函数writedat()把结果 cnt 及数组 b 中符合条件的四位数输出到 out.dat 文件中。答案解析:int i,j,t;f

29、or(i=5;iai-1&aiai-2&aiai-3&aiai-4&aiai-5&ai%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;65.已知文件 INDAT 中存有 200 个四位数,并已调用读函数 readdat()把这些数存入数组 a中,请编制函数 jsval(),其功能是依次从数组 a 中取出一个四位数,如果该四位数连续大于该四位数以前的 5 个数,且该数是奇数(该四位数以后不满 5 个数不统计),该数必须能被 7 整除,则统计出满足此条件的数的个数 cnt,并把这些四位数按从

30、大到小的顺序存入数组b 中,最后调用写函数 writedat()把结果 cnt 及数组 b 中符合条件的四位数输出到 out.dat文件中。答案解析:int i,j,t;for(i=5;iai-1&aiai-2&aiai-3&aiai-4&aiai-5&ai%2!=0&ai%7=0)bcnt=ai;cnt+;for(i=0;icnt-1;i+)for(j=i+1;jcnt;j+)if(bibj)t=bi;bi=bj;bj=t;100.已知文件 INDAT 中存有 200 个四位数,并已调用读函数 readdat()把这些数存入数组 a中,请编制函数 jsval(),其功能是依次从数组 a 中取

31、出一个四位数,如果该四位数连续大于该四位数以后的 5 个数,且该数是奇数(该四位数以后不满 5 个数不统计),则统计出满足此条件的数的个数 cnt,并把这些四位数按从小到大的顺序存入数组 b 中,最后调用写函数 writedat()把结果 cnt 及数组 b 中符合条件的四位数输出到 out.dat 文件中。答案解析:int i,j,t;for(i=0;iai+1&aiai+2&aiai+3&aiai+4&aiai+5&ai%2!=0)bcnt=ai;cnt+;for(i=0;icnt-1;i+)for(j=i+1;jbj)t=bi;bi=bj;bj=t;数值排序 6 36 6在文件 IN.D

32、AT 中有 200 个正整数,且每个数均在 1000 至 9999 之间,函数 ReadDAT()的功能是读取这 200 个书存放到数组 aa 中,请编制函数 Jsvalsort()该函数的功能是:要求按每个数的后三位的大小进行降序排列,将排序的前 10 个数存入数组 bb 中,如果出现后 3位相等的数。则对这些数按原始 4 位数据进行升序排列,最后调用函数 writeDAT()把结果bb 输入到文件 OUT.DAT 中。答案解析:int i,j,t;for(i=0;i199;i+)for(j=i+1;j200;j+)if(aai%1000aaj)t=aai;aai=aaj;aaj=t;for

33、(i=0;i10;i+)bbi=aai;36.在文件 IN.DAT 中有 200 个正整数,且每个数均在 1000 至 9999 之间,函数 ReadDAT()的功能是读取这 200 个书存放到数组 aa 中,请编制函数 Jsvalsort()该函数的功能是:要求按每个数的后三位的大小进行升序排列,将排序的前 10 个数存入数组 bb 中,如果出现后 3位相等的数。则对这些数按原始 4 位数据进行降序排列,最后调用函数 writeDAT()把结果bb 输入到文件 OUT.DAT 中。答案解析:int i,j,t;for(i=0;i199;i+)for(j=i+1;jaaj%1000)t=aai

34、;aai=aaj;aaj=t;else if(aai%1000=aaj%1000)if(aaiaaj)t=aai;aai=aaj;aaj=t;for(i=0;i10;i+)bbi=aai;保留小数点的位数 13 47 48 13在主函数中编写成粗,需要定义变量赋予初始值(注意空白处)。请编制程序,要求:将文件 IN.DAT 中的 200 个整数读入数组 XX 中,求出数组 XX 中最大数 max 及最大数的个数 cnt 和数组 xx 中值能被 3 整除或被 7 整除的数的算术平均值 pj(保留两位小数)。结果max,cnt,pj 输入到 cntDAT 中。答案解析:cnt=0;max=xx0;

35、k=0;for(i=0;i200;i+)if(maxxxi)max=xxi;for(i=0;i200;i+)if(max=xxi)cnt+;for(i=0;i200;i+)if(xxi%3=0|xxi%7=0)k+;j+=xxi;pj=(float)(j*100/k)/100;47请编制程序,要求:将文件 IN.DAT 中的 200 个整数读入数组 XX 中,求出数组 XX 中奇数的个数 cnt1 及偶数的个数 cnt2,以及数组 xx 下标为偶数的元素值的算术平均值 pj(保留两位小数)。结果 cnt1,cnt2,pj 输入到 cntDAT 中。答案解析:for(i=0,j=0,cnt1=0

36、,cnt2=0;i200;i+)if(xxi%2!=0)cnt1+;else cnt2+;if(i%2=0)k+;j+=xxi;pj=(float)(j*100/k)/100;48请编制程序,要求:将文件 IN.DAT 中的 200 个整数读入数组 XX 中,求出数组 XX 中奇数的个数 cnt1 及偶数的个数 cnt2,以及数组 xx 下标为奇数的元素值的算术平均值 pj(保留两位小数)。结果 cnt1,cnt2,pj 输入到 cntDAT 中。字符串替代 14 37 43 51 52 53 64 67 93 94 14.函数 ReadDAT()的功能是实现从文件 ENG.IN 中读取一篇英

37、文文章,存入到字符串数组xx 中,请编制函数 encryChar(),按给定的替代关系对数组 xx 中的所有字符进行替代,结果仍有数组 xx 对应的位置上,最后调用函数 writeDAT(),把结果输出到文件 PS.DAT 中,替代关系:f(p)=p*11 mod 256(p 是数组 xx 中某一个字符的 ASCII 值,f(p)是计算后新字符的ASCII 值),如果计算后 f(p)的值小于等于 32 或对应的字符是大写字母,则该字符不变,否则将 f(p)所对应的字符进行替代 答案解析:int i,j,str;char fp;for(i=0;imaxline;i+)str=strlen (xx

38、i);for(j=0;jstr;j+)fp=xxij*11%256;if(fp=A&fp=Z)continue;else xxij=fp;37.函数 ReadDAT()的功能是实现从文件 ENG.IN 中读取一篇英文文章,存入到字符串数组xx 中,请编制函数 encryChar(),按给定的替代关系对数组 xx 中的所有字符进行替代,结果仍有数组 xx 对应的位置上,最后调用函数 writeDAT(),把结果输出到文件 PS.DAT 中,替代关系:f(p)=p*13 mod 256(p 是数组 xx 中某一个字符的 ASCII 值,f(p)是计算后新字符的ASCII 值),如果计算后 f(p)

39、的值小于等于 32 或其 ASCII 值是偶数,则该字符不变,否则将f(p)所对应的字符进行替代。答案解析:int i,j,str;char fp;for(i=0;imaxline;i+)str=strlen(xxi);for(j=0;jstr;j+)fp=xxij*13%256;if(fp=32|fp%2=0)continue;else xxij=fp;43.函数 ReadDAT()的功能是实现从文件 ENG.IN 中读取一篇英文文章,存入到字符串数组xx 中,请编制函数 encryChar(),按给定的替代关系对数组 xx 中的所有字符进行替代,结果仍有数组 xx 对应的位置上,最后调用函

40、数 writeDAT(),把结果输出到文件 PS.DAT 中,替代关系:f(p)=p*11 mod 256(p 是数组 xx 中某一个字符的 ASCII 值,f(p)是计算后新字符的ASCII 值),如果原字符是数字字符 0 至 9 或计算后 f(p)的值小于等于 32,则该字符不变,否则将 f(p)所对应的字符进行替代。答案解析:int i,j,str;char fp;for(i=0;imaxline;i+)str=strlen(xxi);for(j=0;j=0&xxij=9)|fp=32)continue;else xxij=fp;51 题与 37 是一个类型 52 题与 43 是一个类型

41、 64 题与 37 是一个类型 其中奇数(%2!=0)67 题与 14 是一个类型 93 题 94 题 字符串排序 19 33 34 58 59 69 19.函数 ReadDAT()的功能是实现从文件 IN,DAT 中读取一篇英文文章存入到字符串数组 xx中,请编制函数 SortcharDAT(),该函数的功能是,以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串组 xx 中,最后调用函数 WriteDAT()把结果 xx输出到文件 out.DAT 中。答案解析:int i,j,k,str;char t;for(i=0;imaxline;i+)str=strlen(xx

42、i);for(j=0;jstr-1;j+)for(k=j+1;kstr;k+)if(xxijxxik)t=xxij;xxij=xxik;xxik=t;33.函数 ReadDAT()的功能是实现从文件 IN,DAT 中读取一篇英文文章存入到字符串数组 xx中,请编制函数 SortcharDAT(),该函数的功能是,以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串组 xx 中,最后调用函数 WriteDAT()把结果 xx输出到文件 out.DAT 中。答案解析:int i,j,k,str;char t;for(i=0;imaxline;i+)str=strlen(xxi

43、);for(j=0;jstr-1;j+)for(k=j+1;kxxik)t=xxij;xxij=xxik;xxik=t;34.函数 ReadDAT()的功能是从文件 IN.DAT 中读取 20 行数据存放到字符串组 xx 中(每行字符串长度均小于 80);请编制函数 JSsort();该函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组 xx 中,最后调用函数writeDAT()把结果 xx 输出到文件 OUT.DAT 中。条件:从字符串中间一分为二,左边部分按字符的 ASCII 值降序排序,排序后左边部分与右边部分按例子进行交换,如果原字符串长度为

44、奇数,则最中间的字符不参加处理,字符仍放在原位置上。答案解析:int i,j,k,str,h;char t;for(i=0;i20;i+)str=strlen(xxi);h=str/2;for(j=0;jh-1;j+)for(k=j+1;kh;k+)if(xxij=0;j-,k-)t=xxij;xxij=xxik;xxik=t;58.函数 ReadDAT()的功能是从文件 IN.DAT 中读取 20 行数据存放到字符串组 xx 中(每行字符串长度均小于 80);请编制函数 JSsort();该函数的功能是:以行为单位对字符串变量的下标为奇数位置上的字符按其 ASCII 值从小到大的顺序进行排列

45、,排序后的结果仍按按行重新存入字符串组 xx 中,最后调用函数 WriteDAT()把结果 xx 输出到文件 out.DAT 中。答案解析:int i,j,k,str;char t;for(i=0;i20;i+)str=strlen(xxi);for(j=1;jstr-2;j=j+2)for(k=j+2;kxxik)t=xxij;xxij=xxik;xxik=t;59.函数 ReadDAT()的功能是从文件 IN.DAT 中读取 20 行数据存放到字符串组 xx 中(每行字符串长度均小于 80);请编制函数 JSsort();该函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的

46、结果仍按行重新存入字符串数组 xx 中,最后调用函数writeDAT()把结果 xx 输出到文件 OUT.DAT 中。条件:从字符串中间一分为二,左边部分按字符的 ASCII 值降序排序,右边部分按字符的 ASCII 值升序排序,如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。答案解析:int i,j,k,str,half;char t;for(i=0;i20;i+)str=strlen(xxi);half=str/2;for(j=0;jhalf-1;j+)for(k=j+1;khalf;k+)if(xxijxxik)t=xxij;xxij=xxik;xxik=t;if(

47、str%2=1)half+;for(j=half;jstr-1;j+)for(k=j+1;kxxik)t=xxij;xxij=xxik;xxik=t;69.函数 ReadDAT()的功能是从文件 IN.DAT 中读取 20 行数据存放到字符串组 xx 中(每行字符串长度均小于 80);请编制函数 JSsort();该函数的功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组 xx 中,最后调用函数writeDAT()把结果 xx 输出到文件 OUT.DAT 中。条件:从字符串中间一分为二,左边部分按字符的 ASCII 值升序排序,排序后左边部分与右边部分按例

48、子进行交换,如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。答案解析:int i,j,k,str,h;char t;for(i=0;i20;i+)str=strlen(xxi);h=str/2;for(j=0;jh-1;j+)for(k=j+1;kxxik)t=xxij;xxij=xxik;xxik=t;for(j=h-1,k=str-1;j=0;j-,k-)t=xxij;xxij=xxik;xxik=t;将对应的字符更改为下一个或上一个字符 15 54 15.函数 ReadDAT()的功能是实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组xx 中,请编制函数

49、 convertcharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母 z,则改成字母 a,大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变,把自己处理的字符串仍按行重新存入字符串数串 xx 中,最后调用函数 writeDAT(),把结果 xx 输入到文件 out.DAT 中 答案解析:int i,j,str;for(i=0;imaxline;i+)str=strlen(xxi);for(j=0;j=a&xxij=z)if(xxij=z)xxij=a;else xxij+=1;54.函数 ReadDAT()的功能是实现从文件 IN.DAT

50、 中读取一篇英文文章存入到字符串数组xx 中,请编制函数 convertcharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母 a,则改成字母 z,大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变,把已处理的字符串仍按行重新存入字符串数串 xx 中,最后调用函数 writeDAT(),把结果 xx 输入到文件 out.DAT 中.答案解析:int i,j,str;for(i=0;imaxline;i+)str=strlen(xxi);for(j=0;j=a&xxij=z)if(xxij=a)xxij=z;else xxij-=1;注:上一

51、个字母用-下一个字母用+函数调用与素数 45 50 87 88 50 题:已知数据文件 IN.DAT中存有 300 个四位数,并已调用函数 readdat(),把这些数存入数组 a 中,请编制一函数 jsvalue(),其功能是:求出这些四位数是素数的 cnt,再求出所有满足此条件的四位数的平均值 pjz1,以及不满足的 pjz2,再调用函数 writeDAT 把结果cnt,pjz1,pjz2输出到 outDAT中。答案解析:int i;double sum1=0,sum2=0;for(i=0;i300;i+)if(isP(ai)cnt+;sum1+=ai;else sum2+=ai;pjz1

52、=sum1/cnt;pjz2=sum2/(300-cnt);87.下列程序的功能是:找出所有 100 以内(含 100)满足 I,I+4,I+10 都是素数的整数 I(I+10也是在 100 以内)的个数 cnt,以及这些 I 之和 sum,请编制函数 countvalue()实现程序,最后调用函数 writeDAT()把结果 cnt 和 sum输出到 out.dat中(数组 1 不是素数)答案解析:int i;for(i=2;i90;i+)if(isPrime(i)&isPrime(i+4)&isPrime(i+10)cnt+;sum+=i;88.已知数据文件 IN.DAT中存有 300 个

53、四位数,并已调用函数 readdat(),把这些数存入数组 a 中,请编制一函数 jsvalue(),其功能是:求出这些四位数是素数的 cnt,再把这些满足条件的四位数存入数组 b 中,然后对数组中的四位数按从小到大的顺序进行排序,最后函数 writeDAT()把数组 b 中的输出到 outDAT文件中。答案解析:int i,j,t;for(i=0;i300;i+)if(isP(ai)bcnt=ai;cnt+;for(i=0;icnt-1;i+)for(j=i+1;jbj)t=bi;bi=bj;bj=t;金额问题与结构体 1 21 22 23 61 71-75 11 85 1.已知在文件 IN

54、.DAT中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位)产品名称 mc(字符型 10 位)单价 dj(整型)数量 sl(整型)金额 je(长整型)n 部分组成,其中金额=单价*数量,函数 ReadDAT()的功能是读取这 100 个销售记录并存入结构数组 sell中,请编制函数 sortDAT(),其功能是要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组 sell中,最后调用函数 wrireDAT()把结果输入到 outDAT中。答案解析:int i,j;PRO t;for(i=0;i99;i+)for(j

55、=i+1;j0)t=selli;selli=sellj;sellj=t;else if(strcmp(selli.mc,sellj.mc)=0)if(selli.jesellj.je)t=selli;selli=sellj;sellj=t;21.已知在文件 IN.DAT中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位)产品名称 mc(字符型 10 位)单价 dj(整型)数量 sl(整型)金额 je(长整型)几部分组成,其中金额=单价*数量,函数 ReadDAT()的功能是读取这 100 个销售记录并存入结构数组 sell中,请编制函数 sortDAT(),其功能

56、是要求:按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组 sell中,最后调用函数 wrireDAT()把结果输入到 outDAT中。答案解析:int i,j;PRO t;for(i=0;i99;i+)for(j=i+1;j100;j+)if(strcmp(selli.mc,sellj.mc)0)t=selli;selli=sellj;sellj=t;else if(strcmp(selli.mc,sellj.mc)=0)if(selli.jesellj.je)t=selli;selli=sellj;sellj=t;22.已知在文件 IN.DAT

57、中存有 100 个产品销售记录,每个产品销售记录由产品代码 dm(字符型 4 位)产品名称 mc(字符型 10 位)单价 dj(整型)数量 sl(整型)金额 je(长整型)几部分组成,其中金额=单价*数量,函数 ReadDAT()的功能是读取这 100 个销售记录并存入结构数组 sell中,请编制函数 sortDAT(),其功能是要求:按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组 sell中,最后调用函数 wrireDAT()把结果输入到 outDAT中。答案解析:int i,j;PRO t;for(i=0;i99;i+)for(j=i+1;

58、j0)t=selli;selli=sellj;sellj=t;else if(strcmp(selli.dm,sellj.dm)=0)if(selli.jesellj.je)t=selli;selli=sellj;sellj=t;正整数操作 12 46 89 90 12.已知文件 IN.DAT中存有若干个(个数200)四位数的正整数,函数 ReadDAT()的功能是读取若干个正整数并存入数组 xx 中,请编制函数 Calvalue(),其功能要求 1)求出该文件中共有多少个正整数 totNum;2)求出这些数右移一位数,产后的新数是偶数的数的个数totcnt,以及满足此条件的这些数(右移前的值

59、)的算术平均数,totpjz,最后调用函数writeDAT()把所求的结果输出到文件 out.DAT 中。答案解析:int i,xs;double sum=0;for(i=0;i0)totNum+;xs=(xxi1);if(xs%2=0)totCnt+;sum+=xxi;totPjz=sum/totCnt;46.已知文件 IN.DAT 中存有若干个(个数200)四位数的正整数,函数 ReadDAT()的功能是读取若干个正整数并存入数组 xx 中,请编制函数 Calvalue(),其功能要求 1)求出该文件中共有多少个正整数 totNum;2)求出这些数右移一位数,产后的新数是奇数的数的个数to

60、tcnt,以及满足此条件的这些数(右移前的值)的算术平均数,totpjz,最后调用函数writeDAT()把所求的结果输出到文件 out.DAT 中。答案解析:int i,xs;double sum=0;for(i=0;i0)totNum+;xs=(xxi1);if(xs%2!=0)totCnt+;sum+=xxi;totPjz=sum/totCnt;89.已知文件 IN.DAT 中存有若干个(个数200)四位数的正整数,函数 ReadDAT()的功能是读取若干个正整数并存入数组 xx 中,请编制函数 Calvalue(),其功能要求 1)求出该文件中共有多少个正整数 totNum;2)求出这

61、些数中的各位数字之和是奇数的个数 totcnt,以及满足此条件的这些数的算术平均数,totpjz,最后调用函数 writeDAT()把所求的结果输出到文件 out.DAT 中。答案解析:int i,ge,shi,bai,qian;for(i=0;i0)totNum+;ge=xxi%10;shi=xxi%100/10;bai=xxi%1000/100;qian=xxi/1000;if(ge+shi+bai+qian)%2!=0)totCnt+;totPjz+=xxi;totPjz/=totCnt;90.已知文件 IN.DAT 中存有若干个(个数200)四位数的正整数,函数 ReadDAT()的功

62、能是读取若干个正整数并存入数组 xx 中,请编制函数 Calvalue(),其功能要求 1)求出该文件中共有多少个正整数 totNum;2)求出这些数中的各位数字之和是偶数的个数 totcnt,以及满足此条件的这些数的算术平均数,totpjz,最后调用函数 writeDAT()把所求的结果输出到文件 out.DAT 中。答案解析:int i,ge,shi,bai,qian;for(i=0;i0)totNum+;ge=xxi%10;shi=xxi%100/10;bai=xxi%1000/100;qian=xxi/1000;if(ge+shi+bai+qian)%2=0)totCnt+;totPj

63、z+=xxi;totPjz/=totCnt;选票问题 20 60 70 20.对 10 个候选人进行选举,现有一个 100 条记录的选票数据文件 INDAT,其数据存放的格式时每条记录的长度均为 10 位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推每一位均为字符字符 0 或 1,表示此人被选中,若一张选票选中人数小于 5 个人时则被认为无效的选票,给定函数 ReadDat()的功能是把选票数据读入到字符串数组 xx 中。请编制函数 CountsRs(),来统计每个人的选票数,并把得票数依次存入 yy0 到yy9 中最后调用函数 writedat()把结果 yy 输出到

64、文件 out.dat中。答案解析:int i,j,cnt;for(i=0;i10;i+)yyi=0;for(i=0;i100;i+)cnt=0;for(j=0;j5)for(j=0;j10;j+)if(xxij=1)yyj+;60.对 10 个候选人进行选举,现有一个 100 条记录的选票数据文件 INDAT,其数据存放的格式时每条记录的长度均为 10 位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推每一位均为字符字符 0 或 1,表示此人被选中,0 表示此人未被选中,全选或全不选则被认为是无效的选票,给定函数 ReadDat()的功能是把选票数据读入到字符串数组 xx

65、 中。请编制函数 CountsRs(),来统计每个人的选票数,并把得票数依次存入 yy0到 yy9 中最后调用函数 writedat()把结果 yy 输出到文件 out.dat中。答案解析:int i,j,cnt;for(i=0;i10;i+)yyi=0;for(i=0;i100;i+)cnt=0;for(j=0;j10;j+)if(xxij=1)cnt+;if(cnt!=0&cnt!=10)for(j=0;j10;j+)if(xxij=1)yyj+;70.对 10 个候选人进行选举,现有一个 100 条记录的选票数据文件 INDAT,其数据存放的格式时每条记录的长度均为 10 位,第一位表示

66、第一个人的选中情况,第二位表示第二个人的选中情况,依次类推每一位均为字符字符 0 或 1,表示此人被选中,若一张选票选中人数大于 5 个人时则被认为无效的选票,给定函数 ReadDat()的功能是把选票数据读入到字符串数组 xx 中。请编制函数 CountsRs(),来统计每个人的选票数,并把得票数依次存入 yy0到 yy9 中最后调用函数 writedat()把结果 yy 输出到文件 out.dat中。答案解析:int i,j,cnt;for(i=0;i10;i+)yyi=0;for(i=0;i100;i+)cnt=0;for(j=0;j10;j+)if(xxij=1)cnt+;if(cnt=5)for(j=0;j10;j+)if(xxij=1)yyj+;字符串的左移与右移 16 17 68 79 左移 16.函数 Readdat()的功能是实现从文件 IN.DAT 中读取一篇英文文章存入到字符串数组 xx中,请编制函数 strcharJL()该函数的功能是:以行为单位把字符串中所有字符的 ASCII 值右移 4 位,如果左移后,其字符的 ASCII 值小于等于 32 或大于 100

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!