填空题   下列给定程序的功能是:调用函数fun将指定源文件中的内容复制到指定的目标文件中,复制成功时函数返回1,失败时返回0。在复制的过程中,把复制的内容输出到屏幕。主函数中源文件名放在变量sfname中,目标文件名放在变量tfname中。
    请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。
    注意:部分源程序给出如下。
    不得增行或删行,也不得更改程序的结构!
    试题程序:
    #include <stdio.h>
    #include <stdlib.h>
    int fun(char *source, char ,target)
    {FILE *fs,*ft;char ch;
    /********found********/
    if((fs=fopen(source, ______))==NULL)
    return0;
    if((ft=fopen(target, 'w'))==NULL)
    return0;
    printf('\nThe data in file :\n');
    ch=fgetc(fs);
    /********found********/
    while(!feof(______))
    {putchar(ch);
    /********found********/
    fputc(ch, ______);
    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');printf('%c',c);}
    fclose(myf);printf('\n\n');
    if (fun(sfname, tfname))
    printf('Succeed!');
    else printf('Fail!');
    }
 
【正确答案】
【答案解析】填空1:本题考查对文件操作的掌握。打开一个文件的调用方式是,fs=fopen(文件名,使用文件方式),以只读的方式打开文件,所以文件打开方式为'r'。 填空2:while循环语句中,循环条件通过feof()函数来检测是否到文件结尾。 填空3:fputc()函数用于将一个字符写到磁盘文件上去,调用形式为:fputc(要输出的字符,文件指针)。