第十一章 文件

一、选择题

1、标准库函数fgets(s,n,f)的功能是

A)从文件f中读取长度为n的字符串存入指针s所指的内存

B)从文件f 中读取长度不超过n-1的字符串存入指针s 所指的内存

C)从文件f中读取n个字符串存入指针s 所指的内存

D)从文件f中读取长度为n-1的字符串存入指针s所指的内存

2、若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是

A) EOF         B)-1                C)非零值       D)NULL

二、填空

1、 以下C程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出,(假定文件名无误), 请填空.

    #include  "stdio.h"

   main(int  argc, char *argv[ ] )

    {  FILE  *f1,f2;

          char      ch;

            if(argc<_____){ printf("命令行参数错!\n"); exit(0);}

            f1=fopen(argv[1],"r");

          f2=fopen(argv[2],"w");

          while(________)  fputc(fgetc(f1),___);

          _______; _______;

       }

2、以下程序由终端键盘输入一个文件名,然后把终端键盘输入的字符依次存放到该文件中,#作为结束的标志.请填空.

#include  "stdio.h"

main()

 {FILE  *fp           char   ch,fname[10];

prinhtf("Enter the mane of file\n"); gets(fname);

if(  (fp=___________)=NULL)  {printf("Open error\n");  exit(0);}

printf("Enter  data:\n):

while((ch=getchar())!'#')  fputc(_______,fp);

fclose(fp);

}

3、以下文件用来统计文件中字符的个数,请填空.

#include   stdio.h

main()

{  FILE  *fp ;  long num=0;

   if((fp=fopen(fname.dat, _______)=NULL)

      {printf(Open error\n);  exit(0);   }

   while_________

      {  ________;  num++;}

   printf(num=%d\n,num);

   fclose(fp);

}

4、以下程序编译.连接后生成可执行文件CPY.EXE.假定磁盘当前目录下有三个文本文件,其文件名和内容分别为:

文件名    内容

a         aaaa#

b         bbbb#

c         cccc#

DOS当前目录下键入:cpy  a  b<CR> (此处<CR>代表ENTER),则程序输出___________.

#include   stdio.h

void  fc(FILE  *);

main(int       argc,char *argv[])

{FILE  *fp;   int  i=1;

  while(--argc>0)

  {fp=fopen(argv [i++],r);

fc(fp);

fclose(fp);

}

void fc(FILE *fp);

{char  c;

while((c=getc(ifp)!=#)putchar(c-32);

}

三、编程题

1、请调用FPUTS函数,把戏10个字符串输入到文件中,再从此文件中读入这十个字符串放在一个字符串数组中,最后把字符串中的字符串输出到终端屏幕,以检验所有操作是否正确.

2、从键盘输入十个浮点数,以二进制形式存入文件中,再从文件中读出数据显示在屏幕上,修改文件第四个数.再从文件中读出数据显示在屏幕上,以验证修改是否正确.

公告通知
教学日历
疑难留言
同学你好!对本课程有哪些建议?