计算机三级试题.pdf
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《计算机三级试题.pdf》由会员分享,可在线阅读,更多相关《计算机三级试题.pdf(48页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录的产品代码dm(字符型4位)、产品名称me(字符型10位)、单价dj(整型)、数量si(整型)、金额je(长整型)几部分组成。其中:金额=单价*数量。函数readDat。的功能是读取这100个销售记录并存入结构数组sell中。请编制函数sortDatO,其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入机构数组sell中,最后调用函数writeDatO把结果输出到文件OUT.DAT中。注意:部分源程序已给出。请勿改动主函数main。、读函数ReadDat。和写函数writeD
2、at。的内容。#include#include#include#include#define MAX 100typedef struct(char dm5;char mcll;intdj;int si;long je;PRO;PRO sellMAX;void readDat();void writeDat。;void sortDat()int ij;PRO temp;for(i=0;i99;i+)for(j=i+l;j0)(temp=selli;selli=sellj;sellj=temp;)else if(stremp(selli.mc9sellj.nic)=0)if(selli.jesel
3、lj.je)temp=selli;selli=sellj;sellj=temp;)void main()memset(seH,0,sizeof(sell);readDat();sortDat();writeDat();void readDat()FILE*fp;char str80,chll;inti;fp=fopen(nIN.DATn,Hrn);for(i=0;i100;i+)(fgets(str,80,fp);memcpy(selli.dm,str,4);memcpy(selli.mc,str+4,10);memcpy(c h,str+14,4);ch4=0;selli.dj=atoi(c
4、h);memcpy(ch,str+18,5);ch5=0;selli.sl=atoi(ch);selli.je=(long)selli.dj*selli.sl;)fclose(fp);)void writeDat()(FILE*fp;inti;fp=fopen(HOUT.DAT,nwH);for(i=0;i100;i+)(fprintf(fp,H%s%s&4d%5d%10dnH,selli.dm9selli.mc9selli.dj,selli.shselli.je);fclose(fp);)2.已知数据文件IN.DAT中存有300个四位数,并已调用读函数readDat。把这些数存入数组a中.请
5、编制一函数jsValue。,其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数ent,再把所有满足条件的四位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序,最后调用写函数writeDat。把数组b中的数输出到OUT.DAT文件.例如:6712,6+2=7+1,则该数满足条件存入数组b中,且个数cnt=cnt+l8129,8+92+1,则该数不满足条件忽略.注意:部分源程序已给出。程序中已定义数组:a 3 0 0,已定义变量:ent请勿改动主函数main。、读函数ReadDat。和写函数writeDat。的内容。#include int a300,b3
6、00,cnt=0;void readDat();void writeDat();void jsValue()(intij;int al,a2,a3,a4;int temp;for(i=0;i300;i+)|a4=ai/1000;a3=ai%1000/100;a2=ai%100/10;al=ai%10;if(a4+al=a2+a3)(bcnt=ai;cnt+;)for(i=0;icnt-l;i+)for(j=i+l;jbj)(temp=bi;bi=bj;bj=temp;)void main()(int i;readDat();jsVaiue();writeDat();printf(cnt=%dn
7、,cnt);for(i=0;icnt;i+)printf(b%d=%dn,i,bi);void readDat()(FILE*fp;int i;fp=fopen(IN.DAT,r);for(i=0;i300;i+)fscanf(fp,%d,&ai);fclose(fp);void writeDat()FILE*fp;inti;fp=fopen(OUT.DAT,w);fprintf(fp,%dn,cnt);for(i=0;i=0且ab-cd=10且两个数均是奇数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cn to最后m
8、ain。函数调用写函数writeDat()把结果ent以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件PROG1.C文件中。程序中已定义数组:a200,b200,已定义变量:ent请勿改动数据文件IN.DAT中的任何数据、主函数main。、读函数readDat()和写函数writeDat。的内容。#include#define MAX 200int aMAX,bMAX,cnt=0;void writeDat();void jsValue()intij;int al9a29a39a4;int temp;int ab9cd;for(i=0;i=0&(ab-cd)=1
9、0&ab%2=l&cd%2=l&a4!=0&al!=0)bcnt=ai;cnt+;)for(i=0;icnt-l;i+)for(j=i+l;jcnt;j+)if(bibU)(temp=bi;bi=bj;b昨 temp;void readDat()(inti;FILE*fp;fp=fopen(IN.DAT,r);for(i=0;iMAX;i+)fscanf(fp,%d,&ai);fclose(fp);)void main()(int i;readDat();jsValue();printf(满足条件的数=%dn”,cnt);for(i=0;icnt;i+)printf(%d,bi);printf
10、(n);writeDat();void writeDat()(FILE*fp;int i;fp=fopen(OUT.DAT,w);fprintf(fp,%dn,cnt);for(i=0;i0,则该数满足条件计算平均值p jz L且个数cnt=cnt+l。9812,9-8-1-20,则该数不满足条件计算平均值pjz2.注意:部分源程序已给出。程序中已定义数组:a 3 0 0,已定义变量:ent请勿改动主函数main。、读函数ReadDat。和写函数writeDat。的内容。#include int a300,cnt=0;double pjzl=0.0,pjz2=0.0;void readDat(
11、);void writeDat();void jsValue()(int i,n=0;int al,a2,a3,a4;for(i=0;i0)cnt+;pjzl+=ai;)pjzl/=cnt;pjz2/=n;void main()(readDat();jsValue();writeDatQ;printf(cnt=%dn满足条件的平均值pjzl=%7.21fn不满足条件的平均值pjz2=%7.2lfnM,cnt,pjzl,pjz2);)void readDat()(FILE*fp;inti;fp=fopen(nIN.DATH,HrH);for(i=0;i300;i+)fscanf(fp,H%d/&
12、ai);fclose(fp);)void writeDat()(FILE*fp;inti;fp=fopen(nOUT.DATH,HwM);fprintf(fp,H%dn%7.21fn%7.21fnH,cnt,pjzl,pjz2);fclose(fp);5.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat。把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该数连续大于该四位数以后的5个数且该数是奇数,则统计出满足此条件的个数en t,并把这些四位数按从小到大的顺序存入数组b中。并要计算满足上述条件的四位数的个数ent。最后
13、main。函数调用写函数writeDat()把结果ent以及数组b中符合条件的四位数输出到OUT.DAT文件中。注意:部分源程序存在文件PROG1.C文件中。程序中已定义数组:a200,b200,已定义变量:ento请勿改动数据文件IN.DAT中的任何数据、主函数main。、读函数readDat。和写函数writeDat。的内容。#include#define MAX 200int aMAX,bMAX,cnt=0;void writeDat。;void jsValue()int ij;int temp;for(i=0;iMAX-5;i+)if(ai%2!=0)(for(j=i+l;j=i+5;
14、j+)if(aiaj)break;if(j=i+6)(bcnt=ai;cnt+;)for(i=0;icnt-l;i+)for(j=i+l;jbj)(temp=bi;bi=b|j;bj=temp;void readDat()int i;FILE*fp;fp=fopen(IN.DAT,r);for(i=0;iMAX;i+)fscanf(fp,%d,&ai);fclose(fp);)void main()(inti;readDat();jsValue();printf(满足条件的数=%dn”,cnt);for(i=0;icnt;i+)printf(%d,bi);printf(n);writeDat(
15、);void writeDat()FILE*fp;int i;fp=fopen(OUT.DAT,w);fprintf(fp,%dn,cnt);for(i=0;icnt;i+)fprintf(fp,%dn,bi);fclose(fp);)6.在文件IN.D A T中有2 0 0个正整数,且每个数均在1000至9999之间。函数readDat。读取这2 0 0个数存放到数组a a中。请编制函数jsS o r t(),其函数的功能是:要求按每个数的后三位的大小进行降序排列,然后取出满足此条件的前1 0个数依次存入数组b中,如果后三位的数值相等,则按原先的数值进行升序排列。最后调用函数writeDat
16、。把结果b b输出到文件OUT.DAT中。例:处理前 9012 5099 6012 7025 8088处理后 5099 8088 7025 6012 9012注意:部分源程序已给出。请勿改动主函数main。、读数据函数ReadDat。和输出数据函数WriteDat()的内容。#include#include#include int aa200,bb10;void readDat();void writeDat();void jsSort()(in tij;int temp;for(i=0;i 199;i+)for(i=i+l;j200;j+)(if(aai%1000aaj)temp=aai;a
17、ai=aaj;aaj=temp;)for(i=0;i10;i+)bbi=aai;void main()(readDat();jsSort();writeDat();void readDat()FILE*in;int i;in=fopen(IN.DAT,r);for(i=0;i200;i+)fscanf(in,%d,&aai);fclose(in);void writeDat()(FILE*out;inti;out=fopen(OUT.DAT,w);system(CLS);for(i=0;i10;i+)printf(i=%d,%dn,i+l,bbi);fprintf(out,%dn,bbi);f
18、close(out);7.下列程序的功能是:计算出自然数S IX和N IN E,它们满足的条件是SIX+SIX+SIX=NINE+NINE的个数e n t,以及满足此条件所有的SIX与NINE的和sum。请编写函数countValue。实现程序的要求,最后调用函数writeDat。把结果ent和su m,输出到文件OUT.DAT中.其中S,I,X,N,E各代表一个十进制数字。注意:部分源程序已给出。请勿改动主函数main()的内容。#include int ent,sum;void writeDat();void countValue()(int ij;int s2;int n2,n3,n4;
19、for(i=100;i1000;i+)for(j=1000;j10000;j+)if(i*3=j*2)s2=i%100/10;n4=j/1000;n3=j%1000/100;n2=j%100/10;if(s2=n3&n2=n4)cnt+;sum+=i+j;void main()cnt=sum=0;count Value();printf(满足条件的个数=%dn,cnt);printf(满足条件所有的SIX与NINE的和=%dn”,sum);writeDat();void writeDat()FILE*fp;fp=fopen(nOUT.DATn,nwn);fprintf(fp J dn%dn 9
20、cnt9sum);fclose(fp);8.请编制函数ReadDat。实现从文件IN.D A T中读取1 0 0 0个十进制整数到数组x x中;请编制函数Compute。分别计算出x x中奇数的个数o d d,奇数的平均值a v e l,偶数的平均值a v e 2以及所有奇数的方差to tfc的值,最后调用函数WriteDat。把结果输出到OUT.DAT文件中。计算方差的公式如下:totfc=l/N (xxi-avel)2设N为奇数的个数,xxi为奇数,a v e l为奇数的平均值。原始数据文件存放的格式是:每行存放10个数,并用逗号隔开。(每个数均大于0且小于等于2000)注意:部分源程序已
21、给出。请勿改动主函数main。和输出数据函数writeDat。的内容。#include#include#include#define MAX 1000int xxMAX,odd=0,even=0;double avel=0.0,ave2=0.0,totfc=0.0;void writeDat(void);int readDat(void)(FILE*fp;int ij;if(fp=fopen(IN.DAT,r)=NULL)return 1;for(i=0;i100;i+)(for(j=0;j10;j+)fscanf(fp,%d,&xxi*10+j);fscanf(fp,nnn);if(feof
22、(fp)break;)fclose(fp);return 0;)void Compute(void)intint ttMAX;for(i=0;i1000;i+)if(xxi%2!=0)(odd+;avel+=xxi;ttodd-l=xxi;)else(even+;ave2+=xxi;)avel/=odd;ave2/=even;for(i=0;iodd;i+)totfc+=(tti-avel)*(tti-avel)/odd;void main()(int i;for(i=0;iMAX;i+)xxi=0;if(readDat()(printf数据文件IN.DAT不能打开!007n”);return
23、;Compute();printf(MODD=%dnAVEl=%fnAVE2=%fnTOTFC=%fnu,odd,avel,ave2,totfc);writeDat();void writeDat(void)(FILE*fp;fp=fopen(nOUT,DATn,nwH);fprintf(fp,n%dn%lfn%lfn%lfn n,odd,a ve 1,a ve2,totfc);fclose(fp);9.三位整数(1 0 0至999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如144、676等。请编制函数实现此功能,满足该条件的整数的个数通过所编制的函
24、数返回。最后调用函数writeDat。把结果输出到文件OUT.DAT中。注意:部分源程序已给出。请勿改动主函数main。和写函数writeDat。的内容。int jsValue(int bb)(int ij;int cnt=O;int a3,a2,al;for(i=100;i=999;i+)for(j=l O;jsqrt(i);j+)if(i=j*j)a3=i/100;a2=i%100/10;al=i%10;if(a3=a211a3=al Ila2=a 1)(bbcnt=i;cnt+;)return ent;1 0.下列程序的功能是:选取出100以上1000以内所有个位数字与十位数字之和被10
25、除所得余数恰是百位数字的素数(如293)。计算并输出上述这些素数的个数ent以及这些素数值的和sum。请编写函数countVahie()实现程序要求,最后调用函数writeDat()把结果ent和sum输出到文件OUT.DAT中.注意:部分源程序已给出。请勿改动主函数main。和函数writeDat。的内容。#include int ent,sum;void writeDat();void countValue()(int ij;int a39a29al;int half;for(i=101;i1000;i+)a3=i/100;a2=i%100/10;al=i%10;if(a3=(a2+al)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 三级 试题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内