问答题
给定程序的功能是:调用函数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);”。