内容正文:
《编程语言基础——C语言》高等教育出版社(第五版)
第九章 文件 章节过关卷
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题2分,共40分)
1. 在C语言中,文件的使用要遵循( )的顺序
A.读写文件,关闭文件
B.打开文件,读写文件
C.打开文件,关闭文件
D.打开文件,读写文件,关闭文件
2. 若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式应该选择( )
A.“wb+” B.“ab+” C.“rb+” D.“r”
3. 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时,函数feof(fp)的值为( )
A.0 B.1 C.-1 D.一个非零值
4. 若要打开C盘上user子目录下名为a123.txt的文本文件进行读写操作,下列选项中符合要求的是( )
A.fopen(“C:\\user\\a123.txt”,“r”);
B.fopen(“C:\\user\\a123.txt”,“w”);
C.fopen(“C://user//a123.txt”,“r+”);
D. fopen(“C:\user\a123.txt”,“rb”);
5. 当已经存在一个fab1.txt文件,执行函数:fopen(“fab1.txt”,“r+”)的功能是( )
A.打开fab1.txt文件,清除原有的内容
B. 打开fab1.txt文件,只能读入新的内容
C. 打开fab1.txt文件,只能读取原有内容
D. 打开fab1.txt文件,可以读取和写入新的内容
6. fgetc函数的功能是从指定文件读入一个字符,该文件的打开方式必须是( )
A.只写 B.读或读写
C.追加 D.以上选项均不正确
7. fputc函数的功能是向指针指向的文件中写入一个字符,该函数的第一个参数可以是( )
A.字符常量 B.字符变量 C.字符元素 D.以上选项均正确
8. 若执行 fopen函数时发生错误,则函数的返回值是( )
A.地址值 B.NULL C.1 D.EOF
9. 若以〃a+〃方式打开一个已存在的文件,则以下叙述正确的是( )
A. 文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
B. 文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作
C. 文件打开时,原有文件内容被删除,只可作写操作
D. 以上各种说法皆不正确
10. 已知函数的调用形式是:fread(buffer,size,counl,fp);其中 buffer代表的是( )
A. 一个整型变量,代表要读入的数据项总数
B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址
D. 一个存储区,存放要读的数据项
11. 利用fseek 函数可实现的操作是( )
A. 改变文件的位置指针
B. 文件的顺序读写
C. 文件的随机读写
D. 以上答案均正确
12. fseek函数的正确调用形式是( )
A. fseek(文件类型指针,起始点,位移量);
B. fseek(fp,位移量,起始点);
C. fseek(位移量,起始点,fp);
D. fseek(起始点,位移量,文件类型指针);
13. 函数rewind的作用是( )
A. 使位置指针重新返回文件的开头
B. 将位置指针指向文件中所要求的特定位置
C. 使位置指针指向文件的末尾
D. 使位置指针自动移至下一个字符位置
14. 函数 ftell(fp)的作用是( )
A. 得到流式文件中的当前位置
B. 初始化流式文件的位置指针
C. 移动流式文件的位置指针
D. 以上答案均正确
15. 下列选项中,与fseek(fp,0L,SEEK_SET)函数作用相同的是( )
A.rewind(fp) B.feof(fp) C.ftell(fp) D.fgetc(fp)
16. fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式不能是( )
A.只读 B.只写 C.读写 D.追加或读
17. 下列说法中正确的一项是( )
A.C语言中的文件是流式文件,所以只能顺序存取数据
B.当对文件的读/写操作完成后,必须将已打开的文件关闭,否则可能会导致数据丢失
C.打开一个已经存在的文件进行读写操作之后,原有文件中全部数据必将被覆盖
D.在一个程序中,不能同时对一个文件进行读写操作
18. 下列有关输入输出函数的说法中,不正确的一项是( )
A.gets()函数用于从终端读入字符串
B.getchar()函数可以从磁盘文件中读入字符
C.fputs()函数可以将字符串输出到文件中去
D.fwrite()函数用于以二进制形式输出数据到文件中
19. 下列语句中,可以用来判断二进制文件的结束方式的选项是( )
A.fgetc(fp)==EOF
B.fgetc(fp)!=EOF
C.feof(fp)==0
D.feof(fp)!=0
20. 假设fp已经正确定义或指向文件,下面语句中,不能将文件指针fp置于指向的文件头的语句是( )
A.fp=fopen(“abc.txt”,“w”);
B.rewind(fp);
C.fseek(fp,0L,0);
D.feof(fp);
二、填空题(本题共10小题,每题2分,共20分)
21. C语言中文件的打开方式与文件类型有关,一般来说,若没有特别说明,则按照__________来打开。
22. C语言文件的打开语句中,用来分隔路径的标识符是__________。
23. C语言中文件按照数据的组织形式可以分为文本文件和__________。
24. 定义文件指针的格式为__________。
25. 若fp已正确定义,在E盘新建“班级表.txt”的文本文件,打开语句写法是:___________________________。
26. 若fp已正确定义,在E盘打开“班级表.dat”的二进制文件,打开语句写法是:_________________________。
27. fopen函数正常打开的返回值是_________________________。
28. 若fp已正确定义并指向某个文件,想知道一个文件是否读结束,可以使用feof函数,那么构建一个“文件未读完”的条件,正确的写法是____________________。
29. 文件指的是_________________________。
30. 若fp已正确定义并指向某个文件,现要求将打开文件关闭,关闭语句的写法是________。
三、程序运行结果题(本题共4小题,每题5分,共20分)
31. 以下程序的运行结果是【 】。
#include<stdio.h>
#include<conio.h>
int main()
{FILE *fp;
int i,a[4]={2,4,6,8},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++)
fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat","rb");
fseek(fp,-2L*sizeof(int),1);
fread(&b,sizeof(int),2,fp);
fclose(fp);
printf("%d
",b); getch();}
32. 以下程序的运行结果是【 】。
#include<stdio.h>
#include<conio.h>
int main()
{FILE *fp; int i;
char ch[ ]="break",t;
fp=fopen("d1.dat","wb+");
for(i=0;i<4;i++)
fwrite(&ch[i],2,1,fp);
fseek(fp,-2L,SEEK_END);
fread(&t,2,1,fp); fclose(fp);
printf("%c
",t); getch();}
33. 以下程序的运行结果是【 】。
#include<stdio.h>
#include<conio.h>
int main()
{FILE *fp;
int k,n,a[6]={7,2,23,4,41,7};
fp=fopen("d2.dat","w");
fprintf(fp,"%d,%d,%d
",a[0],a[1],a[2]);
fprintf(fp,"%d%d%d
",a[2],a[3],a[4]);
fclose(fp);
fp=fopen("d2.dat","r");
fscanf(fp,"%d,%d",&k,&n);
printf("%d,%d
",k,n); fclose(fp); getch();}
34. 已有文本文件test.txt,其中的内容为:Hello,everyone!以下程序的运行结果是【 】。#include <stdio.h>
#include<conio.h>
void main()
{FILE *fp; char str[40];
fp=fopen("d:\\test.txt","r");
fgets(str,5,fp); printf("%s
",str);
fclose(fp);getch();}
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空5分,共20分)
35. 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件中形成文本文件,并将字符的个数的个位数字写到文件尾部。
#include <stdio.h>
void main()
{ FILE *fp;
char ch,filename[30];
int count=0;
printf("Input the filename : ");
scanf("%s",【1】);
if((fp=fopen( 【2】))==NULL)
{ printf("Can't open file:%s
",filename);
exit(0);
printf("Enter data:
");
while ( 【3】)
{ fputc(ch,fp); count++;}
【4】 ;
【5】 ;}
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
《编程语言基础——C语言》高等教育出版社(第五版)
第九章 文件 章节过关卷
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 单项选择题(本题共20小题,每题2分,共40分)
1. 在C语言中,文件的使用要遵循( )的顺序
A.读写文件,关闭文件
B.打开文件,读写文件
C.打开文件,关闭文件
D.打开文件,读写文件,关闭文件
答案:D
2. 若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式应该选择( )
A.“wb+” B.“ab+” C.“rb+” D.“r”
答案:A
3. 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时,函数feof(fp)的值为( )
A.0 B.1 C.-1 D.一个非零值
答案:A
4. 若要打开C盘上user子目录下名为a123.txt的文本文件进行读写操作,下列选项中符合要求的是( )
A.fopen(“C:\\user\\a123.txt”,“r”);
B.fopen(“C:\\user\\a123.txt”,“w”);
C.fopen(“C://user//a123.txt”,“r+”);
D. fopen(“C:\user\a123.txt”,“rb”);
答案:B
5. 当已经存在一个fab1.txt文件,执行函数:fopen(“fab1.txt”,“r+”)的功能是( )
A.打开fab1.txt文件,清除原有的内容
B. 打开fab1.txt文件,只能读入新的内容
C. 打开fab1.txt文件,只能读取原有内容
D. 打开fab1.txt文件,可以读取和写入新的内容
答案:D
6. fgetc函数的功能是从指定文件读入一个字符,该文件的打开方式必须是( )
A.只写 B.读或读写
C.追加 D.以上选项均不正确
答案:B
7. fputc函数的功能是向指针指向的文件中写入一个字符,该函数的第一个参数可以是( )
A.字符常量 B.字符变量 C.字符元素 D.以上选项均正确
答案:D
8. 若执行 fopen函数时发生错误,则函数的返回值是( )
A.地址值 B.NULL C.1 D.EOF
答案:B
9. 若以〃a+〃方式打开一个已存在的文件,则以下叙述正确的是( )
A. 文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作
B. 文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作
C. 文件打开时,原有文件内容被删除,只可作写操作
D. 以上各种说法皆不正确
答案:A
10. 已知函数的调用形式是:fread(buffer,size,counl,fp);其中 buffer代表的是( )
A. 一个整型变量,代表要读入的数据项总数
B. 一个文件指针,指向要读的文件
C. 一个指针,指向要读入数据的存放地址
D. 一个存储区,存放要读的数据项
答案:C
11. 利用fseek 函数可实现的操作是( )
A. 改变文件的位置指针
B. 文件的顺序读写
C. 文件的随机读写
D. 以上答案均正确
答案:D
12. fseek函数的正确调用形式是( )
A. fseek(文件类型指针,起始点,位移量);
B. fseek(fp,位移量,起始点);
C. fseek(位移量,起始点,fp);
D. fseek(起始点,位移量,文件类型指针);
答案:B
13. 函数rewind的作用是( )
A. 使位置指针重新返回文件的开头
B. 将位置指针指向文件中所要求的特定位置
C. 使位置指针指向文件的末尾
D. 使位置指针自动移至下一个字符位置
答案:A
14. 函数 ftell(fp)的作用是( )
A. 得到流式文件中的当前位置
B. 初始化流式文件的位置指针
C. 移动流式文件的位置指针
D. 以上答案均正确
答案:A
15. 下列选项中,与fseek(fp,0L,SEEK_SET)函数作用相同的是( )
A.rewind(fp) B.feof(fp) C.ftell(fp) D.fgetc(fp)
答案:A
16. fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式不能是( )
A.只读 B.只写 C.读写 D.追加或读
答案:B
17. 下列说法中正确的一项是( )
A.C语言中的文件是流式文件,所以只能顺序存取数据
B.当对文件的读/写操作完成后,必须将已打开的文件关闭,否则可能会导致数据丢失
C.打开一个已经存在的文件进行读写操作之后,原有文件中全部数据必将被覆盖
D.在一个程序中,不能同时对一个文件进行读写操作
答案:B
18. 下列有关输入输出函数的说法中,不正确的一项是( )
A.gets()函数用于从终端读入字符串
B.getchar()函数可以从磁盘文件中读入字符
C.fputs()函数可以将字符串输出到文件中去
D.fwrite()函数用于以二进制形式输出数据到文件中
答案:B
19. 下列语句中,可以用来判断二进制文件的结束方式的选项是( )
A.fgetc(fp)==EOF
B.fgetc(fp)!=EOF
C.feof(fp)==0
D.feof(fp)!=0
答案:D
20. 假设fp已经正确定义或指向文件,下面语句中,不能将文件指针fp置于指向的文件头的语句是( )
A.fp=fopen(“abc.txt”,“w”);
B.rewind(fp);
C.fseek(fp,0L,0);
D.feof(fp);
答案:D
二、填空题(本题共10小题,每题2分,共20分)
21. C语言中文件的打开方式与文件类型有关,一般来说,若没有特别说明,则按照__________来打开。
答案:文本文件
22. C语言文件的打开语句中,用来分隔路径的标识符是__________。
答案:\\
23. C语言中文件按照数据的组织形式可以分为文本文件和__________。
答案:二进制文件
24. 定义文件指针的格式为__________。
答案:FILE
25. 若fp已正确定义,在E盘新建“班级表.txt”的文本文件,打开语句写法是:___________________________。
答案:fp=fopen(“E:\\班级表.txt”,“w”);
26. 若fp已正确定义,在E盘打开“班级表.dat”的二进制文件,打开语句写法是:_________________________。
答案:fp=fopen(“E:\\班级表.dat”,“rb”);
27. fopen函数正常打开的返回值是_________________________。
答案:指向文件结构体的指针
28. 若fp已正确定义并指向某个文件,想知道一个文件是否读结束,可以使用feof函数,那么构建一个“文件未读完”的条件,正确的写法是____________________。
答案:!feof(fp)
29. 文件指的是_________________________。
答案:一组相关数据的有序集合
30. 若fp已正确定义并指向某个文件,现要求将打开文件关闭,关闭语句的写法是________。
答案:fclose(fp);
三、程序运行结果题(本题共4小题,每题5分,共20分)
31. 以下程序的运行结果是【 】。
#include<stdio.h>
#include<conio.h>
int main()
{FILE *fp;
int i,a[4]={2,4,6,8},b;
fp=fopen("data.dat","wb");
for(i=0;i<4;i++)
fwrite(&a[i],sizeof(int),1,fp);
fclose(fp);
fp=fopen("data.dat","rb");
fseek(fp,-2L*sizeof(int),1);
fread(&b,sizeof(int),2,fp);
fclose(fp);
printf("%d
",b); getch();}
答案:2
32. 以下程序的运行结果是【 】。
#include<stdio.h>
#include<conio.h>
int main()
{FILE *fp; int i;
char ch[ ]="break",t;
fp=fopen("d1.dat","wb+");
for(i=0;i<4;i++)
fwrite(&ch[i],2,1,fp);
fseek(fp,-2L,SEEK_END);
fread(&t,2,1,fp); fclose(fp);
printf("%c
",t); getch();}
答案:a
33. 以下程序的运行结果是【 】。
#include<stdio.h>
#include<conio.h>
int main()
{FILE *fp;
int k,n,a[6]={7,2,23,4,41,7};
fp=fopen("d2.dat","w");
fprintf(fp,"%d,%d,%d
",a[0],a[1],a[2]);
fprintf(fp,"%d%d%d
",a[2],a[3],a[4]);
fclose(fp);
fp=fopen("d2.dat","r");
fscanf(fp,"%d,%d",&k,&n);
printf("%d,%d
",k,n); fclose(fp); getch();}
答案:7,2
34. 已有文本文件test.txt,其中的内容为:Hello,everyone!以下程序的运行结果是【 】。#include <stdio.h>
#include<conio.h>
void main()
{FILE *fp; char str[40];
fp=fopen("d:\\test.txt","r");
fgets(str,5,fp); printf("%s
",str);
fclose(fp);getch();}
答案:Hello
四、程序填空。按照题目要求,将正确的内容填入相应位置,使得程序完整(每空5分,共20分)
35. 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件中形成文本文件,并将字符的个数的个位数字写到文件尾部。
#include <stdio.h>
void main()
{ FILE *fp;
char ch,filename[30];
int count=0;
printf("Input the filename : ");
scanf("%s",【1】);
if((fp=fopen( 【2】))==NULL)
{ printf("Can't open file:%s
",filename);
exit(0);
printf("Enter data:
");
while ( 【3】)
{ fputc(ch,fp); count++;}
【4】 ;
【5】 ;}
答案:
【1】filename
【2】filename,“w+”
【3】(ch=getchar())!=‘#’
【4】fputc(count%10+48,fp)
【5】fclose(fp)
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$