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

admin2021-04-28  29

问题 给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回值为1,失败时返回值为0。在复制的过程中,把复制的内容输出到终端屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。
    请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
    注意:源程序存放在考生文件夹下的BLANK1.C中。
    不得增行或删行,也不得更改程序的结构!
#nclude
#inolude
int fun(char*source,char*target)
{FILE*fs,*ft;  char ch;
/**********found**********/
  if((fs=fopen(source, _____ 1_____  ))
==NULL)
    return 0;
  if((ft=fopen(target,"w"))==NULL)
    return 0;
  printf("\nThe data in file:\/n");
  ch=fgetc(fs);
/**********found**********/
  while(!leof(_____ 2_____ ))
  {putchar(ch);
/**********found**********/
    fputc(ch,_____ 3_____  );
    ch=fgetc(fs);
    }
  fclose(fs); fclose(ft);
  printf("\n\n");
  return 1;
}
msin()
{  char sfname[20]="myfilel",
tfname[2 0]="myfile2";
  FILE*myf;int i;char c;
  myf=fopen(sfname,"w");
  printf("\nThe original data:\n");
  for(i=1 ;  i<3 0;i++)
  {  c=’A’+rand()  %25 ;
    fprintf(myf,"%c",c);
    printf("%c",c);}
  fclose(myf); printf("\n\n");
  if(fun(sfname,tfname))
    printf("Succeed!");
  else printf(”Fail1");
}

选项

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

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

最新回复(0)