问答题
给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
#include
#include
void WriteText(FILE *);
void ReadText(FILE *);
main()
{ FILE *fp;
if((fp=fopen("myfile4.txt","w"))==NULL)
{ printf(" open fail!!/n"); exit(0); }
WriteText(fp);
fclose(fp);
if((fp=fopen("myfile4.txt","r"))==NULL)
{ printf(" open fail!!/n"); exit(0); }
ReadText(fp);
fclose(fp);
}
/**********found**********/
void WriteText(FILE ___1___)
{ char str[81];
printf("/nEnter string with -1 to end :/n");
gets(str);
while(strcmp(str,"-1")!=0) {
/**********found**********/
fputs(___2___,fw); fputs("/n",fw);
gets(str);
}
}
void ReadText(FILE *fr)
{ char str[81];
printf("/nRead file and output to screen :/n");
fgets(str,81,fr);
while( !feof(fr) ) {
/**********found**********/
printf("%s",___3___);
fgets(str,81,fr);
}
}
【正确答案】第一处:要求填写文件流的自变量名,在这个函数中,已有的语句fputs("/n",fw);分析可知:由于文件流变量fw在函数体没有定义过,所以本处应填*fw或fw[]。
第二处:通过while循环语句,把键盘上输入的内容,要写入到指定的文件中,键盘上输入的内容已存入字符串str变量中,因此,本处应填写str。
第三处:要把已存入文件中的内容,再从文件中读出且已存入字符串变量str中,最后在屏幕显示出来,因此,此处应填写str。
【答案解析】