第12部份 文件.docx
《第12部份 文件.docx》由会员分享,可在线阅读,更多相关《第12部份 文件.docx(24页珍藏版)》请在冰豆网上搜索。
第12部份文件
第13单元文件
一、单选题(每题1分,共20分)
1.C语言中,根据数据的组织形式,文件分为ASCII文件和:
A.记录文件
B.二进制文件
C.文本文件
D.标准文件
(知识点:
文件概念;难度系数:
1;答案:
B)
2.16位系统中的整数10000,在内存中占2个字节,如果以ASCII文件形式存储在文件中,占______个字节。
A.1个
B.2个
C.4个
D.5个
(知识点:
文件概念;难度系数:
1;答案:
D)
3.利用C语言的文件,可以把数据永久保存在______
A.磁盘
B.内存
C.屏幕
D.键盘
(知识点:
文件概念;难度系数:
1;答案:
A)
4.C语言中,FILE结构体变量的作用是:
A.存放文件中的数据
B.存放文件的有关信息(如文件名、文件状态等)
C.存放文件内容
D.作为文件缓冲区
(知识点:
文件类型指针;难度系数:
1;答案:
B)
5.文件所对应的FILE结构被以下哪个函数填充:
A.fopen
B.fclose
C.fread
D.fwrite
(知识点:
文件类型指针;难度系数:
3;答案:
A)
6.若有程序片段FILE*fp;fp=fopen(“a.txt”,”r”);则以下说法中正确的是:
A.fp指向磁盘文件a.txt的地址
B.fp指向磁盘文件a.txt所对应的FILE结构
C.如果fp不为NULL,表示文件打开失败
D.可以利用fp指针进行文件a.txt的写操作
(知识点:
文件类型指针;难度系数:
2;答案:
B)
7.fopen函数的作用是:
A.将文件的内容读入内存
B.读出文件的大小
C.建立与文件关联的FILE结构体变量并返回该结构体变量的地址
D.向文件写数据
(知识点:
文件类型指针;难度系数:
3;答案:
C)
8.以下对fopen函数的使用,正确的是:
A.fopen(“c:
\a.txt”,”r”)
B.fopen(“c:
\\a.txt”,”r”)
C.fopen(“C:
\a.txt”,”r+”)
D.fopen(“c:
\\a.txt”,”r-“)
(知识点:
fopen函数;难度系数:
1;答案:
B)
9.fclose函数的作用是:
A.删除文件
B.删除文件中的数据
C.释放与该文件相关联的FILE结构体变量
D.清空文件缓冲区
(知识点:
fclose函数;难度系数:
2;答案:
C)
10.若有函数调用fread(buffer,4,2,fp),则该次函数调用一共读出的数据大小是:
A.4个字节
B.3个字节
C.8个字节
D.16个字节
(知识点:
fread;难度系数:
1;答案:
C)
11.若有函数调用fread(buffer,4,3,fp),则buffer的大小应该:
A.不小于4个字节
B.不大于4个字节
C.不小于12个字节
D.不小于10个字节
(知识点:
fread;难度系数:
1;答案:
C)
12.已知fp是一个指向已打开文件的指针,则rewind(fp)的作用是:
A.使文件位置指针指向文件开头
B.使文件位置指针指向文件末尾
C.使文件位置指针指向文件中间
D.关闭文件指针
(知识点:
rewind;难度系数:
1;答案:
A)
13.fseek函数的作用是:
A.使文件长度为0
B.改变文件长度
C.删除文件
D.改变文件位置指针
(知识点:
fseek;难度系数:
1;答案:
D)
14.已知fp是一个指向已打开文件的指针,fseek(fp,100L,SEEK_SET)的作用是:
A.将位置指针移到离文件头100比特处
B.将位置指针移到离文件头100字节处
C.将位置指针移到离文件末尾100比特处
D.将位置指针移到离文件末尾100字节处
(知识点:
fseek;难度系数:
1;答案:
B)
15.已知fp是一个指向已打开文件的指针,fseek(fp,50L,SEEK_CUR)的作用是:
A.将位置指针移到离文件头50比特处
B.将位置指针移到离文件头50字节处
C.将位置指针移到离当前位置50比特处
D.将位置指针移到离当前位置50字节处
(知识点:
fseek;难度系数:
1;答案:
D)
16.已知fp是一个指向已打开文件的指针,fseek(fp,-50L,SEEK_CUR)的作用是:
A.将文件位置指针从当前位置向前移50字节
B.将文件位置指针从当前位置向后移50字节
C.将文件位置指针从当前位置向前移50比特
D.将文件位置指针从当前位置向前移50比特
(知识点:
fseek;难度系数:
1;答案:
A)
17.已知fp是一个指向已打开文件的指针,fseek(fp,-10L,SEEK_END)的作用是:
A.将文件位置指针从文件末尾处后退10个字节
B.将文件位置指针从文件头前移10个字节
C.将文件位置指针从文件末尾处后退10个比特
D.将文件位置指针从文件头前移10个比特
(知识点:
fseek;难度系数:
1;答案:
A)
18.ftell函数的作用是:
A.得到流式文件中的当前位置,用相对与文件末尾的位移量表示
B.检查文件操作的错误
C.获取文件操作的错误代码
D.得到流式文件中的当前位置,用相对与文件头的位移量表示
(知识点:
ftell;难度系数:
1;答案:
D)
19.putchar(‘a’,stdout)的作用是:
A.将字符‘a’输出到磁盘文件
B.将字符‘a’输出到屏幕
C.将字符‘a’输出到内存
D.将字符变量a的值输出到屏幕
(知识点:
fputc;难度系数:
2;答案:
B)
20.已知fp是一个指向已打开文件的指针,ch是一个字符型变量,则ch=fgetc(fp)的作用是:
A.获取键盘输入的字符,并赋值给ch
B.获取fp所指向的文件的第一个字节的内容,并赋值给ch
C.获取fp所指向的文件的当前文件位置指针所指向的一个字节的内容,并赋值给ch
D.将ch的值输出到fp所指向的文件中
(知识点:
fgetc;难度系数:
1;答案:
B)
二、多选题(每题1分,共20分)
1fscanf函数的不正确调用形式是
A)fscanf(fp,格式字符串,输出表列);
B)fscanf(格式字符串,输出表列,fp);
C)fscanf(格式字符串,文件指针,输出表列);
D)fscanf(文件指针,格式字符串,输入表列);
(知识点:
fscanf;难度系数:
1;答案:
BCD)
2下列不是系统的标准输入文件的是
A)键盘B)显示器C)软盘D)硬盘
(知识点:
文件概念;难度系数:
1;答案:
BCD)
3下列关于函数ftell(fp)的作用,不正确的是
A)初始化流式文件的位置指针B)移到流式文件的位置指针
C)得到流式文件中的当前位置D)关闭文件
(知识点:
ftell;难度系数:
1;答案:
ACD)
4下列关于函数rewind作用的说法,不正确的是
A)使位置指针重新返回文件的开头
B)将位置指针指向文件中所要求的特定位置
C)使位置指针指向文件的末尾
D)使位置指针自动移至下一个字符位置
(知识点:
rewind;难度系数:
1;答案:
BCD)
5下列fseek函数的调用形式中,不正确是
A)fseek(文件类型指针,起始点,位移量)
B)fseek(文件类型指针,位移量,起始点)
C)fseek(位移量,起始点,文件类型指针)
D)fseek(起始点,位移量,文件类型指针)
(知识点:
fseek;难度系数:
1;答案:
ACD)
6利用fseek函数可以实现的操作是
A)改变文件的位置指针B)文件的顺序读写
C)文件的随机读写D)改变文件指针的指向
(知识点:
fseek;难度系数:
2;答案:
AC)
7下列关于函数调用语句:
fseek(fp,-20L,2)的含义,不正确的是
A)将文件位置指针移到距离文件头20个字节处
B)将文件位置指针从当前位置向后移动20个字节
C)将文件位置指针从文件末尾处退后20个字节
D)将文件位置指针移到离当前位置20个字节处
(知识点:
fseek;难度系数:
1;答案:
ABD)
8下列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);
(知识点:
fwrite;难度系数:
1;答案:
ABC)
9以下fread函数的调用形式中,参数类型不正确的是
A)fread(intsize,char*buf,intcount,FILE*fp)
B)fread(int*buf,intsize,intcount,FILE*fp)
C)fread(intsize,intcount,char*buf,FILE*fp)
D)fread(intcount,char*buf,intsize,FILE*fp)
(知识点:
fread;难度系数:
1;答案:
ACD)
10.已知函数的调用形式:
fread(buffer,size,count,fp);其中buffer代表的是
A)一个整数,代表要读入的数据项总数
B)一个文件指针,指向要读的文件
C)一个指针,指向要读入数据的存放地址
D)一个指针,指向一个字符数组
(知识点:
fread;难度系数:
1;答案:
CD)
11.当顺利执行了文件关闭操作时,fclose函数的返回值是
A)-1B)NULLC)0D)1
(知识点:
fclose;难度系数:
2;答案:
BC)
12.若以“a+”方式打开一个已存在的文件,则以下叙述正确的是
A)文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
B)文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作
C)文件打开时,原有文件内容被删除,只可作写操作
D)被打开的文件应该是一个文本文件
(知识点:
foen;难度系数:
1;答案:
AD)
13.若要用fopen函数打开一个的二进制文件,该文件要既能读也能写,则文件方式字符串应是
A)"ab+"B)"wb+"C)"rb+"D)"ab"
(知识点:
fopen;难度系数:
1;答案:
AC)
14.若执行fopen函数时发生错误,则函数的返回值是
A)NULLB)0C)1D)EOF
(知识点:
fopen;难度系数:
1;答案:
AB)
15.以下叙述中正确的是
A)C语言中的文本文件以ASCⅡ码形式存储数据
B)C语言中对二进制文件的访问速度比文本文件快
C)C语言中,随机读写方式不适用于文本文件
D)C语言中,顺序读写方式不适用于二进制文件
(知识点:
文件概念;难度系数:
1;答案:
AB)
16.以下可作为函数fopen中第一个参数的正确格式是
A)c:
\user\text.txtB)“text.txt”
C)"c:
\user\text.txt"D)"c:
\\user\\text.txt"
(知识点:
fopen;难度系数:
1;答案:
BD)
17.fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是
A)只写B)追加C)读写D)只读
(知识点:
fgetc;难度系数:
1;答案:
CD)
18.以下叙述中正确的是
A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以
B)在程序结束时,应当用fclose函数关闭已打开的文件
C)在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
D)不可以用FILE定义指向二进制文件的文件指针
(知识点:
fopen,fclose,fread;难度系数:
1;答案:
BC)
19.下列关于C语言数据文件的叙述中不正确的是
A)文件由ASCII码字符序列组成,C语言只能读写文本文件
B)文件由二进制数据序列组成,C语言只能读写二进制文件
C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
(知识点:
文件概念;难度系数:
1;答案:
ABC)
20.若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是
A)fopen("A:
\user\abc.txt","r")B)fopen("A:
\\user\\abc.txt","r+")
C)fopen("A:
\user\abc.txt","rb")D)fopen("A:
\\user\\abc.txt","r")
(知识点:
fopen;难度系数:
1;答案:
BD)
三、判断题(每题1分,共20分)
1.C语言中,认为键盘是标准输入文件stdin
(知识点:
文件概念;难度系数:
1;答案:
T)
2.C语言中,认为显示器是标准输出文件stdout
(知识点:
文件概念;难度系数:
1;答案:
T)
3.C语言中,文件都是以ASCII码形式存储。
(知识点:
文件概念;难度系数:
1;答案:
F)
4.C语言中,文件是以记录(record)组成。
(知识点:
文件概念;难度系数:
1;答案:
F)
5.C语言中,文件存取是以字节为单位的。
(知识点:
文件概念;难度系数:
1;答案:
T)
6.FILE结构体变量在fopen函数被调用时填充
(知识点:
fopen;难度系数:
2;答案:
T)
7.若定义FILE*fp=fopen(“a.dat”,”r”),则fp指向磁盘文件a.dat的第一个字节。
(知识点:
fopen;难度系数:
2;答案:
F)
8.fopen(“c:
\\test.dat”,”r”)的作用是打开一个磁盘文件,此文件可以被执行写操作
(知识点:
fopen;难度系数:
1;答案:
F)
9.fopen(“test.txt”,”r”)表示为输入打开一个二进制文件
(知识点:
fopen;难度系数:
1;答案:
F)
10.使用文件前必须先打开文件
(知识点:
fopen;难度系数:
1;答案:
T)
11.文件时候结束后必须关闭文件
(知识点:
fclose;难度系数:
1;答案:
T)
12.fputc函数的作用是把一个字符写到磁盘文件中去。
(知识点:
fputc;难度系数:
2;答案:
T)
13.函数ftell(fp)的作用是初始化流式文件的位置指针
(知识点:
ftell;难度系数:
1;答案:
F)
14.fseek函数的正确调用形式是:
fseek(文件类型指针,位移量,起始点)
(知识点:
fseek;难度系数:
1;答案:
T)
15.C语言中,随机读写方式不适用于文本文件
(知识点:
fseek;难度系数:
2;答案:
F)
16.C语言中对二进制文件的访问速度比文本文件快
(知识点:
文件概念;难度系数:
3;答案:
T)
17.若执行fopen函数时发生错误,则函数的返回值是EOF
(知识点:
fopen;难度系数:
1;答案:
F)
18.当顺利执行了文件关闭操作时,fclose函数的返回值是1
(知识点:
fclose;难度系数:
1;答案:
F)
19.若以“a+”方式打开一个已存在的文件,则文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
(知识点:
fopen;难度系数:
1;答案:
T)
20.若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应是"wb+"
(知识点:
fopen;难度系数:
1;答案:
T)
四、填空题(每空1分,共20分)
1.系统的标准输入文件是指_______⑴_______
(知识点:
文件概念;难度系数:
1;答案:
⑴键盘)
2.系统的标准输出文件是指______⑵________
(知识点:
文件概念;难度系数:
1;答案:
⑵显示器)
3.在C程序中,文件可以用___⑶___方式存取,也可以用___⑷___方式存取
(知识点:
文件概念;难度系数:
1;答案:
⑶文本、⑷二进制)
4.feof(fp)函数用来判断文件是否结束,如果遇到文件结束,函数值为_______⑸____,否则为___⑹_____
(知识点:
feof;难度系数:
1;答案:
⑸非0值、⑹0)
5.在C语言中,文件的存取是以__⑺_____为单位的,这种文件被称为__⑻___文件
(知识点:
文件概念;难度系数:
1;答案:
⑺字节、⑻流)
6.若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:
fp=fopen(_⑼___,___⑽__)。
(知识点:
fopen;难度系数:
1;答案:
⑼”d1.dat”,⑽”rb”)
7.下面程序的功能是将一个磁盘中的文本文件复制到另一个磁盘文件中,两个文件名随命令行一起输入,输入时原有文件的文件名在前,新复制文件夹的文件名在后,请在_______处填入适当内容
#include
main(intargc,char*argv[])
{
FILE*oldFile,*newFile;
charch;
if(argc!
=__⑾____)
{
printf("Youforgottoenterafilename\n");
exit(0);
}
if((oldFile==fopen___⑿_____)==NULL)
{
printf("cannotopeninfile\n");
exit(0);
}
if((newFile==fopen____⒀____)==NULL)
{
printf("cannotopenoutfile\n");
exit(0);
}
while(!
feof(oldFile))
fputc(___⒁____,newFile);
fclose(old);
fclose(new);
}
(知识点:
fopen,fclose,fputc,fgetc;难度系数:
3;答案:
⑾3⑿”argv[1],r”⒀“argv[2],w”⒁fgetc(oldFile))
8.以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。
voidmain()
{
FILE*myf;longf1;
myf=____⒂____("test.t","rb");
fseek(myf,__⒃___,SEEK_END);
f1=ftell(__⒄___);
fclose(myf);
printf("%d\n",f1);
}
(知识点:
fopen,fseek,ftell;难度系数:
2;答案:
⒂fopen⒃0⒄myf)
9.下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中。
请填空。
voidmain()
{
FILE*fp;
charch;
if((fp=fopen(____⒅_____))==NULL)
exit(0);
while((ch=getchar())!
='@')
fputc(ch,____⒆__);
fclose(fp);
}
(知识点:
fopen,fputc;难度系数:
2;答案:
⒅“bi.dat”,”w”⒆fp)
10.设有以下结构体类型:
structst
{
charname[8];
intnum;
floats[4];
}student[50];
并且结构体数组student中的元素都已有值,若要将这些元素全部写到文件指针fp所对应的文件中,请将以下fwrite语句补充完整:
fwrite(student,___⒇____,1,fp);
(知识点:
fwrite;难度系数:
2;答案:
⒇sizeof(structst)*50)
五、阅读程序,选择结果(每题4分,共40分)
1.阅读以下程序及对程序功能的描述,其中正确的描述是
#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(!
eof(in))fputc(fgetc(in),out);
fcolse(in);
fcolse(out);
}
A)程序完成将磁盘文件的信息在屏幕上显示的功能
B)程序完成将两个磁盘文件合二为一的功能
C)程序完成将一个磁盘文件复制到另一个磁盘文件中
D)程序完成将两个磁盘文件合并并在屏幕上输出
(知识点:
文件操作函数综合应用;难度系数:
3;答案:
C
2.以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
main()
{FILE*fout;charch;
fout=fopen('abc.txt','w');
ch=fgetc(stdin);
while(ch!
='#')
{fputc(ch,fout);
ch=fgetc(stdin);
}
fclose(fout);
}
出错的原因是
A)函数fopen调用形式错误B)输入文件没有关闭
C)函数fgetc调用形式错误D)文件指针stdin没有定义
(知识点:
fopen,fgetc,fputc,fclose;难度系数:
2;答案:
A)
3.有以下程序
#include
main()