计算机等级二级C语言章节习题及答案13.docx
《计算机等级二级C语言章节习题及答案13.docx》由会员分享,可在线阅读,更多相关《计算机等级二级C语言章节习题及答案13.docx(7页珍藏版)》请在冰豆网上搜索。
计算机等级二级C语言章节习题及答案13
2011年计算机等级二级C语言章节习题及答案(13)
第13章文件
一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。
)
13.1fseek函数的正确调用形式是
A)fseek(文件指针,起始点,位移量)
B)fseek(文件指针,位移量,起始点)
C)fseek(位移量,起始点,文件指针)
D)fseek(起始点,位移量,文件指针)
正确答案:
B
13.2若fp是指向某文件的指针,且已读到文件末尾,则函数feof(fp)的返回值是
A)EOF
B)-1
C)1
D)NULL
正确答案:
C
13.3fscanf函数的正确调用形式是
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.6C语言中,能识别处理的文件为
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.12fwrite函数的一般调用形式是
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.13C语言中,文件组成的基本单位为
A)记录
B)数据行
C)数据块
D)字符序列
正确答案:
D
13.14C语言中,系统的标准输入文件是指
A)键盘
B)显示器
C)软盘
D)硬盘
正确答案:
A
13.15有以下程序
#include
main()
{FILE*fp;inti=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)2030
B)2050
C)3050
D)3020
正确答案:
A
13.16阅读以下程序及对程序功能的描述,其中正确的描述是
#include
main()
{FILE*in,*out;
charch,infile[10],outfile[10];
printf("Entertheinfilename:
\n");
scanf("%s",infile);
printf("Entertheoutfilename:
\n");
scanf("%s",outfile);
if((in=fopen(infile,"r"))==NULL)
{printf("cannotopeninfile\n");
exit(0);
}
if((out=fopen(outfile,"w"))==NULL)
{printf("cannotopenoutfile\n");
exit(0);
}
while(!
feof(in))fputc(fgetc(in),out);
fclose(in);
fclose(out);
}
A)程序完成将磁盘文件的信息在屏幕上显示的功能
B)程序完成将两个磁盘文件合二为一的功能
C)程序完成将一个磁盘文件复制到另一个磁盘文件中
D)程序完成将两个磁盘文件合并并在屏幕上输出
正确答案:
C
13.17下面的程序执行后,文件test中的内容是
#include
voidfun(char*fname,char*st)
{FILE*myf;inti;
myf=fopen(fname,"w");
for(i=0;i
fclose(myf);}
main()
{fun("test","newworld");fun("test","hello,");}
A)hello,
B)newworldhello,
C)newworld
D)hello,rld
正确答案:
A
13.18假定当前盘符下有两个文本文件,如下
文件名a1.txta2.txt
内容123#321#
则下面程序段执行后的结果为
#include"stdio.h"
voidfc(FILE*p)
{charc;
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"
voidmain()
{FILE*fp;
inta[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(intargc,char*argv[])
{FILE*p1,*p2;
intc;
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;
{charch;
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;
chara[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.dat6*sizeof(char)
13.25用以下语句调用库函数malloc,使字符指针st指向具有11个字节的动态存储空间,请填空。
st=(char*)【6】;
正确答案:
malloc(11)或malloc(sizeof(char)*11)
13.26以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
FILE*myf;longf1;
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文件结束或出错