内容正文:
学科网(北京)股份有限公司
学科网(北京)股份有限公司
编写说明:广西(职教高考)《电子与信息大类考纲百套卷》,依据《广西高等职业教育考试大纲与说明(电子与信息大类)》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第52卷,按《程序设计基础》范围和要求编写。具体内容为:(1)了解文件的定义及分类;(2)了解文件的打开及关闭。
广西《电子与信息大类考纲百套卷》 第52卷
《程序设计基础》
文件基础 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 下列关于C语言文件的叙述中,正确的是( )
A. C语言中的文件仅指磁盘上存储的数据文件,不包括源程序文件
B. C语言把文件看作是一个字符的序列,即流式文件
C. C语言文件只能以二进制形式存储,不能以ASCII形式存储
D. C语言文件必须有后缀名,否则无法被程序打开
【答案】B
【解析】C语言把文件看作是字符(字节)序列,称为流式文件。A错,文件分为程序文件(.c/.obj/.exe)和数据文件;C错,文件分为文本文件(ASCII)和二进制文件;D错,文件名后缀非必需,文件能否打开与后缀无关。
2. 在C语言中,从数据在存储器上的组织形式来看,文件分为( )
A. 程序文件和数据文件 B. 顺序文件和随机文件
C. 普通文件和设备文件 D. 文本文件和二进制文件
【答案】D
【解析】按数据在外存的组织形式,文件分为文本文件(ASCII文件,以字符形式存储)和二进制文件(以二进制形式存储)。A是按文件功能分类;B、C是其他分类方式。
3. C语言中用于定义文件指针变量的类型是( )
A. FILE B. file
C. FILE* D. struct file
【答案】C
【解析】文件指针变量定义为 FILE* fp;,fp是指向FILE类型结构体的指针。FILE是系统定义的结构体类型名(typedef struct _iobuf FILE),定义指针时需加*。file和struct file均不是标准类型名。
4. ANSI C标准采用缓冲文件系统处理数据文件,下列关于缓冲文件系统的叙述,错误的是( )
A. 系统自动在内存中为每个正在使用的文件开辟文件缓冲区
B. 从内存向磁盘写数据时,每写一个字符就立即写入磁盘一次
C. 缓冲区的目的是减少直接访问磁盘的次数,提高效率
D. fclose函数关闭文件时会自动刷新缓冲区
【答案】B
【解析】缓冲文件系统中,写数据时先把数据送到内存缓冲区,装满缓冲区后才一起写入磁盘,而非每写一个字符就写一次磁盘(那样效率极低)。A、C、D描述均正确。
5. 在C语言中,函数fopen("test.txt", "r")的功能是( )
A. 以只读方式打开一个已存在的文本文件test.txt
B. 以只写方式打开一个文本文件test.txt,文件不存在则新建
C. 以读写方式打开一个文本文件test.txt
D. 以追加方式打开一个文本文件test.txt,文件不存在则新建
【答案】A
【解析】"r"表示只读(read),要求文件必须已存在,若文件不存在则打开失败返回NULL。B是"w"模式;C是"r+"模式;D是"a"模式。
6. 下列文件使用模式中,打开文件后文件指针位于文件末尾的是( )
A. "r" B. "w"
C. "a" D. "r+"
【答案】C
【解析】"a"(追加)模式打开文件后文件指针位于文件末尾,便于在文件尾追加数据;"r"、"r+"打开文件后指针在文件开头;"w"打开文件后指针在文件开头(且文件内容被清空)。
7. 执行语句 fp=fopen("data.txt","w"); 后,若磁盘上原来不存在data.txt文件,则( )
A. 打开失败,返回NULL
B. 程序出错终止运行
C. 系统提示用户先创建文件
D. 创建名为data.txt的文件
【答案】D
【解析】"w"(只写)模式打开文件时,若文件不存在则自动创建新文件;若文件存在则清空其内容。A错,"r"模式才在文件不存在时返回NULL。
8. 下列关于fclose函数的叙述,正确的是( )
A. 调用fclose后,文件指针变量自动变为NULL
B. fclose只能关闭用fopen打开的文本文件,不能关闭二进制文件
C. fclose函数不需要参数
D. fclose成功关闭文件时返回0,失败时返回EOF
【答案】D
【解析】fclose(int fclose(FILE* stream))成功返回0,失败返回EOF;A错,fclose不会自动把指针置NULL,需程序员手动置NULL以防野指针;B错,文本/二进制文件均可关闭;C错,需传入要关闭的文件指针。
9. 设已有定义 FILE *fp;,则以下打开文件并检查是否成功的代码段,正确的是( )
A. fp=fopen("f.txt","r"); if(fp==NULL) printf("打开失败");
B. if((fp=fopen("f.txt","r"))==NULL) printf("打开失败");
C. if(fp=fopen("f.txt","r")==NULL) printf("打开失败");
D. if(fp=fopen("f.txt","r"))==NULL) printf("打开失败");
【答案】B
【解析】正确写法是将fopen的返回值赋给fp并用括号括起来再与NULL比较:if((fp=fopen(...))==NULL)。C错,因==优先级高于=,会先比较fopen返回值与NULL再把0/1赋给fp,逻辑错误。A虽能工作但未在打开时立即判断。D括号匹配错误。
10. C语言程序运行时,系统自动打开的三个标准流文件是( )
A. stdin、stdout、stderr,类型均为int
B. standard、output、error,类型均为FILE
C. input、output、error,类型均为char*
D. stdin、stdout、stderr,类型均为FILE*
【答案】D
【解析】C程序启动时系统自动打开三个标准流:stdin(标准输入,键盘)、stdout(标准输出,显示器)、stderr(标准错误,显示器),它们都是FILE*类型的文件指针,无需手动打开和关闭。
11. 以下程序段执行后,文件f.txt中原有内容的状况是( )
FILE *fp;
fp=fopen("f.txt","w");
if(fp!=NULL){ fputs("hello", fp); fclose(fp); }
A. 原有内容保持不变,"hello"添加到文件末尾
B. 原有内容被全部清空,文件中只有"hello"
C. 原有内容保持不变,"hello"覆盖文件开头
D. 程序出错,无法写入
【答案】B
【解析】"w"模式打开文件时,若文件已存在会清空其原有内容。因此f.txt原有内容被清空,再写入"hello",文件中只有"hello"。若要保留原内容并在末尾追加应使用"a"模式。
12. 下列文件使用模式中,既能读又能写,且文件不存在时打开失败的是( )
A. "w+" B. "a+"
C. "r+" D. "ab+"
【答案】C
【解析】"r+"模式打开文本文件用于读写,要求文件必须已存在,文件不存在时打开失败返回NULL。"w+"和"a+"在文件不存在时会新建文件;"ab+"是二进制读写追加模式。
13. 在C语言中,fopen函数打开文件失败时的返回值是( )
A. NULL B. EOF
C. -1 D. 0
【答案】A
【解析】fopen打开成功返回指向FILE的指针,失败返回NULL(空指针)。EOF是fclose失败或读写函数出错时的返回值;0是fclose成功的返回值。程序中应判断fopen返回值是否为NULL以处理打开失败的情况。
14. 下列关于文本文件与二进制文件存储整数的叙述,正确的是( )
A. 整数10000在文本文件中占用5个字节
B. 整数10000在文本文件中占用4个字节
C. 整数10000在二进制文件中占用5个字节
D. 整数10000在文本文件和二进制文件中占用的字节数相同
【答案】A
【解析】文本文件以ASCII码形式存储,10000由5个字符'1''0''0''0''0'组成,占5字节;二进制文件以二进制形式存储int型数据,通常占4字节(32位系统)。字符一律以ASCII存储,数值型数据二者皆可。
15. 在C语言中,若要以"读写"方式打开一个二进制文件,且文件不存在时自动创建,应使用的打开模式是( )
A. "rb+" B. "ab+"
C. "wb+" D. "r+b"
【答案】C
【解析】"wb+"模式:以读写方式打开二进制文件,文件不存在时自动创建,文件存在时清空内容。"rb+"和"r+b"要求文件已存在(不存在则失败);"ab+"是追加读写模式,初始指针在末尾。
16. 下列关于C语言中缓冲文件系统的叙述,错误的是( )
A. 缓冲文件系统需要程序员自己手动设置缓冲区
B. 缓冲区的作用是减少直接读写磁盘的次数,提高I/O效率
C. fclose函数在关闭文件时会自动将缓冲区中未写入的数据写入磁盘
D. 可用fflush函数主动刷新缓冲区
【答案】A
【解析】缓冲文件系统中,缓冲区由系统自动开辟和管理,程序员无需手动设置。A描述错误。B、C、D均正确:缓冲区提高效率,fclose自动刷新,fflush可主动刷新。
17. 以下程序的输出结果是( )
#include <stdio.h>
int main(){
FILE *fp;
fp=fopen("a.txt","w");
if(fp==NULL) printf("1");
else printf("2");
fclose(fp);
return 0;
}
A. 1 B. 0
C. 程序出错 D. 2
【答案】D
【解析】fopen以"w"模式打开文件,若a.txt不存在会自动创建,因此一般打开成功返回非NULL指针,条件fp==NULL为假,执行else输出2。本题考查"w"模式在文件不存在时自动创建的特性。
18. 以下程序段中,与语句 fp=fopen("f.dat","rb"); 功能等价的是( )
A. fp=fopen("f.dat","r+b"); B. fp=fopen("f.dat","r+");
C. fp=fopen("f.dat","r+b"); D. fp=fopen("f.dat","wb");
【答案】C
【解析】"rb"是二进制只读模式,与"r+b"完全等价(b的位置可前可后)。A中"r+b"也等价但与C重复;B中"r+"是文本文件读写模式,不等价;D中"wb"是二进制只写模式,会清空文件内容,不等价。
19. 下列关于文件关闭的叙述,正确的是( )
A. 文件使用完毕后应及时关闭,以释放系统资源并保证缓冲区数据写入磁盘
B. 文件关闭后,文件指针变量自动释放,无需再赋NULL
C. 一个程序中打开的文件会在程序结束时自动关闭,因此无需调用fclose
D. fclose函数关闭文件时不会刷新缓冲区
【答案】A
【解析】文件使用完毕应及时调用fclose关闭:①释放系统资源(文件信息区);②将缓冲区未写入数据刷新到磁盘。B错,指针变量本身不释放,需手动置NULL防野指针;C错,虽然程序结束会关闭,但依赖此机制可能导致数据丢失;D错,fclose会刷新缓冲区。
20. 已有定义 FILE *fp;,若要以追加方式打开文本文件log.txt(文件不存在时自动创建),正确的fopen调用是( )
A. fp=fopen("log.txt","w"); B. fp=fopen("log.txt","a");
C. fp=fopen("log.txt","r"); D. fp=fopen("log.txt","r+");
【答案】B
【解析】"a"模式:以追加方式打开文本文件,文件不存在时自动创建,文件存在时保留原内容,指针位于文件末尾,适合日志文件的追加写入。"w"会清空原内容;"r"要求文件存在且只读;"r+"要求文件存在且读写。
二、判断题(本大题共10小题,每题1分,共10分)
1. C语言把文件看作是一个字符的序列,即流式文件,文件的存取以字符为单位。( )
【答案】√
【解析】C语言采用流式文件模型,把文件看作字符(字节)序列,读写以字符(字节)为单位进行,这是C语言文件处理的基本特点。
2. 文本文件和二进制文件都可以用来存储数值型数据,但二者在磁盘上的存储形式不同。( )
【答案】√
【解析】数值型数据既可用ASCII形式存储(文本文件),也可用二进制形式存储(二进制文件)。文本文件需经ASCII码转换,二进制文件不加转换直接存储,二者存储形式不同。
3. fopen函数的返回值类型是int,成功返回1,失败返回0。( )
【答案】×
【解析】fopen的返回值类型是FILE*(文件指针),成功返回指向FILE结构体的指针,失败返回NULL(空指针),而不是int型的1或0。
4. 以"w"模式打开一个已存在的文件时,文件原有内容会被全部清空。( )
【答案】√
【解析】"w"(只写)模式打开已存在文件时会清空其原有内容,文件指针指向文件开头,便于重新写入。若要保留原内容应使用"a"模式。
5. fopen("data.txt","r"); 中,若data.txt文件不存在,系统会自动创建该文件。( )
【答案】×
【解析】"r"(只读)模式要求文件必须已存在,若文件不存在则打开失败返回NULL,不会自动创建。只有"w"、"a"、"w+"、"a+"等模式才在文件不存在时自动创建。
6. fclose函数关闭文件成功时返回0,失败时返回EOF;关闭文件时会自动刷新缓冲区。( )
【答案】√
【解析】fclose成功返回0,失败返回EOF(通常为-1)。关闭文件时会自动将缓冲区中未写入磁盘的数据刷新写入,并释放文件信息区和缓冲区资源。
7. C语言程序运行时,系统自动打开stdin、stdout、stderr三个标准流,它们是FILE*类型的文件指针。( )
【答案】√
【解析】C程序启动时系统自动打开三个标准流:stdin(标准输入,键盘)、stdout(标准输出,显示器)、stderr(标准错误,显示器),类型均为FILE*,程序中可直接使用,无需手动打开关闭。
8. FILE是C语言的关键字,由语言标准直接定义,用户不能修改。( )
【答案】×
【解析】FILE不是C语言的关键字,而是系统在stdio.h头文件中通过typedef定义的结构体类型名(typedef struct _iobuf FILE),它是一个类型标识符而非关键字。
9. "r+"和"w+"都是以读写方式打开文本文件,二者在文件不存在时的行为完全相同。( )
【答案】×
【解析】"r+"要求文件必须已存在,文件不存在时打开失败返回NULL;"w+"在文件不存在时自动创建新文件,文件存在时清空内容。二者在文件不存在时行为不同。
10. 二进制文件以二进制形式存储数据,占用空间通常比存储同样数据的文本文件小,且读取速度快。( )
【答案】√
【解析】二进制文件不加转换直接存储内存中的数据,无ASCII码转换开销,通常占用空间更小(如int型10000占4字节,文本文件占5字节),且读写时无需转换,速度更快。
三、填空题(本大题共5小题,每题3分,共15分)
1. C语言中,文件按其在外存上的组织形式分为______和______两大类。
【答案】文本文件;二进制文件
【解析】文本文件以ASCII码形式存储字符,每个字符占1字节;二进制文件以二进制形式存储,直接反映内存中的数据形式。
2. C语言中文件指针变量的类型是______。
【答案】FILE*
【解析】文件指针定义为FILE* fp;,fp指向FILE类型的结构体变量,该结构体存放文件名、状态、当前位置等文件信息。
3. fopen函数的返回值类型是FILE*,当文件打开失败时返回______。
【答案】NULL
【解析】fopen成功返回指向FILE结构体的指针,失败返回NULL。编程时必须检查返回值是否为NULL以处理打开失败情况。
4. fclose函数的功能是关闭文件,关闭成功时返回______,失败时返回______;关闭文件时还会自动刷新文件缓冲区。
【答案】0;EOF
【解析】fclose成功返回0,失败返回EOF(通常定义为-1)。关闭文件时自动将缓冲区未写入数据写入磁盘,释放文件信息区和缓冲区。
5. 在C语言中,若要以只读方式打开一个必须已存在的二进制文件data.dat,应使用 fp=fopen("data.dat",______); 。
【答案】"rb"
【解析】"a"是文本文件追加模式,文件不存在时自动创建;"rb"是二进制文件只读模式,要求文件必须已存在,不存在则打开失败。
四、应用题(本大题共3小题,每题5分,共15分)
1. 以下程序的功能是:以只读方式打开文本文件test.txt,并检查是否打开成功,若失败则输出提示信息并结束程序。请在横线处填入适当代码。
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE *fp;
fp=fopen("test.txt", (1) );
if((2)){
printf("文件打开失败!
");
exit(0);
}
/* 文件读写操作略 */
fclose(fp);
return 0;
}
【答案】(1)"r" (2)fp==NULL
【解析】(1)只读打开文本文件用模式。(2)fopen打开失败返回NULL,故判断条件为fp==NULL,若为真则输出提示并退出程序。本题考查fopen打开失败的检查这一标准编程范式。
2. 以下程序的功能是:向文本文件out.txt写入一个字符串(文件不存在时自动创建),写入完成后关闭文件。请在横线处填入适当代码。
#include <stdio.h>
int main(){
FILE *fp;
fp=fopen("out.txt", (3) );
if(fp!=NULL){
fputs("Hello C", (4) );
fclose(fp);
}
return 0;
}
【答案】(3)"w" (4)fp
【解析】(3)要写入文件且文件不存在时自动创建,用"w"(只写)模式。(4)fputs函数的原型为int fputs(const char* str, FILE* stream),第一个参数是要写入的字符串,第二个参数是文件指针fp。本题考查文件写入模式选择与fputs函数的使用。
3. 以下程序的功能是:以追加方式打开二进制文件data.dat(文件不存在时自动创建),向文件末尾写入数据后关闭。请在横线处填入适当的打开模式。
#include <stdio.h>
int main(){
FILE *fp;
int x=100;
fp=fopen("data.dat", (5) );
if(fp!=NULL){
fwrite(&x, sizeof(int), 1, fp);
fclose(fp);
}
return 0;
}
【答案】(5)"ab"
【解析】"ab"是二进制文件追加模式:以追加方式打开二进制文件,文件不存在时自动创建,文件存在时保留原内容,文件指针位于文件末尾,适合在文件尾追加数据。本题考查二进制文件追加模式的正确写法。
原创精品资源学科网独家享有版权,侵权必究!zxxk.com
学科网(北京)股份有限公司
学科网(北京)股份有限公司zxxk.com
学科网(北京)股份有限公司
$
学科网(北京)股份有限公司
学科网(北京)股份有限公司
编写说明:广西(职教高考)《电子与信息大类考纲百套卷》,依据《广西高等职业教育考试大纲与说明(电子与信息大类)》编写。每门课程均分三层训练:基础层(具象化支架)拆解考点为微目标,紧扣考纲 “掌握”“理解” 要求编写考点训练卷;巩固层(关联性支架)强化知识交叉与场景关联,按考纲专题编专题训练卷;应用层(引导性支架)聚焦真题突破,结合知识模块与教材编写课程综合卷。
本试卷是第52卷,按《程序设计基础》范围和要求编写。具体内容为:(1)了解文件的定义及分类;(2)了解文件的打开及关闭。
广西《电子与信息大类考纲百套卷》 第52卷
《程序设计基础》
文件基础 考点训练卷
考试时间60分钟 满分100分
班级 姓名 学号 成绩
一、单项选择题(本大题共20小题,每题3分,共60分)
1. 下列关于C语言文件的叙述中,正确的是( )
A. C语言中的文件仅指磁盘上存储的数据文件,不包括源程序文件
B. C语言把文件看作是一个字符的序列,即流式文件
C. C语言文件只能以二进制形式存储,不能以ASCII形式存储
D. C语言文件必须有后缀名,否则无法被程序打开
2. 在C语言中,从数据在存储器上的组织形式来看,文件分为( )
A. 程序文件和数据文件 B. 顺序文件和随机文件
C. 普通文件和设备文件 D. 文本文件和二进制文件
3. C语言中用于定义文件指针变量的类型是( )
A. FILE B. file
C. FILE* D. struct file
4. ANSI C标准采用缓冲文件系统处理数据文件,下列关于缓冲文件系统的叙述,错误的是( )
A. 系统自动在内存中为每个正在使用的文件开辟文件缓冲区
B. 从内存向磁盘写数据时,每写一个字符就立即写入磁盘一次
C. 缓冲区的目的是减少直接访问磁盘的次数,提高效率
D. fclose函数关闭文件时会自动刷新缓冲区
5. 在C语言中,函数fopen("test.txt", "r")的功能是( )
A. 以只读方式打开一个已存在的文本文件test.txt
B. 以只写方式打开一个文本文件test.txt,文件不存在则新建
C. 以读写方式打开一个文本文件test.txt
D. 以追加方式打开一个文本文件test.txt,文件不存在则新建
6. 下列文件使用模式中,打开文件后文件指针位于文件末尾的是( )
A. "r" B. "w"
C. "a" D. "r+"
7. 执行语句 fp=fopen("data.txt","w"); 后,若磁盘上原来不存在data.txt文件,则( )
A. 打开失败,返回NULL
B. 程序出错终止运行
C. 系统提示用户先创建文件
D. 创建名为data.txt的文件
8. 下列关于fclose函数的叙述,正确的是( )
A. 调用fclose后,文件指针变量自动变为NULL
B. fclose只能关闭用fopen打开的文本文件,不能关闭二进制文件
C. fclose函数不需要参数
D. fclose成功关闭文件时返回0,失败时返回EOF
9. 设已有定义 FILE *fp;,则以下打开文件并检查是否成功的代码段,正确的是( )
A. fp=fopen("f.txt","r"); if(fp==NULL) printf("打开失败");
B. if((fp=fopen("f.txt","r"))==NULL) printf("打开失败");
C. if(fp=fopen("f.txt","r")==NULL) printf("打开失败");
D. if(fp=fopen("f.txt","r"))==NULL) printf("打开失败");
10. C语言程序运行时,系统自动打开的三个标准流文件是( )
A. stdin、stdout、stderr,类型均为int
B. standard、output、error,类型均为FILE
C. input、output、error,类型均为char*
D. stdin、stdout、stderr,类型均为FILE*
11. 以下程序段执行后,文件f.txt中原有内容的状况是( )
FILE *fp;
fp=fopen("f.txt","w");
if(fp!=NULL){ fputs("hello", fp); fclose(fp); }
A. 原有内容保持不变,"hello"添加到文件末尾
B. 原有内容被全部清空,文件中只有"hello"
C. 原有内容保持不变,"hello"覆盖文件开头
D. 程序出错,无法写入
12. 下列文件使用模式中,既能读又能写,且文件不存在时打开失败的是( )
A. "w+" B. "a+"
C. "r+" D. "ab+"
13. 在C语言中,fopen函数打开文件失败时的返回值是( )
A. NULL B. EOF
C. -1 D. 0
14. 下列关于文本文件与二进制文件存储整数的叙述,正确的是( )
A. 整数10000在文本文件中占用5个字节
B. 整数10000在文本文件中占用4个字节
C. 整数10000在二进制文件中占用5个字节
D. 整数10000在文本文件和二进制文件中占用的字节数相同
15. 在C语言中,若要以"读写"方式打开一个二进制文件,且文件不存在时自动创建,应使用的打开模式是( )
A. "rb+" B. "ab+"
C. "wb+" D. "r+b"
16. 下列关于C语言中缓冲文件系统的叙述,错误的是( )
A. 缓冲文件系统需要程序员自己手动设置缓冲区
B. 缓冲区的作用是减少直接读写磁盘的次数,提高I/O效率
C. fclose函数在关闭文件时会自动将缓冲区中未写入的数据写入磁盘
D. 可用fflush函数主动刷新缓冲区
17. 以下程序的输出结果是( )
#include <stdio.h>
int main(){
FILE *fp;
fp=fopen("a.txt","w");
if(fp==NULL) printf("1");
else printf("2");
fclose(fp);
return 0;
}
A. 1 B. 0
C. 程序出错 D. 2
18. 以下程序段中,与语句 fp=fopen("f.dat","rb"); 功能等价的是( )
A. fp=fopen("f.dat","r+b"); B. fp=fopen("f.dat","r+");
C. fp=fopen("f.dat","r+b"); D. fp=fopen("f.dat","wb");
19. 下列关于文件关闭的叙述,正确的是( )
A. 文件使用完毕后应及时关闭,以释放系统资源并保证缓冲区数据写入磁盘
B. 文件关闭后,文件指针变量自动释放,无需再赋NULL
C. 一个程序中打开的文件会在程序结束时自动关闭,因此无需调用fclose
D. fclose函数关闭文件时不会刷新缓冲区
20. 已有定义 FILE *fp;,若要以追加方式打开文本文件log.txt(文件不存在时自动创建),正确的fopen调用是( )
A. fp=fopen("log.txt","w"); B. fp=fopen("log.txt","a");
C. fp=fopen("log.txt","r"); D. fp=fopen("log.txt","r+");
二、判断题(本大题共10小题,每题1分,共10分)
1. C语言把文件看作是一个字符的序列,即流式文件,文件的存取以字符为单位。( )
2. 文本文件和二进制文件都可以用来存储数值型数据,但二者在磁盘上的存储形式不同。( )
3. fopen函数的返回值类型是int,成功返回1,失败返回0。( )
4. 以"w"模式打开一个已存在的文件时,文件原有内容会被全部清空。( )
5. fopen("data.txt","r"); 中,若data.txt文件不存在,系统会自动创建该文件。( )
6. fclose函数关闭文件成功时返回0,失败时返回EOF;关闭文件时会自动刷新缓冲区。( )
7. C语言程序运行时,系统自动打开stdin、stdout、stderr三个标准流,它们是FILE*类型的文件指针。( )
8. FILE是C语言的关键字,由语言标准直接定义,用户不能修改。( )
9. "r+"和"w+"都是以读写方式打开文本文件,二者在文件不存在时的行为完全相同。( )
10. 二进制文件以二进制形式存储数据,占用空间通常比存储同样数据的文本文件小,且读取速度快。( )
三、填空题(本大题共5小题,每题3分,共15分)
1. C语言中,文件按其在外存上的组织形式分为______和______两大类。
2. C语言中文件指针变量的类型是______。
3. fopen函数的返回值类型是FILE*,当文件打开失败时返回______。
4. fclose函数的功能是关闭文件,关闭成功时返回______,失败时返回______;关闭文件时还会自动刷新文件缓冲区。
5. 在C语言中,若要以只读方式打开一个必须已存在的二进制文件data.dat,应使用 fp=fopen("data.dat",______); 。
四、应用题(本大题共3小题,每题5分,共15分)
1. 以下程序的功能是:以只读方式打开文本文件test.txt,并检查是否打开成功,若失败则输出提示信息并结束程序。请在横线处填入适当代码。
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE *fp;
fp=fopen("test.txt", (1) );
if((2)){
printf("文件打开失败!
");
exit(0);
}
/* 文件读写操作略 */
fclose(fp);
return 0;
}
2. 以下程序的功能是:向文本文件out.txt写入一个字符串(文件不存在时自动创建),写入完成后关闭文件。请在横线处填入适当代码。
#include <stdio.h>
int main(){
FILE *fp;
fp=fopen("out.txt", (3) );
if(fp!=NULL){
fputs("Hello C", (4) );
fclose(fp);
}
return 0;
}
3. 以下程序的功能是:以追加方式打开二进制文件data.dat(文件不存在时自动创建),向文件末尾写入数据后关闭。请在横线处填入适当的打开模式。
#include <stdio.h>
int main(){
FILE *fp;
int x=100;
fp=fopen("data.dat", (5) );
if(fp!=NULL){
fwrite(&x, sizeof(int), 1, fp);
fclose(fp);
}
return 0;
}
原创精品资源学科网独家享有版权,侵权必究!zxxk.com
学科网(北京)股份有限公司
学科网(北京)股份有限公司zxxk.com
学科网(北京)股份有限公司
$