填空题 给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4. txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WriteText实现。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在 下的BLANK1. C中。不得增行或删行,也不得更改程序的结构!
#include <stdio. h>
#include <string. h>
#include <stdlib. h>
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);
}
}
【正确答案】
【答案解析】*fw str str
答案考生文件夹 [解析] 本题要求是把一段文本写到文件myfile4. txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。主要考查文件操作以及fputs和fgets函数的使用。
第一空:此处是补充函数参数名,参数类型已知是FILE文件指针,“fputs("/n", fw)”是将字符“/n”写入文件,可知fw是文件指针名,因此第一空处应该是“void writeText(FILE*fw)”。
第二空:“while(strcmp(str,"-1")!=0)”循环的结束标志是str字符串等于“-1”时循环退出,如果str不等于“-1”,执行循环体内容:用fputs函数将str字符串写入文件。fputs函数的调用形式是:“fouts(s, fp)”,其中s是指向字符串的指针或字符串数组名,fp是指向将要被写入的文件的文件指针,因此第二处应该是“fputs(str, fw)”。
第三空:“while(!feof(fr)”循环的作用是不断读取文件直到到达文件尾,每次最多读81个,将读到的数据放在str字符串里,并用printf输出到屏幕,因此第三处应该是“printf("%s", str)”。
[考点] 文件、字符数组和字符串。