【习题】
一、选择题
1.下面语句中,把变量 fp 说明为一个文件类型指针的是( )。
A.FILE *fp; B.FILE fp; C.file *fp; D.file fp;
2.若文本文件只能进行读操作,打开此文件的方式为( )。
A.“r” B.“w” C.“a” D.“r+”
3.以读写方式打开一个已有的文本文件file1,下面fopen函数正确的调
用方式是( )。
A.FILE * fp;fp=fopen(“file1”,“r”);
B.FILE * fp;fp=fopen(“file1”,“r+”);
C.FILE * fp;fp=fopen(“file1”,“rb”);
D.FILE * fp;fp=fopen(“file1”,“rb+”);
4.以下叙述中正确的是( )。
A.C 语言中的文件是流式文件,因此只能顺序存取数据。
B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必
定被覆盖。
C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打
开,才能读到第 1 个数据。
D.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数
据丢失。
5.若要打开 D 盘上 user 子目录下名为 test.txt 的文本文件进行读写操
作,下面合法的函数调用是( )。
A.fopen(“D:\user\test.txt”,“r”)
B.fopen(“D:\\user\\test.txt”,“r+”)
C.fopen(“D:/user/test.txt”,“rb”)
D.fopen(“D:\user\test.txt”,“w”)
6.在文件打开方式中,字符串“rb”的含义是( )。
A.打开一个文本文件,只能写入数据。
B.打开一个已经存在的二进制文件,只能读取数据。
C.打开一个已经存在的文本文件,只能读取数据。
D.打开一个已经存在的二进制文件,只能写入数据。
7.若某文件的文件指针为 fp,现在已经指向文件末尾,那么函数 feof(fp)
的返回值是( )。
A.0 B.-1 C.NULL D.非零值
8.读取文件中的单个字符,应该使用函数( )。
A.fread( ) B.gets( ) C.fgetc( ) D.fgets( )
9.如果要把文件中的一个学生记录(包括学号、姓名、年龄、班级等)
读到内存中相应的结构体变量中,那么最好使用函数( )。
A. fread( ) B.fscanf( ) C.fgetc( ) D. fgets( )
10.若调用 rewind()函数,则函数返回值是( )。
A.1 B.0 C.EOF D.void
二、填空题
1.在 C 语言中,“文件指针”是一个重要的概念,定义文件指针的方法
为: *fp;其中 fp 是一个指向 类型结构体指针变量。
2.在 C 语言中,文件按存放方式分为 文件按和 文件。
3.文件在使用之前必须先 文件,使用完毕后必须 文件。
4. 格式化读写函数可以对 文件进行读写操作,而数据块读写函
数则是对 文件进行读写操作。
5. fseek()函数有三个参数,分别是 、 和 。
三、编程题
1.首先利用记事本建立一个文本文件 file1.txt,里面输入一行字符。
然后利用文件读写操作实现文件的复制,即把文件 file1.txt 中的内容
复制到 file2.txt 文件中。
2.5 名学生信息:学号、姓名、三门课程的成绩和平均分,从键盘输入
学生的学号、姓名和三门课程成绩,计算每名学生的平均成绩,最后把
所有数据写入到磁盘文件中 student.dat。

