ImageVerifierCode 换一换
格式:DOCX , 页数:26 ,大小:24.97KB ,
资源ID:3500253      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3500253.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(全国计算机等级考试三级C语言上机题6180.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

全国计算机等级考试三级C语言上机题6180.docx

1、全国计算机等级考试三级C语言上机题6180* 题目61已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT2.DAT中。 部分源程序存在文件prog1.c中

2、。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include #include #define MAX 100 typedef struct char dm5; /*产品代码*/ char mc11; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ PRO; PRO sellMAX; void ReadDat(); void WriteDat(); void SortDat() int i,j; PRO xy; for(

3、i=0;i99;i+) for(j=i+1;jsellj.je|selli.je=sellj.je&strcmp(selli.dm,sellj.dm)0) xy=selli; selli=sellj; sellj=xy; void main() memset(sell,0,sizeof(sell); ReadDat(); SortDat(); WriteDat(); void ReadDat() FILE *fp; char str80,ch11; int i; fp=fopen(IN.DAT,r); for(i=0;i100;i+) fgets(str,80,fp); memcpy(sell

4、i.dm,str,4); memcpy(selli.mc,str+4,10); memcpy(ch,str+14,4);ch4=0; selli.dj=atoi(ch); memcpy(ch,str+18,5);ch5=0; selli.sl=atoi(ch); selli.je=(long)selli.dj*selli.sl; fclose(fp); void WriteDat(void) FILE *fp; int i; fp=fopen(OUT2.DAT,w); for(i=0;i100;i+) printf(%s %s %4d %5d %5dn, selli.dm,selli.mc,s

5、elli.dj,selli.sl,selli.je); fprintf(fp,%s %s %4d %5d %5dn, selli.dm,selli.mc,selli.dj,selli.sl,selli.je); fclose(fp); * 题目62 函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS2.DAT中。 替代关系:f(p)=p*13 mod 256(p是数组中某一个字符的ASC

6、II值,f(p)是计算后新字符的ASCII值),如果计算后f(p)值小于等于32或其ASCII值是偶数,则该字符不变,否则将f(p)所对应的字符进行替代。 部分源程序存在文件prog1.c中。原始数据文件存放的格式是:每行的宽度均小于80个字符。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。 #include #include #include #include unsigned char xx5080; int maxline=0;/*文章的总行数*/ int ReadDat(void); void WriteDat(void); voi

7、d encryptChar() int i,j; for(i=0;iMAXLINE;I+) for(j=0;jSTRLEN(XXI);J+) if(xxij*13%256=32|(xxij*13%256)%2=0) continue; else xxij=xxij*13%256; void main() clrscr(); if(ReadDat() printf(数据文件ENG.IN不能打开!n007); return; encryptChar(); WriteDat(); int ReadDat(void) FILE *fp; int i=0; unsigned char *p; if(fp

8、=fopen(eng.in,r)=NULL) return 1; while(fgets(xxi,80,fp)!=NULL) p=strchr(xxi,n); if(p)*p=0; i+; maxline=i; fclose(fp); return 0; void WriteDat(void) FILE *fp; int i; fp=fopen(ps2.dat,w); for(i=0;iMAXLINE;I+) printf(%sn,xxi); fprintf(fp,%sn,xxi); fclose(fp); * 题目63程序prog1.c的功能是:把 s 字符串中的所有字符左移一个位置,串中的

9、第一个字符移到最后。请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( )把结果输出到bc2.out文件中。 例如:s字符串中原有内容为:Mn.123xyZ,则调用该函数后,结果为:n.123xyZM。 注意:部分源程序存在文件prog1.c文件中。 请勿改动主函数main( )和输出数据函数readwriteDAT()的内容。 #include #include #define N 81 void readwriteDAT(); void chg(char *s) int i; char ch=*s; for(i=0;iSTRLEN(S)-1;I+)

10、si=si+1; sstrlen(s)-1=ch; main() char a N ; clrscr(); printf(Enter a string : ); gets(a); printf(The original string is : ); puts(a); chg(a); printf(The string after modified : ); puts(a); readwriteDAT(); void readwriteDAT() int i ; char aN ; FILE *rf, *wf ; rf = fopen(bc2.in, r) ; wf = fopen(bc2.ou

11、t, w) ; for(i = 0 ; i 50 ; i+) fscanf(rf, %s, a) ; chg(a) ; fprintf(wf, %sn, a) ; fclose(rf) ; fclose(wf) ; * 题目64 下列程序的功能是:找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。请编写函数countValue()实现程序要求的功能,最后调用函数writeDat()把结果cnt和sum输出到文件out.dat中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数writ

12、eDat()的内容。 #include int cnt,sum; int isPrime(int m) int i; for(i=2; i if(m % i =0) return 0 ; return 1; void countValue() int i; for(i=2;i=90;i+) if(isPrime(i)&isPrime(i+4)&isPrime(i+10) cnt+;sum+=i; void main() cnt=sum=0; countValue(); printf(满足条件的整数的个数%dn,cnt); printf(满足条件的整数的和值%dn,sum); writeDat(

13、); writeDat() FILE *fp; fp=fopen(out.dat,w); fprintf(fp,%dn%dn,cnt,sum); fclose(fp); * 题目65已知在文件IN.DAT中存有若干个(个数200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数中的各位数字之和是奇数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。 部分源程序存在文件pro

14、g1.c中。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。 #include #include #define MAXNUM 200 int xxMAXNUM; int totNum=0; /*文件IN.DAT中共有多少个正整数*/ int totCnt=0; /*符合条件的正整数的个数*/ double totPjz=0.0; /*平均值*/ int ReadDat(void); void writeDat(void); void CalValue(void) int i ,qw,bw,sw,gw; for(i=0;i0) totNum+; qw=

15、xxi/1000; bw=xxi/100%10; sw=xxi%100/10; gw=xxi%10; if(qw+bw+sw+gw)%2) totCnt+; totPjz+=xxi; if(totCnt=0) totPjz=0; else totPjz/=totCnt; void main() int i; clrscr(); for(i=0;i if(ReadDat() printf(数据文件IN.DAT不能打开!007n); return; CalValue(); printf(文件IN.DAT中共有正整数=%d个n,totNum); printf(符合条件的正整数的个数=%d个n,tot

16、Cnt); printf(平均值=%.2fn,totPjz); writeDat(); int ReadDat(void) FILE *fp; int i=0; if(fp=fopen(IN.DAT,r)=NULL) return 1; while(!feof(fp) fscanf(fp,%d,&xxi+); fclose(fp); return 0; void writeDat(void) FILE *fp; fp=fopen(OUT.DAT,w); fprintf(fp,%dn%dn%6.2fn,totNum,totCnt,totPjz); fclose(fp); * 题目66 下列程序p

17、rog1.c的功能是:计算500-800区间内素数的个数cnt,并按所求素数的值从大到小的顺序,再计算其间隔加、减之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数.的值sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT11.DAT中。 部分源程序已给出。 请勿改动主函数main()和输出数据函数writeDat()的内容。 #include int cnt,sum; int isP(int m) int i; for(i=2;i500;i-) if(isP(i) cnt+; sum=sum+k*i;

18、 k=k*(-1); void main() cnt=sum=0; countValue(); printf(素数的个数=%dn,cnt); printf(按要求计算的值=%dn,sum); writeDat(); writeDat() FILE *fp; fp=fopen(OUT11.DAT,w); fprintf(fp,%dn%dn,cnt,sum); fclose(fp); * 题目67 下列程序的功能是:选出5000以下符合条件的自然数。条件是:千位数字与百位数字之和等于十位数字与个位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。计算并输出这些四位自然数的个数c

19、nt以及这些数的和sum。请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum,输出到文件OUT13.DAT中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()和输出数据函数writeDat()的内容。 #include int cnt,sum; void countValue() int i,thou,hun,ten,data; for(i=1000;i5000;i+) thou=i/1000; hun=i%1000/100; ten=i%100/10; data=i%10; if(thou+hun=ten+data&tho

20、u+hun=(data-thou)*10) cnt+;sum+=i; void main() cnt=sum=0; countValue(); printf(满足条件的自然数的个数=%dn,cnt); printf(满足条件的自然数的个数之和=%dn,sum); writeDat(); writeDat() FILE *fp; fp=fopen(OUT13.DAT,w); fprintf(fp,%dn%dn,cnt,sum); fclose(fp); * 题目68 已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal()

21、,其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a200,b200,已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 #include #define MAX 200 int aMAX, bMAX, cnt = 0 ; void jsVal() int

22、 i,j,thou,hun,ten,data; for(i=0;i200;i+) thou=ai/1000; hun=ai%1000/100; ten=ai%100/10; data=ai%10; if(thou&thou%2&hun%2&ten%2&data%2) bcnt+=ai; for(i=0;iCNT-1;I+) for(j=i+1;jCNT;J+) if(bi void readDat() int i ; FILE *fp ; fp = fopen(in.dat, r) ; for(i = 0 ; i MAX ; i+) fscanf(fp, %d, &ai) ; fclose(f

23、p) ; void main() int i ; readDat() ; jsVal() ; printf(满足条件的数=%dn, cnt) ; for(i = 0 ; i cnt ; i+) printf(%d , bi) ; printf(n) ; writeDat() ; writeDat() FILE *fp ; int i ; fp = fopen(out.dat, w) ; fprintf(fp, %dn, cnt) ; for(i = 0 ; i cnt ; i+) fprintf(fp, %dn, bi) ; fclose(fp) ; * 题目69已知数据文件IN.DAT中存有

24、200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的值减去百位数字上的值再减去十位数字上的值最后减去个位数字上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a200,b200,已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 #include #define MAX 200 int aMAX, bMAX, cnt = 0 ; void jsVal() int i,j,thou,hun,ten,data; for(i=0;i=0&ai%2) bcnt+=ai; for(i=0;iCNT-1;I+) for(j=i+1;jbj) thou=bi; bi=bj;bj=thou; void readDat() int i ; FILE *fp ; fp = fopen(in.dat, r) ; for(i = 0 ; i MAX ; i+) fscanf(fp,

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1