填空题 1.  请补充main()函数,该函数的功能是:把文本文件text2中的内容追加到文本文件text1的内容之后。
    例如,文件text2的内容为“I'm very happy!”,文件text1的内容为“I'm a girl,”,追加之后文件text1的内容为“I'ma girl, I'm very happy”。
    注意:部分源程序如下。
    请勿改动main()函数和其他函数中的任何内容,仅在函数main()的横线上填入所编写的若干表达式或语句。
    试题程序:
    #include<stdlib.h>
    #include<stdio.h>
    #include<conio.h>
    #define M 80
    void main()
    {
    FILE *fp,*fp1,*fp2;
    int i;
    ehar c[M],ch;
    system("CLS");
    if((fp=fopen("text1.dat","r"))==NULL)
    {
    printf("file text1 cannot be opened\n");
    exit(0);
    }
    printf("\n text1 contents are:\n\n");
    for(i=0;(ch=fgetc(fp))!=EOF;i++)
    {
    c[i]=ch;
    putchar(c[i]);
    }
    fclose(fp);
    if((fp=fopen("text2.dat","r"))=NULL)
    {
    printf("file text2 cannot be opened\n");
    exit(0);
    }
    printf("\n\n\nB contents fire:\n\n");
    for(i=0;(ch=fgetc(fp))!=EOF;i++)
    {
    c[i]=ch;
    putchar(c[i]);
    }
    fclose(fp);
    if((fp1=fopen("text1.dat","a")) ______ (fp2=fopen("text2.dat","r")))
    {
    while((ch=fgetc(fp2))!=EOF)
    ______;
    }
    else
    {
    printf("Can not open text1 text2!\n");
    }
    fclose(fp2);
    fclose(fp1);
    printf("\n***new text1 contents***\n\n");
    if((fp=fopen("text1.dat","r"))==NULL)
    {
    printf("file text1 cannot be opened\n");
    exit(0);
    }
    for(i=0;(ch=fgetc(fp))!=EOF;i++)
    {
    c[i]=ch;
    putchar(c[i]);
    }
    ______;
    }
  • 1、
【正确答案】 1、&&
   fputc(ch,fp1)
   fclose(fp)    
【答案解析】 要让文件text2中的内容追加到文件text1的内容之后,两个文件都要存在,因此,第1空处填“&&”;如果两个文件均存在,则把文件text2中的每一个字符追加到文件text1的内容之后,因此,第2空处填“fputc(ch,fp1)”;每打开一个文件,当文件不再使用时要将该文件关闭,因此,第3空处填“fclose(fp)”。