计算机三级机试C语言一百题.docx

上传人:文*** 文档编号:83245624 上传时间:2023-03-29 格式:DOCX 页数:140 大小:350.83KB
返回 下载 相关 举报
计算机三级机试C语言一百题.docx_第1页
第1页 / 共140页
计算机三级机试C语言一百题.docx_第2页
第2页 / 共140页
点击查看更多>>
资源描述

《计算机三级机试C语言一百题.docx》由会员分享,可在线阅读,更多相关《计算机三级机试C语言一百题.docx(140页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、已知数据文件IN1.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是奇数,则统计出满足此条件的个数ent,并把这些4位数按从大到小的顺序存入数组b中。最后调用函数writeDat。把结果ent及数组b中符合条件的4位数输出到OUT1.DAT文件。注意:部分源程序已给出。程序中已定义数组:a200, b200,已定义变量:cnt请勿改动主函数main。、读函或readDat。和写函数writeDat()的内容。试题程序:include #define MAX 200int aMAXLb MAX,cn

2、t=O;void writeDat();void jsVal()int i,j;int a1,a2,a3,a4;int temp;for(i=0;i200;i+)a4=ai/1000;a3=ai%1000/100;a2=ai%100/10;a1=ai%10;if(a4%2!=0& a3%2!=0& a2%2!=0& a1%2!=0)bcnt=ai;cnt+;for(i=0;icnt-1;i+)for(j=i+1;jcnt;j+)if(bibj)temp=bi;bi=bj;bj=temp;void readDat()int i;FILE *fp;fp=fopen(IN1.DAT,r);for(i

3、=0;iMAX;i+)fscanf(fp,%d&ai);fclose(fp);void main()int i;readDat();sValQ;brintf?满足条件的数=%dn,cnt);:or(i=0;icnt;i+)S%dn,bi);void writeDat()( FILE *fp;int i;fp=fopen(out1.dat,w);fprin 用 fpJ%drT,cntj;for(i=0;icnt;i+)fprintf(fp,%dn,bi); fclose(fp);2已知IN2.DAT中存有200个4位数,并已调用读函数readDat。把这些数存入数组 a中,请编制一函数jsVal

4、(),其功能是:依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的个数ent,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果 ent及数组b中符合条件的4位数输出到OUT2.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a200, b200,已定义变量:ent。请勿改动主函数main。、读函赤eadDat()和写函数writeDat()的内容。试题程序:include #define MAX 200int aMAX, bMAX, ent =0;void writeDat();void jsVa

5、l() int i,j;int temp;for(i=0;iMAX-5;i+) if(ai%2!=0)for(j=i+1;j=i+5;j+)(if(aian) break;else if(j=i+5)bcnt=ai; cnt+;)for(i=0;icnt-1;i+)for(j=i+1;jbj)(temp=bi;bi=bU;bj=temp; oid readDat()( int i;FILE *fp;fp = fopen(IN2.DAT,r);for(i =0; i MAX; i+) fscanf(fp,%d,&ai); fclose(fp);void main()(int i;readDat(

6、);jsVal();printf(满足条件的数=%点仃,ent);for(i=0; i ent; i+) printf(%d , bi);printf(n); writeDat();)void writeDat()(FILE *fp;int i;fp = fopen(OUT2.DAT,w);fprintf(fp,%dn, ent);for(i =0; i ent; i+) fprintf(fp,%dn, bi); fclose(fp);)3已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码 dm (字符型4位)、产品名称me (字符型10位)、单价dj (整型)、数

7、量si (整型)、金额je (长整型)几部分组成。其中:金额=单价x数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT 中。注意:部分源程序已给出。请勿改动主函数main。、读函数ReadDat。和写函数WriteDat。的内容。试题程序:#include include #include ,include #define MAX 100/*金额*/

8、:码*1 1称7 77typedef structchardm5;char mc11l; int di;int si; long je;)PRO;PRO sell MAX; void ReadDat(); void WriteDatQ;void SortDat()int i,j;PRO temp;for(i=0;i99;i+)for(j=i+1;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=

9、temp;void main()memset(sell,0, sizeof(sell);ReadDat();SortDat();WriteDat();void ReadDat()( FILE *fp;char str80, ch11;int i;fp = fopen(IN3.DAT,r);for (i =0; i 100; i+) fgets(str,80, fp);memcpyfsellfil.dm, str,4);memcpy(selli.mc, str +4,10);memcpyich, str +14,4); ch4=0;selli.dj = atoi(ch);memcpy(ch, s

10、tr +18,5); ch5=0;selli.sl = atoi(ch);selli.je =(long)selli.dj * selli.sl; lclose(fp);cni x e; fppo LEti:,=for(i= 日infpfovoid WriteDat()0UT3.DAT,w);100; i+)fprintf(fp,%s %s %4d %5d %10ldn, selli.dm, selli.mc, selli.dj,selli.sl, selli.je);:close(fp);函数ReadDat()的功能是实现从文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制

11、函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat。把结果xx输出到文件PS4.DAT中。替代关系:f(p)=p*11 mod 256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCH值),如果计算后f(p)的值小于等于32或大于130,则该字符不变,否则将f(p)所对应的字符进行替代。注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。请勿改动主函数main。、读函数ReadDat()和写函数WriteDat()的内容。试题程序:include #inc

12、lude #include include unsigned char xx5080J;int maxline =0;/*文簟留总行数7int ReadDat(void);void WriteDat(void);void encryptChar()int i,j;int str;char ch;for(i=0;imaxline;i+)str=strlen(xxi);for(j=0;jstr;j+)ch=xxlj*11%256;if(ch130) continue;else xxij=ch;void main()(systemCCLS);if(ReadDat()(printf(数据文件ENG4.

13、IN不能打开!n007);return;encryptChar();WriteDat();int ReadDat(void)( FILE *fp;int i =0;unsigned char *p;if(fp = fopen(ENG4.IN,r)=NULL) return 1;while(fgets(xxi,80, fp)!=NULL)p = strchr(xxi,n);if(p)*P =0;i+; r maxline = i;fclose(fp);return 0;void WriteDat(void)( FILE *fp;int i;fp = fopen(PS4.DAT,w);for(i

14、=0; i maxline; i+)( printf(%sn, xxi);fprintf(fp,%sn, xxi);:close(fp);函数ReadDat()的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharA(),该函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件 OUT5.DAT 中。例如,原文:Adb.Bcdzaabck

15、.LLhj结果:Aec.Bdeab bcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。注意:部分源程序已给出。请勿改动主函数main。、读函数ReadDat()和写函数WriteDat()的内容。试题程序:include #include include char xx50801;int maxhne =0;/*文章的总行数*/int ReadDat(void);void WriteDat(void);void ConvertCharA(void)int i,j;int str;for(i=0;imaxline;i+)(str=strlen(xxi);f

16、or(j=0;j=a& xxij=z)if(xxiU=z)xxiU=a;elsexxiU+=1;)void main()( systemCCLS);if(ReadDat()(printf(数据文件 IN5.DAT 不能打开!n007);return;ConvertCharA(); WriteDat();int ReadDat(void)FILE *fp; int i =0;cha r *d*if(fp = fopen(IN5.DAT,r)= NULL) return 1; while(fgets(xxi,80, fp)!=NULL)p = strchr(xxi,n);i+;) maxline

17、= i; fclose(fp);return 0;)void WriteDat(void)solm Lc c ni H e ,if(p)*P =0; printf(%sn, xxi);fprintf(fp,%sn; xxi);lclose(fp);)6在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数 readDat()的功能是读取这200个数存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数wri

18、teDat()把结果bb输出到文件OUT6.DAT中。例如:处理前90125099601270258088处理后50998088702560129012注意:部分源程序已给出。请勿改动主函数main。、读函数readDat。和写函数writeDat()的内容。试题程序:#include #include include int aa200, bb10;void readDatQ;void writeDatQ;void jsSort()int i,j;int temp;for(i=0;i199;i+)for(j=i+1;j200;j+)(if(aai%1000aaU)(temp=aai;aai=

19、aaQ;aaj=temp;)for(i=0;i10;i+) bbi=aai;void main()readDatf);jsSort();writeDat();void readDat()FILE *in;int i;in = fopen(IN6.DAT,r);for(i =0; i 200; i+) fscanf(in,%d,&aai);fclose(in);void writeDat() FILE *out;inti;out = fopenfOUT6.DAT,w); systemfCLS);for (i =0; i 10; i+)printf(i=%d,%dn, i+1, bbi); fpr

20、intf(out,%dn, bbi);fclose(out);函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT7.DAT中。例如,原文:dAe, BfCCCbbAA结果:fedCBA, bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。注意:部分源程序已给出。请勿改动主函数main()、读函数ReadDat()和写函数Wr

21、iteDat()的内容。试题程序:#include include #include char xx5080;int maxhne=0;int ReadDat(void);void WriteDat(void);void SortCharD()int i,j,k;int str;char temp;for (i=0;imaxline;i+)(str=strlen(xxi);for(j=0;jstr-1;j+)for(k=j+1;kstr;k+)if(xxijxxik)(temp=xxij;xxij=xxik;xxik=temp;void main()( system(CLS);if (Read

22、Dat()printf(数据文件 IN7.DAT 不能打开!n007); return;ortCharD(); WriteDatO;int ReadDat(void)( FILE *fp;int i=0;char *Dif(fp=fopen(IN7.DAT,r)=NULL) return 1;while (fgets(xxi,80,fp)!=NULL)3=strchr(xxi,n);i+; r maxhne=i;fclose(fp); return 0;void WriteDat()( FILE *fp;inti;system(CLS);fp=fopen(OUT7.DAT,w);for(i=0

23、;imaxline;i+)( printf(%sn,xxi); fprintf(fp,%sn;xxi);lclose(fp);)8对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依次类推。每一位内容均为字符。或1,1表示此人被选中,0表示此人未被选中,若一张选票选中人数小于等于5个人时则被认为是无效的选票。给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yyO到yy9中,最后调用函

24、数WriteDat()把结果yy输出到文件OUT8.DAT中。注意:部分源程序已给出。请勿改动主函数main。、读函数ReadDat()和写函数WriteDat。的内容。试题程序:#include #include charxx10011l;int yy10;int ReadDat(void); void WriteDat(void);void CountRs(void)int i,j;int ent;for(i=0;i10;i+)yyi=o;for(i=0;i100;i+)(cnt=0;for(j=0;j5)(for(j=0;j10;j+)if(xxij=1) yyj+;void main(

25、)inti;for (i=0; i10; i+)yyi=0;if(ReadDat()(printf(选票数据文件IN8.DAT不能打开!007n);return;CountRs();WriteDatQ;int ReadDat(void)( FILE *fp;int i;chartt13;if(fp = fopen(IN8.DAT,r)= NULL) return 1;for (i =0; i 100; i+) if(fgets(tt,13, fp)= NULL)return 1;memcpy(xxi, tt,10);lclose(fp);return 0;void WriteDat(void)

26、VJ/ +8 + Ti uo; O1n(1iX e ,fppoLEtl;=for(i=曰infpfo.fprintfffp,%dn, yyi);printf(第d个人的选集数=%dn, i+1, yyi);Tclose(fp);)9下列程序的功能是:利用以下所示的简单迭代方法求方程:cos (x)-x=0的一个实根。xn+1=cos(xn)迭代步骤如下:(1)取x1初值为0.0。(2) x0=x1,把x1的值赋给x0。(3) x1=cos(x0),求出一个新的x1。(4)若x0-x1的绝对值小于0.000001,执行步骤(5),否则执行步骤(2)。(5)所求x1就是方程cos(x)-x=0的一

27、个实根,作为函数值返回。请编写函数countvalue ()实现程序要求,最后调用函数writeDAT()把结果输出到文件out9.dat中。注意:部分源程序已给出。请勿改动主函数main()和写函数writeDAT()的内容。试题程序:include include #include void writeDAT();float countValue()float x0,x1=0.0;while(1)(x0=x1;x1=cos(x0);if(fabs(x0-x1)1e-6) break;return x1;void main()( system(CLS);printf(|R=%fn,count

28、Value();printf(%fn,cos(countValue()-countValue(); writeDAT();void writeDAT()( FILE *wf;wf=fopen(out9.dat,w);fprintftwf?%fn,countValue();fclose(wf);)10请编写函数void countValue(int *a, int*n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。注意:部分源程序已给出。请勿改动主函数main()和写函数writeDAT。的内容。试题程序:incl

29、ude include void writeDAT();void countValue(int *a,int *n)int i;*n=0;for(i=1;i=1000;i+)if(i%7=0& i%11!=0)|(i%7!=0& i%11=0)(*a=i;*n=*n+1;a+;)void main()( int aa1000,n,k;system(CLS);countValue(aa,&n);for(k=0;kn;k+)if(k+1)%10=0)( printf(%5d,aak);printf(n);elseprintf(%5d,aak);writeuAT();void writeDAT()i

30、nt aa1000,n,k;FILE *fp;fp=fopen(out10.dat,w);countValue(aa,&n);for(k=0;kn;k+) if(k+1)%10=0)( fprintf(fp,%5d,aakl); fprintf(fp,n);else f pri ntf (f p,%5d,a a k); fclose(fp);)11已知在文件IN11.DAT中存有若干个(个数200)4位数字的正整数,函数 ReadDat()的功能是读取这若干个正整数并存入数组xx中。请编制函数CalValue(),其功能要求:(1)求出该文件中共有多少个正整数totNum;(2)求这些数右移1

31、位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值totPjz,最后调用函数WriteDat()把所求的结果输出到文件 OUT11.DAT 中。注意:部分源程序已给出。请勿改动主函数main。、读函数ReadDat。和写函数WriteDat。的内容。试题程序:include include #define MAXNUM 200int xxFMAXNUMl;int totNum =0; r文件IN11.DAT中共有多少个正整数7int totCnt =0;/*将备条件的正整数的个数*/double totPjz =0.0;/*平均值*/int Read

32、Dat(void);void WriteDat(void);void CalValue(void)int i;int data;for(i=0;i0)(totNum+;data=xxi1;if(data%2=0)(totCnt+;totPjz+=xxi;totPjz/=totCnt;)void main()int i;system(CLS);for(i =0; i MAXNUM; i+)xxil =0;if(ReadDat()(printf(数据文件 IN11.DAT 不能打开!007n);return;balValueQ;printf(文件IN11.DAT中共有正整数=%d 个n, totN

33、um);printf嘴合条件的正整数的平费%d个n, totCnt);printf(呼均值=%.21加,totPjz);WriteDat();int ReadDat(void)( FILE *fp;int i =0;if(fp = fopen (IN11.DAT,r)= NULL) return 1;while(! feof(fp)( fscanf(fp,%d,&xxi+);lclose(fp);return 0;)void WriteDat(void)( FILE *fp;fp = fopenCOUT11.DAT,w);fprintf(fp,%dn%dn%.2lfn, totNum, tot

34、Cnt, totPjz); fclose(fp);)12已知数据文件IN12.DAT中存有300个4位数,并已调用读函数readDat。把这些数存入数组a中。请编制函数jsValue(),其功能是:求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数ent,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat。把数组b中的数输出到OUT12.DAT文件中。例如:6712,6+2=7+1,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+9W1+2,则该数不满足条件,忽略。注意:部分源程序已给出

35、。程序中已定义数组:a300, b300,已定义变量:ent。请勿改动主函数main。、读函施readDat。和弓函数writeDat()的内容。试题程序:#include int a3001, b300, cnt=O;void readDatQ;void writeDatf);void jsValue()int i,j;int a1,a2,a3,a4;int temp;for(i=0;i300;i+)(a4=ai/1000;a3=ai%1000/100;a2=ai%100/10;a1=ai%10;If(a4+a1=a3+a2)bcnt=ai; cnt+;for(i=0;icnt-1;i+)f

36、or(j=i+1;jbU)(temp=bi;bi=bUJ;bj=temp;)void main()( int i;readDat();jsValue(); writeDatf); printffcnt=%dn, ent); Tor(i=0; icnt; i+) printf(b%d=%dn, i, bi);void readDat()FILE *fp;int i;fp = fopen(IN12.DAT,r);for(i=0; i300; i+)fscanf(fp,%d,&ai); fclose(fp);void writeDat()( FILE *fp;int i;fp = fopen(OUT

37、12.DAT,w); fprintf(fp,%dn,cnt);for(i=0; icnt; i+) fprintf(fp,%d,n, bi);fclose(fp);已知数据文件IN13.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数ent,并把这些4位数按从大到小的顺序存入数组33最后调用写函数writeDat()把结果ent及数组b中符合条件的4位数输出到OUT13.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a200, b200,已

38、定义变量:ent。请勿改动主函数main。、读函施readDat。和号函数writeDat()的内容。试题程序:#include #define MAX 200int aMAXL bMAX, ent =0; void writeDat();void jsVal()int i,j;int a1,a2,a3,a4;int temp;for(i=0;i200;i+)(a4=ai/1000;a3=ai%1000/100;a2=ai%100/10;a1=ai%10;if(a4%2=0& a3%2=0& a2%2=0& a1%2=0)bcnt=ai; cnt+;for(i=0;icnt-1;i+)for(

39、j=i+1;jcnt;j+) if(bibj)temp=bi;bi=bU;bj=temp;)void readDat()int i;FILE *fp;fp = fopen(IN13.DAT,r);for(i =0; i MAX; i+) fscanf(fp,%d,&ai); fclose(fp);void main()int i;readDat();就儒满足条件的数=%$11, ent);for(i =0; i ent; i+) printf(%d bi);printffn);writeDat();void writeDat()( FILE *fp;inti;fp = fopen(OUT13.

40、DAT,w);fprintf(fp,%dn, ent);for(i =0; i ent; i+) fprintf(fp,%dn, bi); fclose(fp);)14已知数据文件IN14.DAT中存有300个4位数,并已调用读函数readDat。把这些数存入数组a中,请编制一函数jsValue。,其功能是:求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数ent,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数从大到小进行排序,最后调用写函数 writeDat。把数组b中的数输出到OUT14.DAT文件。例如:7153,7+1=5+3,则该数满足条件,存入数组b中,且个数cnt=cnt+1。8129,8+1#2+9,则该数不满足条件,忽略。注意:部分源程序已给出。程序中已定义数组:a300, b300,已定义变量:ent。请勿改动主函数main。、读函窥readDat。和写函数writeDat。的内容。试题程序:include int a3001, b300, cnt=O;void readDatQ;void writeDatf);int i

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁