给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WfiteText实现。请在程序的下划线处填入正

admin2018-09-27  51

问题 给定程序的功能是:从键盘输入若干行文本(每行不超过80个字符),写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数ReadText和WfiteText实现。请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
    不得增行或删行,也不得更改程序的结构!
1  #include<stdio.h>
2  #include<string.h>
3  #include<stdlib.h>
4  void WriteText(FILE *);
5  void ReadText(FILE *);
6  main()
7  {FILE *fp;
8  if((fp=fopen(’’myfile4.txt’’,’’w’’))==NULL)
9  { printf(’’open fail!!\n’’);exit(0);}
10  writeText(fp);
11  fclose(fp);
12  if((fp=fopen(’’myfile4.txt’’,’’r’’))==NULL)
13  {printf(’’open fail!!\n’’);exit(0);}
14  ReadText(fp);
15  fclose(fp);
16  }
17  /**********found**********/
18  void WriteText(FILE  ___1___ )
19  {  char str[81];
20  printf(’’\nEnter string with -1 to end:\n’’),
21  gets(str);
22  while(strcmp(str,’’-1’’)!=0)  {
23  /**********found**********/
24  fputs(___2___,fw); fputs(’’\n’’,fw);
256  gets(sir);
26    }
27  }
28  void ReadText(FILE *fr)
29  {  char str[81];
30  printf (’’\nRead file and output to screen:\n’’);
31  fgets(sir,81,fr);
32  while(!leof(fr))  {
33  /**********found**********/
34  printf(’’%s’’,___3____);
35  fgets(sir,81,fr);
36   }
37 }

选项

答案(1)*fw (2)str (3)str

解析 本题要求是把一段文本写到文件myfile4.txt中,用-1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。主要考查文件操作以及fputs和fgets函数的使用。
    第一空:此处是补充函数参数名,参数类型已知是FILE文件指针,“fputs(’’\a",fw)”是将字符“\n”写入文件,可知fw是文件指针名,因此,第一空处应该是“void WriteText(FILE*fw)”。
    第二空:“while(strcmp(str,"-1’’)!=0)”循环的结束标志是str字符串等于“-1”时循环退出,如果str不等于“-1”,执行循环体内容:用fputs函数将str字符串写入文件。fputs函数的调用形式是:“fputs(s,fp)”,其中,s是指向字符串的指针或字符串数组名,fp是指向将要被写入的文件的文件指针,因此,第二处应该是“fputs(str,fw)”。
    第三空:“while(!feof(fr))”循环的作用是不断读取文件直到到达文件尾,每次最多读81个,将读到的数据放在str字符串里,并用printf输出到屏幕,因此,第三处应该是“printf(’’%s",str)”。
转载请注明原文地址:https://kaotiyun.com/show/G8xp777K
0

最新回复(0)