![](https://cos-cdn.shuashuati.com/pipixue-wap/2020-1230-1107-56/ti_inject-812ce.png)
●试题四 阅读以下说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 该程序的功能是从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后把结果xx输出到文件OUT6.DAT中。 例如:原文:You He Me I am a student. 结果:Me He You student a am I 原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。 【函数】 #include #include #include #include char xx[50][80]; int maxline=0;/*文章的总行数*/ int ReaaDat(void); void WriteDat(void); void StrOL(void) { char*pl,*p2,t[80]; int i; for(i=0;i {p1=xx[i];t[0]=0; while(*p1)p1++; while(p1>=xx[i]) {while(!isalpha(*p1)&&p1!=xx[i])p1--; p2=p1; while( (1) )p1--; if(p1==xx[i]) if(isalpha(*p1))p1--; else if(!isalpha(*(p1+1)))break; p2++; (2) ; strcat(t,p1+1); strcat(t,' '); } strcpy(xx[i],t); } } void main() { if( (3) ){ printf('数据文件in.dat不能打开!\n\007'); return; } StrOL(); writeDat(); getch(); } int ReadDat(void) { FILE*fp; int i=0; char*p; if((fp=fopen('e://a//in.dat','r'))==NULL)return 1; while(fgets(xx[i],80,fp)!=NULL){ p=strchr(xx[i],′\n′); if(p)*p=0; i++; } maxline= (4) fclose(fp); return 0; } void WriteDat(void) { FILE*fp; int i; fp=fopen('e:\\a\\out6.dat','w'); for(i=0;i< (5) ;i++){ printf('%s\n',xx[i]); fprintf(fp,'%s\n',xx[i]); } fclose(fp); }