第八章 文 件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第八章文件
一、单项选择题
1.C语言中,文件由(A)。
A.字符(字节)序列组成B.记录组成
C.数据行组成D.数据块组成
2.若文件型指针fp中指向某文件的末尾,则函数feof(fp)的返回值是(C)。
A.0 B.-1 C.非零值D.NULL
3. 下列语句将输出(B)
#include
printf(“%d %d %d”, NULL,’\0’,EOF);
A. 0 0 1
B. 0 0 –1
C. NULL EOF
D. 1 0 EOF
4.下列语句中,将fp定义为文件型指针的是(B)。
A.FILE fp; B.FILE *fp;C.file fp; D.file *fp;
5. 定义FILE *fp; 则文件指针fp指向的是(D)。
A. 文件在磁盘上的读写位置
B. 文件在缓冲区上的读写位置
C. 整个磁盘文件
D. 文件类型结构体
6. 缓冲文件系统的缓冲区位于(C )。
A. 磁盘缓冲区中
B. 磁盘文件中
C. 内存数据区中
D. 程序中
7.以“只读”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的( D)。
A、fp=fopen(”a:\aa.dat”,”ab”);
B、fp=fopen(”a:\aa.dat”,”a”);
C、fp=fopen(”a:\aa.dat”,”wb”);
D、fp=fopen(”a:\aa.dat”,”r”);
8. 以“追加”方式打开文本文件a:\aa.dat,下列语句中哪一个是正确的( B)。
A、fp=fopen(”a:\aa.dat”,”ab”);
B、fp=fopen(”a:\aa.dat”,”a”);
C、fp=fopen(”a:\aa.dat”,”r+”);
D、fp=fopen(”a:\aa.dat”,”w”);
9. 如果二进制文件a.dat已存在,现要求写入全新的数据,应以什么方式打开(A)。
A. “w”
B. “wb”
C. “w+”
D. “wb+”
10. 为读写建立一个新的文本文件a:\aa.dat,下列语句中哪一个是正确的( B)。
A、fp=fopen(”a:\aa.dat”,”ab”);
B、fp=fopen(”a:\aa.dat”,”w+”);
C、fp=fopen(”a:\aa.dat”,”wb”);
D、fp=fopen(”a:\aa.dat”,”rb+”);
11.以读写方式打开一个已有的二进制文件filel,并且定义FILE *fp,下面fopen函数正确的调用方式是(B )。
A.fp=fopen (“file1”, ”r”) B.fp=fopen (“file1”, ”rb+”)
C.fp=fopen (“file1”, ”rb”) D.fp=fopen (“file1”, ”w b+”)
12.标准库函数fputs (p1,p2)的功能是(C)。
A.从p1指向的文件中读一个字符串存入p2指向的内存
B.从p2指向的文件中读一个字符串存入p1指向的内存
C.从p1指向的内存中读一个字符串写到p2指向的文件中
D.从p2指向的内存中读一个字符串写到p1指向的文件中
二、填充题
1.C语言中调用fopen函数打开文件,调用fclose函数关闭文件。
2. fopen函数的返回值是包含文件缓冲区信息的FILE结构体地址。
3. 文件操作的三大特征是文件保存在外存中,文件中数据有序 , 数据数量可以不定。4.feof函数可用于文本文件和二进制文件,它用来判断即将读入的是否为文件结束标志,若是,函数值为非零。
5.若ch为字符变量,fp为文本文件指针,从fp所指文件中读入一个字符时,可用的二种不同的输入语句是ch=fgetc(fp)和fscanf(fp,”%c”, &ch) 。把一个字符输
出到fp所指文件中的二种不同的输出语句是fputc(ch,fp)和fprintf(fp,”%c”, ch) 。6.sp=fgets (str, n, fp) ; 函数调用语句从fp指向的文件输入n-1个字符,并把它们放到字符数组str中,sp得到str的地址。而fputs函数的作用是向指定的文件输出一个字符串,输出成功函数返回值为0,fprintf函数输出成功函数返回值为
实际输出的字符数。
7.“FILE *fp”的作用是定义了一个文件型指针变量,其中的“FILE”是在stdio.h 头文件中定义的。
8.在对文件进行操作的过程中,若要求文件指针的位置回到文件的开头,应当调用的函数是rewind ( ) 函数。
9.下面的程序用来统计文件中字符的个数,请填空。
#include
void main( )
{ FILE *fp ;
long num=0 ;
if (fp=fopen (“fname. dat”, ”r”) = =NULL)
{ printf (“Can’ t open file!\n”); exit (0) ; }
while (!feof (fp)) { fgetc (fp) ; num++ ; }
printf (“num=%d\n”, num) ;
fclose (fp) ;
}
10.下面程序完成从磁盘文件stu..dat中读取N个学生的姓名、学号、成绩后在屏幕上显示输出。请将程序补充完整。
#include
#define N 100
struct student
{ char name[20];
int no;
int score;
} stud[N];
void main ()
{ FILE *fp;
int i ;
if ((fp=fopen (“stu.dat”, ”rb”))==NULL)
{ printf (“Can not open file!\n”); exit (0); }
fread (stud, sizeof (struct student), N, fp) ;
for (i=0; i