




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
*题目61已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT2.DAT中。 部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。#include #include #include #include #include #define MAX 100typedef 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(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(selli.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,selli.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是数组中某一个字符的ASCII值,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);void 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=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 字符串中的所有字符左移一个位置,串中的第一个字符移到最后。请考生编写函数chg(char *s)实现程序要求,最后调用函数readwriteDAT( )把结果输出到bc2.out文件中。 例如:s字符串中原有内容为:Mn.123xyZ,则调用该函数后,结果为:n.123xyZM。 注意:部分源程序存在文件prog1.c文件中。 请勿改动主函数main( )和输出数据函数readwriteDAT()的内容。#include #include #define N 81void readwriteDAT();void chg(char *s) int i; char ch=*s; for(i=0;iSTRLEN(S)-1;I+) 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.out, 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()和输出数据函数writeDat()的内容。#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();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中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。#include #include #define MAXNUM 200int 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=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,totCnt); 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下列程序prog1.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; 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倍。计算并输出这些四位自然数的个数cnt以及这些数的和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&thou+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(),其功能是:如果四位数各位上的数字均是奇数,则统计出满足此条件的个数cnt并把这些四位数按从大到小的顺序存入数组b中。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a200,b200,已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#include #define MAX 200int aMAX, bMAX, cnt = 0 ;void jsVal()int 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(bivoid readDat() int i ; FILE *fp ; fp = fopen(in.dat, r) ; for(i = 0 ; i MAX ; i+) fscanf(fp, %d, &ai) ; fclose(fp) ;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中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把一个四位数的千位数字上的值减去百位数字上的值再减去十位数字上的值最后减去个位数字上的值,如果得出的值大于等于零且原四位数是奇数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a200,b200,已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#include #define MAX 200int 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, %d, &ai) ; fclose(fp) ;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) ;*题目70已知在文件IN.DAT中存有若干个(个数200)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:1、求出这文件中共有多少个正整数totNum;2、求这些数右移1位后,产生的新数是奇数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数writeDat()把所求的结果输出到文件OUT.DAT中。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。#include #include #define MAXNUM 200int xxMAXNUM;int totNum=0; /*文件IN.DAT中共有多少个正整数*/int totCnt=0; /*符合条件的正整数的个数*/double totPjz=0.0; /*平均值*/int ReadDat(void);void writeDat(void);void CalValue(void)int i,data;for(i=0;i0) totNum+; data=xxi1; if(data%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,totCnt); 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);*题目71函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。请编制函数jsSort(),其函数的功能是:以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。条件:从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部分按字符的ASCII值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。例如:位置012345678源字符串a b c d h g f e 1 2 3 4 9 8 7 6 5 则处理后字符串 d c b a e f g h 4 3 2 1 9 5 6 7 8部分源程序存在文件prog1.c中。请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。#include #include #include char xx2080;void jsSort()int i,j,k,strl,half; char ch; for(i=0;i20;i+) strl=strlen(xxi); half=strl/2; for(j=0;jHALF-1;J+) for(k=j+1;kHALF;K+) if(xxij if(strl%2) half+; for(j=half;jSTRL-1;J+) for(k=j+1;kxxik) ch=xxij;xxij=xxik;xxik=ch; void main() readDat(); jsSort(); writeDat();readDat() FILE *in; int i=0; char *p; in=fopen(in.dat,r); while(i20&fgets(xxi,80,in)!=NULL) p=strchr(xxi,n); if(p)*p=0; i+; fclose(in); writeDat() FILE *out; int i; clrscr(); out=fopen(out.dat,w); for(i=0;i20;i+) printf(%sn,xxi); fprintf(out,%sn,xxi); fclose(out); *题目72已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:把个位数字和千位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的千位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数均是偶数并且两个十位数中至少有一个数能被9整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。最后main()函数调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。 程序中已定义数组:a200,b200,已定义变量:cnt 请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。#include #define MAX 200int aMAX, bMAX, cnt = 0 ;void jsVal()int i,j,thou,hun,ten,data,ab,cd; for(i=0;i200;i+) thou=ai/1000; hun=ai/100%10; ten=ai%100/10; data=ai%10; ab=10*data+thou; cd=10*hun+ten; if(ab%9=0|cd%9=0)&ab%2=0&cd%2=0&hun!=0&data!=0) bcnt=ai;cnt+; for(i=0;iCNT-1;I+) for(j=i+1;jCNT;J+) if(bivoid readDat() int i ; FILE *fp ; fp = fopen(in.dat, r) ; for(i = 0 ; i MAX ; i+) fscanf(fp, %d, &ai) ; fclose(fp) ;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) ;*题目73函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConverCharD(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z。大写字母仍为大写字母,小写字母仍为小写字母,其它字符不变。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT4.DAT中。 例:原文:Adb.Bcdza abck.LLhj 结果:Aca.Bbcyz zabj.LLgi 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。#include #include #include char xx5080;int maxline=0;/*文章的总行数*/int ReadDat(void);void WriteDat(void);void ConvertCharD(void) int i,j; for(i=0;iMAXLINE;I+) for(j=0;j=b&xxij=z) xxij-=1; void main() clrscr(); if(ReadDat() printf(数据文件IN.DAT不能打开!n007); return; ConvertCharD(); WriteDat();int ReadDat(void) FILE *fp; int i=0; char *p; if(fp=fopen(IN.DAT,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; clrscr(); fp=fopen(OUT4.DAT,w); for(i=0;iMAXLINE;I+) printf(%sn,xxi); fprintf(fp,%sn,xxi); fclose(fp);*题目74函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrCharJL(),其函数的功能是:以行为单位把字符串中的所有字符的ASCII值左移4位,低位补0,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT7.DAT中。 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 部分源程序存在文件prog1.c中。 请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。#include #include #include char xx5080;int maxline=0;/*文章的总行数*/int ReadDat(void);void WriteDat(void);void StrCharJL(void) int i,j; char c; for(i=0;iMAXLINE;I+) for(j=0;jSTRLEN(XXI);J+) c=xxij4; if(!(c100) xxij+=c; void main() clrscr(); if(ReadDat() printf(数据文件IN.DAT不能打开!n007); return; StrChar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 太原八年级月考语文试卷及答案
- 丹东活动策划方案
- 中建装配灌浆施工方案
- 2025年青冈社区考试试题及答案
- 微信生态用户留存-洞察与解读
- 天水市2025年中考试卷及答案
- 2025年古代汉语文选试题及答案
- 三亚湾文体活动方案策划
- 专科医院管理咨询方案
- 2025年主治中医医生考试题及答案
- 磷化工复工安全培训总结课件
- 2025年四川高考真题化学试题(解析版)
- 海上交通技能安全培训基本试题及答案解析
- 2025-2026学年高一历史上学期第一次月考卷(原卷及解析)(江苏专用)
- 合同的效力教学设计-2025-2026学年中职专业课-经济法律法规-纳税事务-财经商贸大类
- 辽宁省名校联盟2025-2026学年高三上学期9月联合考试数学试题(无答案)
- 2025-2030中国农机金融租赁业务模式创新与风险定价策略报告
- 医院感染的爆发及处理
- 2025年党建知识应知应会测试题库(附答案)
- 脊神经支配图谱-洞察及研究
- 2025年4月自考02204经济管理试题及答案
评论
0/150
提交评论