B017

01-程序填空题 软件121, 唐鼎威 912浏览


所属年份:2010.9;2011.3;2012.3
下列给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回1,失败时返回0。在复制的过程中,把复制的内容输出到屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。
请在下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。

#include
#include
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(!feof(___2___))
{ putchar( ch );
/**********found**********/
fputc(ch,___3___);
ch=fgetc(fs);
}
fclose(fs); fclose(ft);
printf(“\n\n”);
return 1;
}
main()
{ char sfname[20] =”myfile1″,tfname[20]=”myfile2″;
FILE *myf; int i; char c;
myf=fopen(sfname,”w”);
printf(“\nThe original data :\n”);
for(i=1; i<30; 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("Fail!"); } [/cpp] 【参考答案】 (1) "r"  (2) fs  (3) ft 【考点分析】 本题考查:打开文件操作,fopen函数用来打开一个文件,其一般形式为 "文件指针名=fopen(文件名,使用文件方式);";文件结束检测函数feof函数;写字符函数fputc,功能是把一个字符写入指定的文件中,函数调用的形式为"fputc(字符量,文件指针);"其中,待写入的字符量可以是字符常量或变量,被写入的文件可以用写、读写、追加方式打开。文件一旦使用完毕,需使用关闭文件函数fclose将文件关闭,以避免文件的数据丢失等错误。 【解题思路】 填空1:本题考查对文件操作的掌握。打开一个文件的调用方式是,fs=fopen(文件名,使用文件方式),以只读的方式打开文件,所以文件打开方式为"r"。 填空2:while循环语句中,循环条件通过feof()函数来检测是否到文件结尾。 填空3:fputc()函数用于将一个字符写到磁盘文件上去,调用形式为:fputc(要输出的字符,文件指针)。