第十一章 文件 |
一、选择题 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、从键盘输入十个浮点数,以二进制形式存入文件中,再从文件中读出数据显示在屏幕上,修改文件第四个数.再从文件中读出数据显示在屏幕上,以验证修改是否正确. |
|