计算机等级考试三级网络技术上机题及答案_第1页
计算机等级考试三级网络技术上机题及答案_第2页
计算机等级考试三级网络技术上机题及答案_第3页
计算机等级考试三级网络技术上机题及答案_第4页
计算机等级考试三级网络技术上机题及答案_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机等级考试三级网络技术上机题及答案xx下半年计算机等级考试备考中,为方便考生复习好计算机三 级网络技术,特最新网络技术模拟试题及答案解析如下:1.编写一个函数findStr(),该函数统计一个长度为2的字符 串在另一个字符串中出现的次数。例如,假定输入的字符串为asdasasdfgasdaszx67asdmklo,子字符串为as,函数返回值是6。函数ReadWrite()的功能是实现从文件in68.dat中读取两个字 符串,并调用函数findStr(),最后把结果输出到文件out68.dat中。注意:部分源程序已给出。请勿改动主函数main()和其他函数中的任何内容,仅在函数findStr

2、()的花括号中填入你所编写的若干语句。试题程序:#include#include#includevoidReadWrite();intfindStr(char*str,char*substr)voidmain()charstr81,substr3;intn;system(CLS);printf(输入原字符串:); gets(str);printf(输入子字符串:); gets(substr);puts(str);puts(substr); n=findStr(str,substr); printf(n=%dn,n);ReadWrite();voidReadWrite()charch,str81

3、,substr3;intn,len,i=0;FILE*rf,*wf;rf=fopen(in68.dat,r);wf=fopen(out68.dat,w); while(ifgets(str,80,rf);fgets(substr,10,rf);len=strlen(substr)-1;ch=substrlen; if(ch=n|ch=0 x1a)substrlen=0;n=findStr(str,substr);fprintf(wf,%dn,n);i+;fclose(rf);fclose(wf);【答案】intfindStr(char*str,char*substr)intn=0;/*定义计数

4、器变量,统计出现次数*/char*p,*r;/*定义指针变量来分别指向两个字符串*/ while(*str)/*如果字符串没有结束,则一直循环下去*/p=str;/*指针p指向字符串首地址*/r=substr;/*指针r指向子字符串首地址*/while(*r)/*若子字符串没有结束,则循环继续*/if(*r=*p)/*如果子字符串的第一个字符等于字符串中的该字符,则继续比较下一个字符*/ r+; p+;elsebreak;/*否则退出循环*/if(*r=0)/*如果子字符串在字符串中出现了一次*/ n+;/*则n加1,进行统计*/str+;/*指向字符串中的下一个字符*/returnn;/*返

5、回统计结果n*/【解析】本题主要考查了指针的相关操作。首先,通过外层的while循环取字符串的每一个字符,取完字 符串的所有字符之后, 循环才会终止。 用两个字符型指针分别指向两个字符串。逐个将字符串的字符跟子字符串的字符对比,如果相等,则两个指针都自加1,分别指向两个串的下一个字符。若不相等,则主串的指针加1,子串的指针重新指向起始位置,继续比较下一个字符。2.函数ReadDat()的功能是实现从文件IN67.DAT中读取一篇英 文文章存入到字符串数组xx中;请编制函数StrOL(), 该函数的功能 是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标

6、点符号)仍按行重新存入字符串数 组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT67.DAT中。例如,原文:YouHeMeIamastudent.结果:MeHeYoustudentaamI原始数据文件存放的格式是:每行的宽度均小于80个字符,含 标点符号和空格。注意:部分源程序已给出。请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。试题程序:#include#include#include#include#includecharxx5080;intmaxline=0;/*文章的总行数*/intReadDat(void);voidWri

7、teDat(void);voidStrOL(void)voidmain()system(CLS);if(ReadDat()printf(数据文件IN67.DAT不能打开!n007);return;StrOL();WriteDat();intReadDat(void)FILE*fp;inti=0;char*p;if(fp=fopen(IN67.DAT,r)=NULL)return1;while(fgets(xxi,80,fp)!=NULL)p=strchr(xxi,n);if(p)*p=0;i+;maxline=i;fclose(fp);return0;voidWriteDat(void)FIL

8、E*fp;inti;system(CLS);fp=fopen(OUT67.DAT,w);for(i=0;iprintf(%sn,xxi);fprintf(fp,%sn,xxi);定义数组暂存取得的单词*/将每行末尾字符的下标保存在j和k初始化两个字符数组*/while(1)/*无条件循环,循环体内有结束循环的语句*/while(isalpha(xxij)=0&j=0)/*若以j为下标的字符不是字母并且还在数组xx之内*/k=-j;while(isalpha(xxij)&j=0)/*若以j为下标的字符是字母并且还在数组xx之内*/j-;fclose(fp);【答案】voidStr

9、OL(void)inti,j,k;/*定义数组下标变量*/chart80,t180;/*for(i=0;ij=k=strlen(xxi)-1;/*中*/t0=t10=0;/*/*当退出这个循环时,xxij+1和xxik分别是同一个单 词的第一个和最后一个字母*/memcpy(t1,&xxij+1,k-j);/*将该单词保存到字符数组t1*/t1k-j=0;/*为t1中的单词添加字符串结束标志*/strcat(t,t1);/*将单词保存到数组t中*/strcat(t,);/*单词之间用空格分隔*/if(jbreak;/*则退出外层while循环*/strcpy(xxi,t);/*按行将处理完了字符串重新保存到数组xx中*/【解析】本题的主要算法是先让两字符指针都指向每一行字符的串尾,然

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论