第十二章 文件
基础训练
一、填空题
1、 文件是指___________________________________________________________。
2、 根据数据的组织形式,C中将文件分为______ASCII码文件________和___二进制文件___________两种类型。
3、 现要求以读写方式,打开一个文本文件 stu1 ,写出语句:
__FILE *fp fp=fopen(“”,”r+”);_______________。
__________________________________。
4、 现要求将上题中打开的文件关闭掉,写出语句:___fclose(fp);__________________。
5、 若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则打开文件方式字
符串应该是___fopen(“a.txt”,”wb+”);__________。
二、选择题
1、若要打开A盘上user子目录下名为的文本文件进行读、写操作,下面符合此要求的函数调用是( ) 。
A) fopen("A:\","r") B) fopen("A:\\user\\","r+")
C) fopen("A:\","rb") C) fopen("A:\\user\\","w")
2、若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为( )。
A) 0 B) 1 C) -1 D) 一个非0值
3、 当已经存在一个文件,执行函数fopen(“”,”r+”)的功能是( )。
A)打开文件,清除原有的内容;
B)打开文件,只能写入新的内容;
C)打开文件,只能读取原有内容;
D)打开文件,可以读取和写入新的内容;
4、 fread(buf , 64,2,fp)的功能是:( )
A)从fp所指向的文件中,读出整数64,并存放在buf中;
B)从fp所指向的文件中,读出整数64和2,并存放在buf中;
C)从fp所指向的文件中,读出64个字节的字符,读两次,并存放在buf地址中;
D)从fp所指向的文件中,读出64个字节的字符,并存放在buf中;
5、 以下程序的功能是( ) 。
main()
{
FILE * fp;
char str[]=”Beijing 2008”;
fp = fopen(“file2”,”w”);
fputs(str,fp);
fclose(fp);
}
A)在屏幕上显示“Beiing 2008”;
B)把”Beijing 2008”存入file2文件中;
C)在打印机上打印出“Beiing 2008”;
D)以上都不对;
6、 以下程序是建立一个名为myfile的文件,并把从键盘输入字符存入该文件,当键盘上输入结束时关闭该文件。选择正确内容填空。
main()fgets和fgetc的区别
{ FILE *fp;
char c ;
char name[10];
fp=fopen(“myfile”,_”wb”_______);
do
{ c=getchar();
fputc(c , fp);
} while(c!=EOF);
fclose(fp); }
(1) A) fgets B)fopen C ) fclose D) fgetc
(2) A) “r” B) “r+” C ) “w” D) “w+”
三、设计题
1、 编写一个程序,以只读方式打开一个文本文件 ,如果打开,将文件地址放在fp文件指针中,打不开,显示“Cann’t open file \n. ”,然后退出。void main()
{
FILE *fp;
if((fp=fopen("","r"))='\0');
printf("")
}
综合训练
8、填空题
1、以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE *myf; ling f1;
myf= _________ (“test.t”,“rb”);
fseek(myf,0,SEEK_END); f1=ftel(myf);
fclose(myf);
printf(“%d\n”,f1);
2、下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空.
#include<stdio,h>
FILE *fp;
main()
{ int i,j;
if((fp=fopen(__”bi.dat”__________, "wb"))==NULL) exit(0);
for(i=0; i<10; i++)
{ scanf("%d",&j);
fwrite(&j,sizeof(int),1,______fp_______ );
}
fclose(fp);
3、以下程序用来统计文件中字符个数。请填空。
#include "stdio.h"
main()
{ FILE *fp; long num=0L;
if((fp=fopen("fname.dat","r"))==NULL)
{ pirntf("Open error\n"); exit(0);}
while( ___!feof(fp)______________ )
{ fgetc(fp); num++;}
printf("num=%1d\n",num-1);
fclose(fp);
}
4、以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。
#include <stdio.h>
main( )
{ FILE *fp;
char ch,fname[32]; int count=0;
printf("Input the filename :"); scanf("%s",fname);
if((fp=fopen( _fname____________ ,"w+"))==NULL)
{ printf("Can't open file:%s \n",fname); exit(0);}
printf("Enter data:\n");
while((ch=getchar())!="#"){ fputc(ch,fp); count++;}
fprintf(____________ ,"\n%d\n", count);
fclose(fp);
}
5、以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件中,然后从该文件读出字符串并显示出来。请填空。
#include
main()
{ FILE *fp;
char str[100]; int i=0;
if((fp=fopen("",___________))==NULL)
{ printf("can't open this file.\n");exit(0);}
printf("input astring:\n"); gest(str);
while (str[i])
{ if(str[i]>='a'&&str[i]<='z')
str[i]=_____ ________;
fputc(str[i],fp);
i++;
}
fclose(fp);
fp=fopen("",______________);
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
}
6、 下面程序由键盘输入字符,存放到文件中,用!结束输入,请在____________上填空。
#include <stdio.h>
main()
{ FILE *fp;
char ch ;
char fname[10];
printf(“Input name of file\n”);
gets(fname);
if ((fp=fopen( fname, “w”))==NULL)
{ printf (“cannot open file\n”);
exit(0) ;
}
printf((“Enter data:\n”);
while(_______________!=’!’) //提示:从键盘输入一个字符,如不是!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论