1、三级网络技术机试-226 及答案解析(总分:100.00,做题时间:90 分钟)一、上机题(总题数:1,分数:100.00)1.函数 readDat()是从文件 IN.DAT 中读取 20 行数据存放到字符串数组 XX 中(每行字符串长度均小于 80)。请编制函数 jsSort(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组 XX 中,最后调用函数 writeDat()把结果 XX 输出到文件 OUT.DAT 中。条件:从字符串中间一分为二,左边部分按字符的 ASC值降序排序,右边部分按字符的 ASC值升序排序。如果原字符串长度为奇数,则最中间的
2、字符不参加排序,字符仍放在原位置上。例如,位置 0 1 2 3 4 5 6 7 8源字符串 a b c d h g f e1 2 3 4 9 8 7 6 5则处理后字符串 d c b a e f g h4 3 2 1 9 5 6 7 8注意:部分源程序存在文件 PROG1.C 文件中。请勿改动数据文件 IN.DAT 中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的内容。试题程序#include #include char XX2080;void readDat();void writeDat();void jsSort()void main()re
3、adDat();jsSort();writeDat();void readDat()FILE *in;int i=0;char *p;in=fopen(“in.dat“,“r“);while(i20if(p) *P=0;i+;fclose(in);void writeDat()FILE *out;int i;out=fopen(“out.dat“,“w“);for(i=0;i20;i+)printf(“%s/n“,xxi);fprintf(out,“%s/n“,xxi);fclose(out);(分数:100.00)_三级网络技术机试-226 答案解析(总分:100.00,做题时间:90 分钟
4、)一、上机题(总题数:1,分数:100.00)1.函数 readDat()是从文件 IN.DAT 中读取 20 行数据存放到字符串数组 XX 中(每行字符串长度均小于 80)。请编制函数 jsSort(),其功能是:以行为单位对字符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组 XX 中,最后调用函数 writeDat()把结果 XX 输出到文件 OUT.DAT 中。条件:从字符串中间一分为二,左边部分按字符的 ASC值降序排序,右边部分按字符的 ASC值升序排序。如果原字符串长度为奇数,则最中间的字符不参加排序,字符仍放在原位置上。例如,位置 0 1 2 3 4 5 6 7
5、 8源字符串 a b c d h g f e1 2 3 4 9 8 7 6 5则处理后字符串 d c b a e f g h4 3 2 1 9 5 6 7 8注意:部分源程序存在文件 PROG1.C 文件中。请勿改动数据文件 IN.DAT 中的任何数据、主函数 main()、读函数 readDat()和写函数 writeDat()的内容。试题程序#include #include char XX2080;void readDat();void writeDat();void jsSort()void main()readDat();jsSort();writeDat();void readDa
6、t()FILE *in;int i=0;char *p;in=fopen(“in.dat“,“r“);while(i20if(p) *P=0;i+;fclose(in);void writeDat()FILE *out;int i;out=fopen(“out.dat“,“w“);for(i=0;i20;i+)printf(“%s/n“,xxi);fprintf(out,“%s/n“,xxi);fclose(out);(分数:100.00)_正确答案:(void jsSort()unsigned int i,j,k; /*定义变量*/int temp;for(i=0;i20;i+)for(j=
7、0;jstrlen(xxi)/2-1;j+) /*左侧排序*/for(k=j+1;kstrlen(xxi)/2;k+;if(xxijXXik)temp=XXij;XXij=XXik;XXik=temp;for(j=(strlen(xxi)+1)/2;jstrlen(xxi)-1;j+) /*右侧排序+/for(k=j+1;kstrlen(xxi);k+)if(xxijXXik)temp=XXij;XXij=XXik;XXik=temp;)解析:解析 本题要求将一篇英文文章以行为单位按规定步骤进行操作。依据题意,依次取得英文文章的每一行,用选择法将其当做数组先重新排序其左半部分,再重新排序其右半部分。