1、国家三级(网络技术)机试模拟试卷 302及答案与解析 一、程序设计题 1 函数 readData()的功能是实现从文件 IN DAT中读取一篇英文文章存入到字符串数组 inBuf中。请编制函数 arrangeChar(),该函数的功能是;以行为单位把字符串中所有的非字母字符用空格替换。最后把已处理的字符串仍按行重新存入字符串数组 inBuf中。函数 writeData()负责把结果输出到文件 OUT DAT中。 例如,原文; my name is Lln T2o Nice to meet you 结果; my name is L n T o Nice to meet you 原始数据文件存放的
2、格式是;每行的宽度均小于 80个字符,含标点符号和空格。 注意;部分源程序已给出。 请勿改动主函数 main()、读函数 readData()和写函数 writeData()的内容。 试题程序; #include #include #include #include #define LINE 50 #define COL 80 char inBufLINECOL+1; int totleLine=0;文章的总行数 int readData(void); void writeData(void); void arrangeChar() void main() system(“CLS“); if(
3、readData() print(“IN DAT cant be open! n 007“); return; arrangeChar(); writeData(); int readData(void) FILE*fp; int i=0; char*P; if(fp=fopen(“IN DAT“, “r“)=NULL)return 1; while(gets(inBufi, COL+1, fp)!=NULL) P=strchr(inBufi, n); if(p)*P= 0; i+; totleLine=i; fclose(fp); return 0; void writeData(void) FILE*fp; int i; fp=fopen(“OUT DAT“, “w“); for(i=0; iz|(inBufijZ&inBufija)|inBufijA) *如果遇到某一个非字母符号 * flag=1; 将标志置 1,表明此次处理中遇到了非字母符号 inBufEij=; 【试题解析】 本题主要考查字符串中字符的替代问题。这类题目比较简单,只要找到字符串中非字母字符就可以了。确定非字母字符的方法是,在 ASCII码表中,其 ASCII码值比 “z“大、比 “A“小和在 “Z“与 “a“之间的那些字符都是非字母字符,然后再用空格替代这些非字母字符即可。