1、三级网络技术机试-211 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.函数:ReadDat()实现从文件 IN.DAT中读取一篇英文文章存入到字符串数组 xx中,请编制函数ConvertCharD(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母 a,则改写成字母 z,其他字符保持不变。把已处理的字符串仍按行重新存入字符串数组 xx中。最后 main()函数调用函数 WriteDat()把结果 xx输出到文件 OUT.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aca.Bbc
2、yzzabj.LLgi原始数据文件存放的格式是:每行的宽度均小于 80个字符,含标点符号和空格。注意:部分源程序存放在 PROG1.C中。请勿改动主函数 main()、读函数 ReadDat()和输出函数 WriteDat()的内容。试题程序#include #include char xx5080;int maxline=0; /*文章的总行数*/int ReadDat(void);void WriteDat(void);void ConvertCharD(void)void main()if (ReadDat() printf(“数据文件 IN.DAT不能打开!/n/007“);retur
3、n;ConvertCharD();WriteDat();int ReadDat(void)FILE *fp;int i=0;char *p;if(fp=fopen(“in.dat“,“r“)=NULL)return 1;while(fgets(xxi,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(“out.dat“,“W“);for(i=0;imaxline;i+)printf(“%s/n“,xxi);fpr
4、intf(fp,“%s/n“,xxi);fclose(fp);(分数:100.00)_三级网络技术机试-211 答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.函数:ReadDat()实现从文件 IN.DAT中读取一篇英文文章存入到字符串数组 xx中,请编制函数ConvertCharD(),其函数的功能是:以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母 a,则改写成字母 z,其他字符保持不变。把已处理的字符串仍按行重新存入字符串数组 xx中。最后 main()函数调用函数 WriteDat()把结果 xx输出到文件 O
5、UT.DAT中。例如,原文:Adb.Bcdzaabck.LLhj结果:Aca.Bbcyzzabj.LLgi原始数据文件存放的格式是:每行的宽度均小于 80个字符,含标点符号和空格。注意:部分源程序存放在 PROG1.C中。请勿改动主函数 main()、读函数 ReadDat()和输出函数 WriteDat()的内容。试题程序#include #include char xx5080;int maxline=0; /*文章的总行数*/int ReadDat(void);void WriteDat(void);void ConvertCharD(void)void main()if (ReadDa
6、t() printf(“数据文件 IN.DAT不能打开!/n/007“);return;ConvertCharD();WriteDat();int ReadDat(void)FILE *fp;int i=0;char *p;if(fp=fopen(“in.dat“,“r“)=NULL)return 1;while(fgets(xxi,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(“out.dat“,“W“);
7、for(i=0;imaxline;i+)printf(“%s/n“,xxi);fprintf(fp,“%s/n“,xxi);fclose(fp);(分数:100.00)_正确答案:(void ConvertCharD(void)int i,j; /*定义变量*/for(i=0;imaxline;1+) /*字符串改写*/for(j=0;j80;j+)if(xxijaelse xxij-;)解析:解析 本题要求逐行逐字对一篇英文文童进行处理,将其中的小写字母改写成相邻的字母。依据题意,应依次对每个字符检查,是小写字母的改写为它的上一个字母(即 ASC值减 1),如小写字母 a改写为小写字母 z,小写字母 b改写为小写字母 a。