计算机三级网络机试考试试题及答案(上).pdf
《计算机三级网络机试考试试题及答案(上).pdf》由会员分享,可在线阅读,更多相关《计算机三级网络机试考试试题及答案(上).pdf(85页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、三 级 网 络 机 武 参 勉 友 替 泰 上 半 部 分第一道已知数据文件INI.DAT中存有200个4位 数,并已调用读函数readDat。把这些数存入数组a中,请编制一函数jsV al(),其功能是:如果4位数各位上的数字均是奇数,则统计出满足此条件的个数e n t,并把这些4位数按从大到小的顺序存入数组b中。最后调用函数writeDat。把结果ent及数组b中符合条件的4位数输出到OUT1.DAT文件。注意:部分源程序已给出。程序中已定义数组:a200,b200,已定义变量:ent。请勿改动主函数main。、读函数readDat。和写函数writeDat。的内容。#include#de
2、fine MAX 200int aMAX,bMAX,cnt=0;void writeDatO;voidjsVal()int i,j;int al,a2,a3,a4;/*定义循环控制变量*/*定义变量保存4位数的每位数字*/int temp;for(i=0;i200;i+)(a4=ai/1000;a3=ai%1000/100;/*定义数据交换时的暂存变量*/*逐个取每个4位数*/*求4位数的千位数字*/*求4位数的百位数字*/a2=ai%100/10;al=ai%10;/*求4位数的十位数字*/*求4位数的个位数字*/if(a4%2!=0&a3%2!=0&a2%2!=0&al%2!=0)/*如果
3、4位数各位上的数字均是奇数*/bcnt=ai;cnt+;)for(i=0;icnt-1 ;i+)for(j=i+l;jcnt;j+)if(bibUDtemp=bi;bi=bU;bj=temp;/*将满足条件的数存入数组b中*/东统计满足条件的数的个数*/*将数组b中的数按从大到小的顺序排列*/void readDal()int i;FILE*fp;fp=fopen(INl.DAT,r);for(i=0;iMAX;i+)fscanf(fp,n%dn,&a(i);fclose(fp);void main()(int i;readDat();jsVal();printf(满足条件的数=%dn”,cn
4、t);fbr(i=O;icnt;i+)printf(%dnn,bi);printf(nn);writcDat();)void writeDat()(FILE*fp;inti;fp=fopen(outl.datn,Hwn);fprintf(fp,%dn,cnt);for(i=O;icnt;i+)fprintf(fp,dn”,bi);fclose(fp);)第二道已知IN2.DAT中存有200个4位数,并已调用读函数readDat。把这些数存入数组a中,请编制一函数jsV a l(),其功能是:依次从数组a中取出一个数,如果该4位数连续大于该4位数以后的5个数且该数是奇数,则统计出满足此条件的数的
5、个数e n t,并把这些4位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果ent及数组b中符合条件的4位数输出到OUT2.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a200,b 2 0 0,巴定义变量:ent。请勿改动主函数main。、读函数readDat。和写函数writcDat。的内容。#include#define M AX 200int aMAX,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;jbj)(if
6、(alaj)break;/*如果当前数不满足比后面5个数都大的条件,则跳出循环*/else if(j=i+5)bcnt=ai;cnt+;)for(i=0;icnt-l;i+)for(j=i+l;jcnt;j+)/*如果当前数比后面的5个数都大*/*将满足条件的数存入数组b中*/*并统计满足条件的数的个数*/*利用选择法对b数组中的元素进行从小到大的排序*/temp=bi;bi=bj;bj=temp;)void readDat()int i;FILE*fp;fp=fopen(,IN2.DATH,nrn);for(i=0;i MAX;i+)fscanf(fp,n%dH,&ai);fclose(fp
7、);void main()(int i;read Dat();jsVal();printf(满足条件的数=%dn”,ent);for(i=0;i ent;i+)printf(%d,bi);printf(nnH);writeDat();)void writeDat()FILE*fp;int i;fp=fopen(MOUT2.DATH,nwn);fprintf(fp,H%dnH,cnt);for(i=0;i ent;i+)fprintf(fp,dn”,bi);fclose(fp);)第三道已知在文件IN3.DAT中存有1()0个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称m
8、e(字符型10位)、单价dj(整型)、数量si(整型)、金额je(长整型)几部分组成。其中:金额=单价X数量。函数ReadDatO的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDatO把结果输出到文件OUT3.DAT中。注意:部分源程序已给出。请勿改动主函数main。、读函数ReadDat。和写函数WriteDatO的内容。#include#include#include#include#deHne MAX 100
9、typedef struct(char dm5;/*产品代码*/char mcll;/*产品名称*/int dj;/*单价*/int si;/*数量*/long je;/*金额*/PRO;PRO sell MAX;void ReadDatO;void WriteDatO;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,seIlj.nic)=O)/*若产品名称相同*/if(se
10、lli.jesellj.je)/*则按金额从小到大进行排列*/(temp=selli;selli=sellj;sellj=temp;)void main()(memset($ell,0,sizeof(sell);ReadDat();SortDat();WriteDatO;)void ReadDat()(FILE*fp;char str80,ch ll;inti;fp=fopen(HIN3.DATn,HrH);for(i=0;i 100;i+)fgets(str,80,fp);memcpy(selli.dm,str,4);memcpy(selli.mc,str+4,10);memcpy(ch,s
11、tr+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 WriteDatO(FILE*fp;in ti;fp=fopenCOUT3.DAT,”w);for(i=0;i 100;i+)(fprintf(fp,n%s%s%4d%5d%101dnM,selli.dm,seUi.mc,selli.dj,seili).sl,selli.je);fclose(fp);)第四道函数ReadDat。的功能是实现从
12、文件ENG4.IN中读取一篇英文文章,存入到字符串数组xx中。请编制函数encryptChar。,按给定的替代关系对数组xx中的所有字符进行替代,结果仍存入数组xx对应的位置上,最后调用函数WriteDat。把结果xx输出到文件PS4.DAT中。替代关系:f(p)=p*ll mod256(p是数组xx中某一个字符的ASCII值,f(p)是计算后新字符的ASCH值),如果计算后f(p)的值小于等于32或大于1 3 0,则该字符不变,否则将f(p)所对应的字符进行替代。注意:部分源程序已给出。原始数据文件存放的格式是:每行的宽度均小于80个字符。请勿改动主函数main。、读函数ReadDat。和写
13、函数WriteDat()的内容。#include#include#include#include unsigned char xx5080;int maxline=0;/*文章的总行数*/int 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=xxij*ll%256;if(ch130)/*定义循环控制变量*/*存储字符串的长度*/*存储当前取得的字符*/*以行为单位获取字符*/*
14、求得当前行的字符串长度*/*依次取每行的各个字符*/continue;/*如果计算后的值小于等于32或大于1 3 0,则该字符不变*/elsexxij=ch;/*否则将所对应的字符进行替代*/)void main()(system(*CLSn);if(ReadDat()(printfT数据文件ENG4.IN不能打开!n007”);return;)encryptChar();VVriteDat();)int ReadDat(void)(FILE*fp;int i=0;unsigned char*p;if(fp=fopen(”ENG4IN,=NULL)return 1;while(fgets(xx
15、i,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(”PS4.DAT“,”w,f);for(i=0;i maxline;i+)(printf(n%snH,xxi);fprintf(fp,%sn,xxi);)fclose(fp);第五道函数ReadDat。的功能是实现从文件IN5.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数ConvertCharAO,该函数的功能是:以行为单位把字符串中的所有小写
16、字母改写成该字母的卜一个字母,如果是字母z,则改写成字母a。大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。把已处理的字符中仍按行重新存入字符印数组xx中,最后调用函数WriteDat。把结果xx输出到文件OUT5.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Acc.Bdeabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。注意:部分源程序一给出。请勿改动主:函数main。、读函数ReadDat。和写函数WriteDat。的内容。#include#include#include char xx5080J;int maxli
17、ne=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;jstr;j+)&xxiUk=z)/*如果是小写字母*/if(xxij=,z,)xxij=,a,;/*如果是小写字母z,则改写成字母a*/elsexxij+=l;/*其他的小写字母则改写为该字母的下一个字母*/void main(
18、)(system(HCLSM);if(ReadDat()(printf(数据文件 IN5.DAT 不能打开!n007”);return;ConvertCharA();WriteDat();int ReadDat(void)FILE*fp;int i=0;char*p;if(fp=fopenCIN5.DATH,HrH)=NULL)return 1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,1n);if(p)*p=0;i+;)maxline=i;fclose(fp);return 0;)void WriteDat(void)FILE*fp;int i;sy
19、stem(MCLSn);fp=fopen(HOUT5.DATn,nwH);for(i=0;i maxline;i+)printfC%sn,xxi);fprintf(fp,%snM,xxi);fclose(fp);第六道在文件IN6.DAT中有200个正整数,且每个数均在1000至9999之间。函数readDat。的功能是读取这200个数存放到数组aa中。请编制函数jsSort。,该函数的功能是:要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组b中,如果数组b中出现后3位相等的数,则对这些数按原始4位数据进行升序排列。最后调用函数writeDat。把结果bb输出到文件OUT6
20、.DAT中。例如:处理前 9012 5099 6012 7025 8088处理后 5099 8088 7025 6012 9012注意:部分源程序已给出。请勿改动上函数main。、读函数readDat()和写函数writeDat()的内容。#include#include#includeint aa200,bb10;void readDat();void writeDat();void jsSort()int ij;int temp;for(i=0;i199;i+)/*定义循环控制变量*/*定义数据交换时的暂存变量*/*用选择法对数组进行排序*/for(j=i+l;j200;j+)if(aai
21、%1000aaj)/*则要按原4位数的值进行升序排序可(temp=aai;aai=aaj;aaj=temp;)for(i=0;i10;i+)/*将排序后的前10个数存入数组b中*/bbi=aai;void main()(readDat();jsSort();writeDatO;)void readDat()(FILE*in;int i;in=fopen(,IN6.DAT,nrM);for(i=0;i 200;i+)fscanf(in,&aai);fclose(in);)void writeDatO(FILE*out;inti;out=fopenCOUT6.DATJ W);system(nCLS
22、*);for(i=0;i 10;i+)printf(ni=%d,%dnn,i+1,bbi);fprintf(out,M%dnn,bbi);)fclose(out);)第七道函数ReadDat()的功能是实现从文件IN7.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件QUT7.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,
23、含标点符号和空格注意:部分源程序已给出。请勿改动主:函数main()、读函数ReadDat()和写函数WritcDat()的内容。#include#include#includechar xx5080;int maxline=0;int ReadDat(void);void WriteDat(void);void SortCharDO(int ij,k;int str;char temp;for(i=0;iniaxline;i+)(str=strlen(xxi);for(j=0;jstr-l;j+)for(k=j+l;kstr;k+)if(XXijXXik)(temp=xxij;xxij=xx
24、ik;xxik=temp;/*定义循环控制变量*/*存储字符串的长度*/*定义数据交换时的暂存变量力/*以行为单位获取字符*/*求得当前行的字符串长度*/*对字符按从大到小的顺序进行排序可)void main()(system(nCLSH);if(ReadDatO)(printf(数据文件1N7.DAT不能打开八n007”);return;)SortCharDO;WriteDat();)int ReadDat(void)(FILE*fp;int i=0;char*p;if(fp=fopen(nIN7.DATn,HrH)=NULL)return 1;while(fgets(xxi,80,fp)!
25、=NULL)(p=strchr(xxi,n,);if(p)*p=0;i+;)maxline=i;fclose(fp);return 0;)void WriteDat()(FILE*fp;int i;system(nCLSH);fp=fopen(nOUT7.DATwH);for(i=0;imaxline;i+)(printf(sn”,xxi);fprintf(fp,H%sn*,xxi);)fclose(fp);)第八道对10个候选人进行选举,现有一个100条记录的选票数据文件IN8.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 三级 网络 考试 试题 答案
限制150内