给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。 请在程序

admin2017-07-27  31

问题 给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
    不得增行或删行,也不得更改程序的结构!
1  #include<stdio.h>
2  #include<stdlib.h>
3   int fun(char *source,char*target)
4  {FILE *fs,*ft; char ch;
5  /**********found**********/
6   if((fs=fopen(source,_1__))==NULL)
7   return 0;
8  if((ft=fopen(target,’’w’’))==NULL)
9  return 0;
10  printf(’’\nThe data in file:\n’’);
11    ch=fgetc(fs);
12   /**********found**********/
13  while(!feof(__2__))
14   { putchar(ch);
15    /**********found**********/
16   fputc(ch,__3__);
17   ch=fgetc(fs);
18  }
19   fclose(fs);fclose(ft);
20   printf(’’\n\n’’);
21   return 1;
22  }
23   main()
24  {  char sfname[20]=’’myfile1’’, tfname[20]=’’myfile2’’;
25    FTTE *myf;int i;char c;
26   myf=fopen(sfname,’’w’’);
27  printf(’’\nThe    originaldata:\n’’);
28    for(i=1;i<30;i++)
29    {  c=’A’+rand()  %25;
30    fprintf(myf,’’%c’’,c);
31  printf(’’%c’’,c);}
32    fclose(myf);printf(’’\n\n’’);
33    if(fun(sfname,tfname))
34  printf(’’Succeed!’’);
35 else printf(’’Fail!’’);
36  }

选项

答案(1)’’r’’ (2)fs (3)ft

解析 第一空:将指定源文件中的内容复制到指定的目标文件中,源文件只需读,因此以只读方式打开即可,故第一空处应该是“if((fs=fopen(source,"r"))==NULL)”。
    第二空:“while(!feof( __2__ ))”循环的目的是不断读取源文件直至到达源文件的末尾,循环结束标志是已达到文件的末尾。用feof()函数来检查是否已经到了文件末尾,文件状态检测函数feoff)的调用形式是:feof(fs),如果已经到达文件尾函数返回非零值,否则返回0,故第二空处应该是“while(!feof(fs))”。
    第三空:考察fputc函数的使用方法,fputc函数的调用形式是:fputc(ch,ft),ch是要输出的字符,由“ch=fgetc(fs)”从源文件读到字符ch,然后将ch写到目标文件中,故第三空处应该是“fputc(ch,ft);”。
转载请注明原文地址:https://jikaoti.com/ti/rMi0FFFM
0

最新回复(0)