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





《计算机三级机试C语言一百题.docx》由会员分享,可在线阅读,更多相关《计算机三级机试C语言一百题.docx(140页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 三级 语言 一百

限制150内