1、计算机三级数据库技术(上机操作)机试模拟试卷 39及答案与解析 一、程序设计题 1 函数 ReadDat()实现从数据文件 in dat中读取一篇英文文章存入到字符串数组xx中 ;请编写函数 StrOL(),其函数的功能是:以读入文章的行为单位。以空格或标点符号 (数据文件中仅含 “。 ”或 “ ”作为标点符号 )作为分隔符,对行中所有单词进行倒排,单词间必须以空格作为分隔符,之后把已处理的字符串 (分隔符只包含空格 )仍按行重新存入字符串数组 XX中。最后 main()函数调用函数 WriteDat()把结果XX输出到文件 out dat中。 例如:原文: YOU He Me I am a
2、student I like study 结果: Me He YOU study like I student a am I 【试题程序】 #include #include #include char xxE503 E803; int maxline=0; *文章的总行数 * int ReadDat(void); void WriteDat(void); void StrOL(void) void main() if(ReadDat() printf(“数据文件 IN DAT不能打开 ! n 007”); return; StrOL(); WriteDat(); int ReadDat(vo
3、id) FILE*fp: int i=0: char*P; if(fp=fopen(”in dat”, ”r”)=NULL) return 1; while(fgets(xxi1, 80, fp)!=NULL) p=strchr(xxEi-I, 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; i=0; j一一 ) if(!isalpha(xxBEi) *提取单词 * if(isalpha(xxgij+1) strcat(str, xxEi+j+1); *保存单词 * strcat(str, ”); ,xEqj= 0; *设置行尾 * strcat(str, xxi); *保存第一个单词 * strcpy(xxi,str); *复制字符串 *