《三级信息管理技术机试真题2010年03月.pdf》由会员分享,可在线阅读,更多相关《三级信息管理技术机试真题2010年03月.pdf(2页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1 真题 三级信息管理技术机试真题2010 年 03 月计算机三级信息管理(机试)第 1 题:函数 ReadDat()实现从文件 in.dat中读取一篇英文文章并存入到字符串数组xx中,请编制函数 sortcharD(),其函数的功能是以行为单位对字符按从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组中,最后调用函数writeDat(),把结果 xx 输出到文件 out.dat中。例:原文:dAeBfC 结果:ABCdef 原数据文件存放的格式是每行的宽度均小于80 个字符,含标点符号和空格。注意:部分源程序给出如下:请勿改动主函数 main()、读数据函数 ReadDat()和输
2、出数据函数writeDat()的内容。试题源程序#includestdio h#includestrinq h#includeconio h char xx(5080;int maxline=0;/*文章的总行数*/int ReadDat(void);void WriteDat(void);void SortCharD(void)int ReadDat(void)FILE*fp;int i=0;char*P;if(fp=fopen(INDAT,r)=NULL)return 1:while(fgets(xxi,80,fp)!=NULL)P=strchr(xxi,n);if(p)*P=0:i+:m
3、axline=i;fclose(fp);return 0;2 void WriteDat(void)FILE*fp;int i;fp=fopen(OUT DAT,w);for(i=0;i maxline;i+)printf(%sn,xxi);fprintf(fp,%sn,xxi);fclose(fp);void main()system(cls);if(ReadDat()printf(数据文件 INDAT不能打开!n007);return;SortCharD();WriteDat():参考答案:void SortCharD(void)int i,j,k,str;char ch;for(i=0;
4、i maxline;i+)/*遍历所有行*/str=strlen(xxi);for(J=0:Jstr-1;J+)for(k=J+1;kstr;k+)/*对每行元素进行选择排序*/if(xxijxxik)/*如果存在顺序,交换两个元素*/ch=xxij;xxij=xxik;xxik=ch;详细解答:本题主要考查的是字符串排序问题。首先用 for 循环和变量 i 对每一行遍历,对于某一行 xxi来说,使用两重 for 循环进行冒泡排序。对某一个字符 xxij来说,将该字符后面的每个字符xxik(k从 j+1 开始)和 xxiJ进行比较,如果存在顺序则使用临时变量ch,将 xxij和 xxik交换位置。