[计算机类试卷]国家三级信息管理技术机试模拟试卷2及答案与解析.doc

上传人:tireattitude366 文档编号:494955 上传时间:2018-11-28 格式:DOC 页数:4 大小:31KB
下载 相关 举报
[计算机类试卷]国家三级信息管理技术机试模拟试卷2及答案与解析.doc_第1页
第1页 / 共4页
[计算机类试卷]国家三级信息管理技术机试模拟试卷2及答案与解析.doc_第2页
第2页 / 共4页
[计算机类试卷]国家三级信息管理技术机试模拟试卷2及答案与解析.doc_第3页
第3页 / 共4页
[计算机类试卷]国家三级信息管理技术机试模拟试卷2及答案与解析.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家三级信息管理技术机试模拟试卷 2及答案与解析 一、程序设计题 1 函数 ReadDat()的功能是实现从文件 IN2.DAT中读取一篇英文文章存入到字符串数组 xx中;请编制函数 SUOL(),该函数的功能是:以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串 (应不含标点符号 )仍按行重新存入字符串数组 xx中,最后调用函数 WriteDat()把结果 xx输出到文件OUT2.DAT中。 例如,原文: You He Me I am a student 结果: Me He You student a am I 原始数据文件存放的格式是:每行的宽度均小于 80个字

2、符,含标点符号和空格。 注意:部分源程序已给出。 请勿改动主函数 main()、读函数 ReadDat()和写函数 WriteDat()的内容。 试题程序: #include stdio.h #include string.h #include conio.h #include ctype.h char xx50 80; int maxline = 0;/*文章的总行数 */ int ReadDat (void); void WriteDat(void); void StrOL(void) main() clrscr(); if (ReadDat () printf(“数 据文件 IN2DAT

3、不能打开 ! n007“); return; StrOL(); WriteDat ( ); int ReadDat (void) FILE *fp; int i = 0; char *p; if(fp = fopen(“IN2.DAT“, “r“) = NULL) return 1; while(fgets(xxi, 80, fp) != NULL) p = strchr(xx i, n); if(p) *p = 0; i+; maxline = i; fclose(fp); return 0; void WriteDat(void) FILE*fp; int i; clrscr(); fp

4、= fopen(“OUT2.DAT“, “w“); for(i = 0; i maxline; i+) printf(“%sn“, xxi); fprintf(fp, “%sn“, xxi); fclose(fp); 国家三级信息管理技术机试模拟试卷 2答案与解析 一、程序设计题 1 【正确答案】 void StrOL (void) int i,j,k,str1,l; char c; for (i=0; i maxline; i+) /*把各行中多余的标点符号去掉 */ for(j=0;j strlen(xxi) ;j+) c=xxi j; if (c =A else xxi j= ; for

5、 (l=0; l maxline; l+) char ch80=0; char pp80=0; str1=strlen(xx1); i=str1-1; k=1; while (1) while (xx1 i =a j =0; j- ) /*从当前行的最后一个字符开始,直到遇到空格 */ ppj+1=ppj; pp0=xx1 i; k+;i-; strcat ( ch, pp ); /*把该单词存放到数组 ch中 */ strcpy(pp, “ “); /*清空数组 pp*/ k=1; if (i=-1) break; /*如果处理完了一行,则退出循环 */ while(xxl i 0| (xx

6、1 i 9 j =0; j-) ppj+1 =ppj; pp0=xxl i; k+; i-; strcat (ch, pp); /*把空格加到数组 ch中 / strcpy (pp, “ “); /*清空数组 pp*/ k=0; if (i=-1)break; /*如果处理完了一行,则退出循环 */ strcpy (xx l, ch); /*把已处理的字符串仍按行重新存入字符数组xx中 / 【试题解析】 本题是有关字符串的处理问题。首先利用二重循环来按照先行后列的顺序取得 xx数组中的各个字符元素,这里用到了 strlen()函数,用来求字符串长度。对依次取得的字符做一些处理,即把多余的标点符号去掉,使 新的字符数组中只含有字母和空格。准备工作做完后,从当前行的最后一个字符开始取,不断的取每一个字符前面的字符,直到取得一个完整的单词后 (即遇到空格分隔时 ),就把该单词存放到数组 ch中 (用到了 strcat()函数来连接两个字符串,用 strlen()函数来对字符串求取串长度 ),还要把分隔符也放到 ch中去。接着去取该行中其他的字符组成的单词,重复上面的操作,对其他行同样处理。这样最终得到的字符串就是各行中单词出现的顺序的逆序了,但单词本身的字符顺序没有发生变化。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1