100全国计算机三级网络技术上机习题附答案.docx

上传人:文*** 文档编号:64478285 上传时间:2022-11-29 格式:DOCX 页数:144 大小:267.24KB
返回 下载 相关 举报
100全国计算机三级网络技术上机习题附答案.docx_第1页
第1页 / 共144页
100全国计算机三级网络技术上机习题附答案.docx_第2页
第2页 / 共144页
点击查看更多>>
资源描述

《100全国计算机三级网络技术上机习题附答案.docx》由会员分享,可在线阅读,更多相关《100全国计算机三级网络技术上机习题附答案.docx(144页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 :下列程序的功能是:将大于整数m且紧 靠m的k个素数存入数组xx.请编写函数 num(int m,int k,int xx)实现函数的要求, 最后调用函数readwriteDAT。把结果输出 到文件out.dat中。例如:若输入17, 5,则应输出:19, 23, 29, 31, 37.注意:部分源程序已给出.请勿改动主函数main ()和函数readwri tcDAT () 的内容.类型:素数.void num(int m, int k, int xx 口)/ 标准答案 */int data=m+l;int half, n=0,1;(hal f=data/2; for (I =2; I

2、= half; 1+)if(data%12 0)break;if(Ihalf)xxn=data;n+;if (n=k)break;data+:或者:void num(int m, int k, int xx)int i, j, s=0;for(i=m+1;k0:i+)for(j=2; j i; j+)if(i%j=0) break; /注:素数为只能被自己和1 整除的数.如果i%j等于(),说明i不是素数,跳出 本层循环/if(i=j)xxs+=i;k一; )或者:void num(int m, int k, int xx) int i=0;for(m=m+1;k0;m+)if (isP(m)

3、 xxi+=m;k; 原程序如下:#include #include void readwriteDAT();int isP(int m) int i ;for(i = 2 ; i m ; i+)if(m % i = 0) return 0 ;return 1 ;Ivoid num(int m, int k, int xx)mainO int m, n, xxlOOO;clrscr();printf(*XnPlease enter two integers:*) scanf (*%d, %d*, &m, &n );num (m, n, xx);for (m = 0 ; m n ; m+)pri

4、ntf(*%d *, xxm);printf(n);readwriteDAT();system(pause);)void readwriteDAT() int m, n, xx1000, i ;FILE *rf, *wf ;rf = fopen(*in. dat, r);wf = fopen (out. dat*, w);for(i = 0 ; i 10 ; i+) fscanf (rf, %d %d*, &m, &n);num (m, n, xx);for(m = 0 ; m n ; m+) fprintf (wf, %d xxm);fprintf(wf, n);fclose(rf);fcl

5、ose(wf);2 :已知数据文件IN.DAT中存有200个四位数,并 已调用读函数readDat ()把这些数存入数组a中. 请考生编制函数jsVal (),其功能是:如果四 位数各位上的数字均是。或2或1或6或8,则统计 出满足此条件的个数ent,并把这些四位数按从 大到小的顺序存入数组b中。最后main()函数调 用写函数writeDat()把结果cnt以及数组b中符 合条件的四位数输出到0T.DAT文件中。注意:部分源程序存在文件PR()G 1. C文件中。程序中已定义数组:a200, b200,已定义变 量:ent请勿改动数据文件IN. DAT中的任何数据、主函数 main。、读函数

6、 readDat ()和写函数writ eDat () 的内容void jsVal() /标准答案/int bb4;int I, j, k, flag;for (I=0;K200;I+)bb0=a11/1000; bbl=aI%1000/100;bb2=aI%100/10; bb3=aI%10;for (j=0;j4;j+)if (bbj%2=0)flag=l;elseflag=0;break;)if (flag=l) bcnt=aI;cnt+; for(1=0;Icnt-1;1+) for(j=I+l;jcnt;j+) if (bIbj)k=bI;bI=bj;bj=k; )原程序如下:inc

7、lude define MAX 200int aMAX, bMAX, ent = 0;void jsVal () void readDat() int i ;FILE *fp ;fp = fopen(*in. dat, r);for(i = 0 ; i MAX ; i+) fscanf(fpJ飞d”, &ai);fclose(fp);)void main() int i ;readDat ();jsVal ();printf(满足条件的数二%dn”, ent);for(i = 0 ; i ent ; i+) printf(%d bi);printf(n);writeDat ();system(

8、pause);writeDat () FILE *fp ;int i ;fp = fopen (out. dat, w);fprintf(fp, %dn, ent);for(i = 0 ; i ent ; i+) fprintf(fp, %dn, bi);fclose(fp);)3例数READDAT ()实现从文件IN. DAT中读取篇 英文文章存入到字符串数组XX中;请编制函数 STROR (),其函数功能是:以行为单位把字符串中 的所有小写字母左边的字符串内容移到该串的 右边存放,然后并把小写字母(删除,余下的字符 串内容移到已处理字符串的左边存放.最后把已 处理的字符串仍按行重新存入字符

9、串数组XX中, 最后调用函数M RITEDAT ()把结果XX输出到文件 OUT. DAT中.例如:原文:You can create an index on any field.you have the correct record.结果: n any field. You can create an index rd.yu have the crrect rec原始数据文件存放的格式是:每行的宽度均小于 80个字符,含标点符号和空格.类型 字符串(单词)的倒置和删 除.void StrOR(void) /标准答案/(int I, j, k, index, strl;char ch;for

10、(1=0; Kmaxl ine; 1+)strl=strlen(xxI);index=strl;for(j=0;jstrl;j+)if(xxIj= o)(for(k=j;k=index;j)ch=xxI strl-1;for(k=strl-l;kO;k一)xxIk=xxIk-l;xxI0=ch;)或者:void StrOR(void)(int i;char a80, *p;for(i=0;imaxline;i+) p= strchr (xxi, );while(p) memset (a, 0, 80);memcpy (a, xxi, p-xxi);strcpy(xxi, p+1);strcat

11、 (xxi, a);p=strchr (xx i, o); )或者:void StrOR(void) ./*我的非指针解法/int i, righto, j, k;char tern80;for(i=0;i=0;j)if (xxi j=,o) righto=j;break; for(j=righto+l;jstrlen(xxi);j+) temk+=xxi j;for (j=0; jrighto; j+)if(xxij!= o) temk+=xxij;strcpy(xxi, tern);或者:注:该题要求的字符串中所有小写字母。左边的 字符串内容移到该串的右边存放,即将串中“最 后”个字母左右

12、两侧的内容互换。题中第一个 while ()特环的作用是让pl指向最后个字母 。、第一个ctrcatO函数的作用是将pl以后的 字符都放到新串t中,第二个Strcat ()函数的作 用是将p !以前的字符连接到新串t的后面(注意: 在些之前要让p 1所指的单元成为p 1前面字符串 的结束位置pl=、0)这时完成左右互换。最 后个whi le ()循环的作用是删除新串中的所有 小写字母飞,,采用的删除方法是不是的字母 一律留下,否则不留(即相当于删除.)void StrOR(void)int i;char *pl, *p2, t80;for(i=0;i=xxi) pl-;memcpy (t 1,

13、 pl + 1, p2-p 1);tlp2-pl=0;strcat (t, tl);strcat(t,);if(plxxi) k=0;strcpy(xxi, t);I1原程序如下:# include*stdio. h# include*string. h# include*conio. h*char xx5080;int maxline=0;int ReadDat(void);void WriteDat(void);void StrOR(void) void main()clrscr();if (ReadDat ()(printf(*Can* t open the file!n*);retur

14、n;StrOR();WriteDat();system(pause);)int ReadDat(void)FILE *fp;int i=0;char *p;if(fp=fopen(in. dat*, r)=NULL) return1;while(fgets(xxi, 80, fp)!=NULL)p=strchr(xxi, n);if(p) *p=。;i+;)maxiine=i;fclose(fp);return 0;Ivoid WriteDat(void)FILE *fp;int i;fp=fopen (out. dat, w);for(i=0;imaxline;i+)printf(%sn,

15、xxi);fprintf(fp, *%sn*, xxi);;fclose(fp);I4 :函数ReadDat ()实现从文件IN. DAT中读取 篇英文文章存入到字符串数组XX中;请编制函 数StrOL(),其函数的功能是:以行为单位对 行中以空格或标点符号为分隔的所有单词进行 倒排,同时去除标点符号,之后把已处理的字符 串(应不含标点符号)仍按行重新存入字符串数 组xx中。最后main()函数调用函数WrileDal() 把结果xx输岀到文件OUT6. DAT中。例如:原文:You He MeI am a student.结果:Me He Youstudent a am I原始数据文件存放的

16、格式是:每行的宽度均小 于80个字符,含标点符号和空格。类型:字符串(单词)的倒置和删 除。void StrOL(void) /标准答案/int I, j, k, strl, 1 ;char c;for (1=0; Kmaxline; 1+)for(j=0;j=,A &c=,a &c; for (1=0; Kmaxline; 1+)(char ch80 = 0; char pp80 = 0);strl=strlen(xxl);I=strl-l; k=l;while(l)while(xxl I= a &xxl I= A &xxl1=0; j)ppj+l=ppj ; pp0=xxl I; k+;I

17、; strcat (ch, pp); strcpy (pp, ); k= 1;if (I=-l) break;while(xxl I z )&I=0)(for(j=k; j=0; j) ppj+l=ppj ; pp0=xxl I; k+; I; strcat (ch, pp); strcpy (pp, );k=0;if(I=-l)break;strcpy(xx1,ch);)或者:void StrOL(void) int i, j, k, m, n, 11;char yy80;for(i=0; i =0; j) if (isalpha(xxi j) k+;else for(m=l; m=k; m

18、+)yyn+=xxij+m; k=0; if (xxi j= *) yyn+;for(m=l; m=k; m+) yyn+=xxij+m;yyn=0; strcpy (xxi, yy);I;原程序如下:# includestdio. h# include*string. h# includeconio. h# includc*ctype.hchar xx5080;int maxiine=0;int ReadDat(void);void WriteDat(void);void StrOR(void)void main()clrscr();if (ReadDat ()printf(*CanJ t

19、open the file!n*);return;)StrORO;WriteDat ();system(pause);)int ReadDat(void)FILE *fp;int i=0;char *p;if(fp=fopen(in. dat, r)=NULL) return1;while(fgets(xxi, 80, fp)!=NULL)p=strchr(xxi, n);if(p) *P=0;i+;maxiine=i;fclose(fp);return 0;Ivoid WriteDat(void)FILE *fp;int i;fp=fopen (out. dat, w);for(i=0;im

20、axline;i+)printf(%sn, xxi);fprintf(fp, %sn*, xxi);)fclose(fp);;5 :在文件in. dat中有200个正整数,且每个数均 在1000至9999之间。函数ReadDat ()读取这200 个数存放到数组aa中。请编制函数jsSort (),其 函数的功能是要求按每个数的后三位的大小进 行升序排列,然后取出满足此条件的前1。个数依 次存入数组b中,如果后三位的数值相等,则按原 先的数值进行降序排列。最后调用函数 WriteDat ()把结果bb输出到文件out. dat中。例:处理前 6012 5099 9012 7025 8088处理

21、后 9012 6012 7025 8088 5099注意:部分源程序已给出。请勿改动主函数main。、读数据函数ReadDat ()和输出数据函数Wr i teDat 0的内容。void jsSort () /标准答案/int I, j, data;for(I=0;I199;I+)for(j=I+l;jaaj%1000)(data=aaI;aaI=aaj;aaj=data; else if(aal%1000=aaj%1000) if(aaIaaj)(data=aaI;aaI=aaj;aaj=data;for(I=0;I10;I+)bbI=aaI;原程序如下:#includeincludestr

22、ing. h#includeint aa200,bb10;void jsSort 0readDat ();jsSort ();writeDat ();system(pause);IreadDat ()FILE *in;int i;in=fopen( in.dat , r );for(i=0; i200; i+) fscanf (in, *%d, ,&aai);fclose(in);IwriteDat ()FILE *out;int i;clrscr ();out=fopen(out. dat, w);for(i=0; i10; i+)printf (i=%d, %dn, i+1, bbi)fp

23、rintf (out, %dn, bbi);)void main()fclose (out);6 :在文件in. dat中有200个正整数,且每个数均 在1000至9999之间.函数ReadDat ()读取这200 个数存放到数组aa中.请编制函数jsSort (),其 函数的功能是:要求按每个数的后三位的大小逬 行降序排列,然后取出满足此条件的前10个数依 次存入数组b中,如果后三位的数值相等,则按原 先的数值逬行升序排列.最后调用函数 WriteDat ()把结果bb输出到文件out. dat中.例:处理前 9012 5099 6012 7025 8088处理后 5099 8088 702

24、5 6012 9012注意:部分源程序已给出.请勿改动主函数main。、读数据函数 ReadDat。和输出数据函数Wri teDat ()的内容.void jsSort () /标准答案/int I, j, data;for(1=0;1199;1+)for(j=I+l;j200;j+)(if (aaI%1000aaj)data=aaI ;aaI=aaj ;aaj=data;)for(I=0;I#includeint aa200,bb10;void jsSort() void main()(readDat ();jsSort ();writeDat ();system(pause);IreadD

25、at ()(FILE *in;int i;in=topen( in.dat , r );for(i=0; i200; i+)fscanf (in, %d, *,&aai);fclose(in);writeDat ()IFILE *out:int i;clrscrO :out=fopen (“ut. dat , w );for(i=0; i10; i+) printf (i=%d, %dn”, i + 1, bbi);fprintf (out, %dn”, bbi);Ifclose(out);)7 :已知在文件IN. DAT中存有100个产品销售记录, 每个产品销售记录由产品代码dm (字符型4

26、位), 产品名称me (字符型! 0位),单价dj (整型),数量 si (整型),金额.ie (长整型)四部分组成其中: 金额单价数量计算得出。函数ReadDatO是读 取这100个销售记录并存入结构数组sell中.请 编制函数SortDat (),其功能要求:按产品代码从 大到小进行排列,若产品代码相同,则按金额从 大到小逬行排列,最骈E列结果仍存入结构数组 sell中,最后调用函数WriteDatO把结果输出到 文件1T10. DAT中。注意:部分源程序存放在PROG 1.C中。请勿改动主函数ma in(),读数据函数RcadDal () 和输出数据函数Wri teDal ()的内容。v

27、oid SortDat() /标准答案/ int I, j;PRO xy;for(I=0;I99;I+)for(j=I+l;j100;j+)if (strcmp(sell1. dm, sellj. dm)0) xy=sellI;sellI=sellj;sellj=xy; else if(strcmp(sell1. dm, sellj. dm)=0) if(sellI. jesellj. je)x尸sell; sellI=sellj; sellj=xy; )原程序如下:#include#include#includestring.h#include#include#define MAX 100t

28、ypedef structchar dm5; /产品代码/char mcll; /产品名称/int dj; /*单价/int si; 次数量/long je; /金额/PRO;PRO sellMAX;void ReadDat ();void WriteDat();void SortDat ()()void main() memset(sell, 0, sizeof(sell);ReadDat ();SortDat ();Wri teDat (); void ReadDat()FILE *fp;char str80, chll;int i;fp=fopen(*IN. DA,r);for(i=0;

29、i100;i+) fgets(str, 80, fp);memcpy(selli. dm, str,4);memcpy(selli. me, str+4, 10);mcmcpy (ch, str+14, 4) ;ch4=0;selli. dj=atoi(ch);memcpy (ch, str+18, 5) ;ch5=0;sell i. sl=atoi(ch);sell i.je=(long)selli. dj*selli. si;fclose(fp);void WriteDat(void)FILE *fp;int i;fp=fopen(*0UT10. DA丁,”);for(i=0;i130|*

30、pf*11%256=32);else*pf=*pf*ll%256;pf+; ()或者void encryptChar0void main() int i, j;char *p;clrscr ();for(i=0;imaxline;i+)if (ReadDat () for(j=0;jstrlen(xxi);j+)printf (数据文件ENG. IN不能打开! n007”); P=(xxij*ll)%256;return;if(p130)encryptChar();else xxij=p; )WriteDat ();system(*pause*);原程序如下:#includeincludest

31、ring. hint ReadDat(void)#includeconio. h(#includeFILE *fp;int i=0;unsigned char xx5080;unsigned char *p;int maxline=0;/文章的总行数/if(fp=fopen(eng. in, r)=NULL) return 1:int ReadDat(void);while(fgets(xxi, 80, fp)!=NULL)void WriteDat(void);p二strchr(xxi, n );if(p)*p=0;void encryptChar()i+;void WriteDat(voi

32、d)maxline=i;fclose(fp);return 0;)void WriteDat(void)(FILE *fp;int i;fp=fopen(psi. dat*, w);for(i=0;imaxline;i+) printf(*%sn*, xxi);fprintf(fp, *%sn*, xxi);fclose(fp);)9 :函数(。近()实现从文件.D!中读取一 篇英文文章存入到字符串数组xx中;请编制函 数SortCharD(),其函数的功能是:以行为单 位对字符按从大到小的顺序进行排序,排序后 的结果仍按行重新存入字符串数组XX中。最后 main。函数调用函数WriteDat

33、 ()把结果xx输岀 到文件()UT2. DAT中。例:原文:dAe, BfC.CCbbAA结果:fedCBA.,bbCCAA原始数据文件存放的格式是:每行的宽度均小 于80个字符,含标点符号和空格。注意:部分源程序存放在PROGLC中。请勿改动主函数main ()、读数据函数ReadDat () 和输出数据函数Mi teDat ()的内容。类型:字符串(单词)的倒置和删 除。void SortCharD(void) /标准答案/int I, j, k, strl;char ch;for (1=0; Kmaxline; 1+)strl=strlen (xxI);for(j=0;jstrl-l;

34、j+)for(k=j+1;kstr1;k+)if(xxIjxxI k)ch=xxIj; xxIj=xxIk;xxI k=ch;)原程序如下:#include #include #include char xx5080;int maxline = 0 ; /文章的总行数/int ReadDat(void);void SortCharD(void)int I, j, k, strl;char ch;for (1=0; Kmaxline; 1+)(strl=strlen(xxI);for(j=0;jstrl-l;j+)for (k=j+1;kstr1;k+) if(xxIjn );if(p) *p

35、= 0 ;i+ ;maxline = i ;fclose(fp);return 0 ;void WriteDat(void)(FILE *fp ;int i ;clrscr0 ;fp = fopen(0UT2. DAT, w);for(i = 0 ; i maxline ; i+) printf(%sn, xxi);fprintf(fp, %sn*, xxi);fclose(fp)10请编制函数ConvertCharAO,其函数的功能 是:以行为单位把字符串中的所有小写字母改 写成该字母的下个字母,如果是字母z,则改 写成字母3大写字母和其它字符保持不变,把已 处理的字符串仍按行重新存入字符串数组XX 中 最后main。函数调用函数WriteDatO把结 果xx输出到文件0UT3. DAT中。例:原文: Adb. Bcdzaabck. LLh j结果:Acc. Bdcabbcdl.LLik原始数据文件存放的格式是:每行的宽度均小 于80个字符,含标点符号和空格。注意:

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

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

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

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