第13章 文件
一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)13.1 fseek函数的正确调用形式是
A)fseek(文件指针,起始点,位移量)
B)fseek(文件指针,位移量,起始点)
C)fseek(位移量,起始点,文件指针)
D)fseek(起始点,位移量,文件指针)
正确答案: B
13.2 若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是
A)EOF
B)-1
C)1
D)NULL
正确答案: C
13.3 fscanf函数的正确调用形式是
A)fscanf(fp,格式字符串,输出表列);
B)fscanf(格式字符串,输出表列,fp);
C)fscanf(格式字符串,文件指针,输出表列);
D)fscanf(文件指针,格式字符串,输入表列);
正确答案: D
13.4 下列关于C语言数据文件的叙述中正确的是
A)文件由ASCII码字符序列组成,C语言只能读写文本文件
B)文件由二进制数据序列组成,C语言只能读写二进制文件
C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
正确答案: D
13.5 函数fseek(pf, OL,SEEK_EN
D)中的SEEK_END代表的起始点是
A)文件开始
B)文件末尾
C)文件当前位置
D)以上都不对
正确答案: B
13.6 C语言中,能识别处理的文件为
A)文本文件和数据块文件
B)文本文件和二进制文件
C)流文件和文本文件
D)数据文件和二进制文件
正确答案: B
13.7 若调用fputc函数输出字符成功,则其返回值是
A)EOF
B)1
C)0
D)输出的字符
正确答案: D
13.8 已知函数的调用形式:fread(buf,size,count,fp),参数buf的含义是
A)一个整型变量,代表要读入的数据项总数
B)一个文件指针,指向要读的文件
C)一个指针,指向要读入数据的存放地址
D)一个存储区,存放要读的数据项
正确答案: C
13.9 当顺利执行了文件关闭操作时,fclose函数的返回值是
A)-1
B)TRUE
C)0
D)1
正确答案: C
13.10 如果需要打开一个已经存在的非空文件“Demo”进行修改下面正确的选项是
A)fp=fopen("Demo","r");
B)fp=fopen("Demo","ab+");
C)fp=fopen("Demo","w+");
D)fp=fopen("Demo","r+");
正确答案: D来源:-计算机二级考试
13.11 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
A)fopen("A:\user\abc.txt","r")
B)fopen("A:\\user\\abc.txt","rt+")
C)fopen("A:\user\abc.txt","rb")
D)fopen("A:\user\abc.txt","w")
正确答案: B
13.12 fwrite函数的一般调用形式是
A)fwrite(buffer,count,size,fp);
B)fwrite(fp,size,count,buffer);
C)fwrite(fp,count,size,buffer);
D)fwrite(buffer,size,count,fp);
正确答案: D
13.13 C语言中,文件组成的基本单位为
A)记录
B)数据行
C)数据块
D)字符序列
正确答案: D
13.14 C 语言中,系统的标准输入文件是指
A)键盘
B)显示器
C)软盘
D)硬盘
正确答案: A
13.15 有以下程序
#include main()
{ FILE *fp; int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);
fclose(fp);
}
程序运行后的输出结果是
A)20 30
B)20 50
C)30 50
D)30 20
正确答案: A
13.16 阅读以下程序及对程序功能的描述,其中正确的描述是
#include main()
{ FILE *in,*out;
char ch,infile[10],outfile[10];
printf("Enter the infile name:\n");
scanf("%s",infile);
printf("Enter the outfile name:\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{ printf("cannot open infile\n");
exit(0);
}
if((out=fopen(outfile,"w"))==NULL)
{ printf("cannot open outfile\n");
exit(0);
}
while(! feof(in))fputc(fgetc(in),out);
fclose(in);
fclose(out);
}
A)程序完成将磁盘文件的信息在屏幕上显示的功能
B)程序完成将两个磁盘文件合二为一的功能
C)程序完成将一个磁盘文件复制到另一个磁盘文件中
D)程序完成将两个磁盘文件合并并在屏幕上输出
正确答案: C
13.17 下面的程序执行后,文件test中的内容是
#include void fun(char *fname,char *st)
{ FILE *myf; int i;
myf=fopen(fname,"w" );
for(i=0;i
fclose(myf);}
main()
{ fun("test","new world"); fun("test","hello,");}
A)hello,
B)new worldhello,
C)new world
D)hello, rld
正确答案: A
13.18 假定当前盘符下有两个文本文件,如下
文件名 a1.txt a2.txt
内容 123# 321#
则下面程序段执行后的结果为
#include "stdio.h"
void fc(FILE *p)
{ char c;
while((c=fgetc(p))!=′#′) putchar(
C);
}
main()
{ FILE *fp;
fp=fopen("a1.txt","r");
fc(fp);
fclose(fp);
fp=fopen("a2.txt","r");
fc(fp);
fclose(fp);
putchar(′\n′);}
A)123321
B)123
C)321
D)以上答案都不正确
正确答案: A
13.19 阅读下面程序,程序实现的功能是(a123.txt在当前盘符下已经存在)
#include "stdio.h"
void main()
{ FILE *fp;
int a[10],*p=a;
fp=fopen("a123.txt","w");
while( strlen(gets(p))>0 )
{ fputs(a,fp);
fputs("\n",fp);
}
fclose(fp);
}
A)从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中
B)从键盘输入若干行字符,取前2行写入文本文件a123.txt中
C)从键盘输入若干行字符,第一行写入文本文件a123.txt中
D)从键盘输入若干行字符,依次写入文本文件a123.txt中
正确答案: D
13.20 阅读下面程序,此程序的功能为
#include "stdio.h"
main(int argc,char *argv[])
{ FILE *p1,*p2;
int c;
p1=fopen(argv[1],"r");
p2=fopen(argv[2],"a");
c=fseek(p2,0L,2);
while((c=fgetc(p1))!=EOF) fputc(c,p2);
fclose(p1);
fclose(p2);
}
A)实现将p1打开的文件中的内容复制到p2打开的文件
B)实现将p2打开的文件中的内容复制到p1打开的文件
C)实现将p1打开的文件中的内容追加到p2打开的文件内容之后
D)实现将p2打开的文件中的内容追加到p1打开的文件内容之后
正确答案: C来源:-计算机二级考试
二、填空题(请将每一个空的正确答案写在答题卡相应序号后。)13.21 利用 fseek 函数可以实现的操作是【1】
正确答案: 从所改变的文件位置指针处开始读写
13.22 下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中,请填空。
#include "stdio.h"
FILE *fp;
{ char ch;
if((fp=fopen(【2】))==NULL)exit(0);
while((ch=getchar( ))!='@')fputc (ch,fp);
fclose(fp);}
正确答案: "bi.dat","w"或"bi.dat","w+"
13.23 在对文件操作的过程中,若要求文件的位置指针回到文件的开始处,应当调用的函数是【3】。
正确答案: rewind()或fseek()
13.24 以下程序将数组a的4个元素和数组b的6个元素写到名为lett.dat的二进制文件中,请填空。
#include main ()
{ FILE *fp;
char a[4]="1234",b[6]="abcedf";
if((fp=fopen("【4】","wb"))=NULL) exit(0);
fwrite(a,sizeof(char),4,fp);
fwrite(b,【5】,1,fp);
fclose(fp);
}
正确答案: lett.dat 6*sizeof(char)
13.25 用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。
st=(char*)【6】 ;
正确答案: malloc(11) 或 malloc(sizeof(char)*11)
13.26 以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE *myf; long f1;
myf=【7】 ("test.t","rb");
fseek(myf,0,SEEK_EN
D);
f1=ftell(myf);
fclose(myf);
printf("%d\n",f1);
正确答案: fopen
13.27 “FILE *p”的作用是定义一个文件指针变量,其中的“FILE”是在 【8】 头文件中定义的。
正确答案: stdio.h
13.28 当调函数frend从磁盘文件中读取数据时,若函数数的返回时为5,则表明 【9】 ;若函数的返回值为0,则表明 【10】 。
正确答案: 读取的数据项做为5 文件结束或出错来