计算机三级机试C语言南开一百题

举报
资源描述
1已知数据文件IN 1 .DAT中存有200个4位数,并已调用读函数readDat。把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是奇数,则统计出满足此条件的个数e n t,并把这些4位数按从大到小的顺序存入数组b中。最后调用函数writeDat。把结果ent及数组b中符合条件的4位数输出到OUT1.DAT文件。注意:部分源程序已给出。程序中已定义数组:a200,b200,已定义变量:ent.请勿改动主函数main。、读函数readDat。和写函数writeDal。的内容。试题程序:#include#define M AX 200in t aMAX,bMAX,cnt=0;void w riteD at();void jsV al()(int iJ;int al,a2,a3,a4;int temp;for(i=0;i200;i+)(a4=ai/1000;a3=ai%1000/100;a2=ai%100/10;al=ai%10;if(a4%2!=0&a3%2!=0&a2%2!=0&al%2!=0)bcnt=ai;cnt+;for(i=0;icnt-1;i+)for(j=i+l;jcnt;j+)if(bibU)(temp=bi;bi=bU;bj=temp;)void readD at()(in t i;FILE*fp;fp=fopen(INI.DAT,nrn);for(i=0;iMAX;i+)fscanf(fp,n%d,&a i);fc lo se(fp);void m ain()(in t i;readD at();jsV al();p rin tf(满足条件的数=%dn”,e n t);for(i=0;icnt;i+)printf(%dnnzbi);printf(Mn);writeDat();1void writeDat()(FILE*fp;int i;fp=fopen(noutl.dat,nwn);fprintf(fp,%dnn,ent);for(i=0;icnt;i+)fprintf(fp,n%dnn,bi);fclose(fp);)2已知IN2.DAT中存有200个4位数,并已调用读函数readDat。把这些数存入数组a中,请编制一函数jsVal(),其功能是:依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数cm,并把这些4位数按从小到大的顺序存入数组6 3 最后调用写函数writeDat()把结果cm及数组b中符合条件的4位数输出到OUT2.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a200,b200,已定义变量:ent。请勿改动主函数main。、链函册eadDat()和写函数writeDat。的内容。试题程序:#include#define MAX 200int a MAX,bMAX,ent=0;void writeDat();void jsVal()(int ij;int temp;for(i=0;iMAX-5;i+)if(ai%2!=0)for(j=i+l;j=i+5;j+)if(aiaj)break;else if(j=i+5)bcnt=ai;cnt+;for(i=0;icnt-l;i+)for(j=i+l;jbj)(temp=bi;bi=bU;bjl=temp;)oid readDat()int i;FILE*fp;fp=fopen(IN2.DATn,”r);for(i=0;i MAX;i+)fscanf(fpz%dn,&a i);fclose(fp);void main()(int i;readDat();jsVal();printf(满足条件的数=%dn”,ent);for(i=0;i ent;i+)printf(%d,bi);printf(nnn);writeDat();Ivoid writeDat()FILE*fp;int i;fp=fopen(nOUT2.DATnz w);fprintf(fp,ent);for(i=0;i ent;i+)fprintf(fp,%dn,bi);fclose(fp);)3已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称me(字符型10位)、单价dj(整型)、数量si(整型)、金额je(长整型)几部分组成。其中:金额=单价X数量。函数ReadDal()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDal。,其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组seH中,最后调用函数WriteDalO把结果输出到文件OUT3.DAT中。注意:部分源程序已给出。清勿改动主函数main。、读函数ReadDat。和写函数WriteDat。的内容。试题程序:#include#include#include#include#define MAX 100typedef struct(char dm5;char me11;int dj;int si;long je;PRO;PRO sell MAX;void ReadDat();void WriteDat();/*产品代码*/*产品名称*/*单 价*/*数 量*/*金额*/void SortDat()int ij;PRO temp;for(i=0;i99;i+)for(j=i+l;j0)(temp=selli;sell i=sellj;sellj=temp;)else if(strcmp(selli.mc,sellj.mc)=O)if(selli.jesellj.je)(temp=selli;selli=sellj;sellj=temp;)void main()(memset(sell,0,sizeof(sell);ReadDat();SortDat();WriteDat();void ReadDat()FILE*fp;char str80,ch11;int i;fp=fopen(,IN3.DAT,nrn);for(i=0;i 100;i+)fgets(str,80,fp);memcpy(selli.dm,str,4);memcpy(selli.me,str+4,10);memcpy(ch,selli.djmemcpy(ch,selli.siselli.jestr+14,4);ch4=0;=atoi(ch);str+18,5);ch 5=0;=atoi(ch);=(long)sell i .dj*selli.sifclose(fp);void WriteDat()(FILE*fp;int i;fp=fopen(,OUT3.DAT,/uwn);for(i=0;i 100;i+)f p r i n t f (fp,”%s%s%4d%5d%101dn,s e l l i.dm,s e l l i.me,s e l l i .dj,s e l l s e l l i .j e);)f c l o s e(f p);14函数ReadDatO的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS4.DAT中。替代关系:f(p)=p*ll mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果计算后f(p)的值小于等于32或大于1 3 0,则该字符不变,否则将f(p)所对应的字符进行替代。注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。请勿改动生函数main。、读函数ReadDat。和写函数WriteDat。的内容。试题程序:#in c lu d e#in c lu d e#in c lu d e#in c lu d eu n sig n edc h a r x x 5 0 8 0;in t m ax lin e=0;/*文章的总行数*/in t R e a d D a t(v o id);v o id W rite D a t(v o id);v o id en cry p tC h a r()(int ij;int str;char ch;for(i=0;imaxline;i+)(str=strlen(xxi);for(j=0;jstr;j+)ch=xxij*ll%256;if(ch130)continue;elsexxij=ch;v o id m a in()(sy ste m(“CLS”);if(R e a d D a t()(p r i n t f (数据文件ENG4.工N不能打开!n 0 0 7n);re tu rn;e n c ry p tC h a r();W riteD at();)int ReadDat(void)(FILE*fp;int i=0;unsigned char*p;if(fp=fopen(ENG4.INU,1 1 rH)=NULL)return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,n1);if(P)*P=0;i+;)maxline=i;fclose(fp);return 0;)void WriteDat(void)(FILE*fp;int i;fp=fopen(MPS4.DAT,nwH);for(i=0;i maxline;i+)(printf(%snHz xx i);fprintf(fp,%sn,xx i);)fclose(fp);15函数ReadDat。的功能是实现从文件IN5.DAT中读取篇英文文章存入到字符串数组xx中。请编制函数ConvertCharAO,该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符半数组xx中,最后调用函数WriteDat。把结果xx输出到文件OUT5.DAT中。例 如,原 文:Adb.Bcdzaabck.LLhj结果:Aec.BdeabbcdLLLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。注意:部分源程序已给出。请勿改动主函数main()、读函数RcadDat()和写函数WriteDat()的内容。试题程序:#include#include#include char xx 50 80;int maxline=0;/*文章的总行数*/int ReadDat(void);void WriteDat(void);void ConvertCharA(void)(int ij;int str;for(i=0;imaxline;i+)(str=strlen(xxi);for(j=0;j=a&xxij=R)if(xxij=z)xxij=a;elsexxij+=l;void main()(system(nCLSH);if(ReadDat()printf(数据文件工N5.DAT不能打开!n007”);return;)ConvertCharA();WriteDat();int ReadDat(void)(FILE*fp;int i=0;char*p;if(fp=fopen(IN5.DATnr )=NULL)return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,n1);if(p)*p=0;i+;maxline=i;fclose(fp);return 0;Ivoid WriteDat(void)(FILE*fp;int i;system(CLS);fp=f open(M OUT 5.DAT*,”w”);
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号