8文件

更新时间:2023-12-21 19:28:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第8章 文件

一、选择题

1、C语言的文件分为两类,它们是文本文件和( A )

A) 二进制文件 B) 图像文件 C) 声音文件 D) 系统文件

2、以下关于文件的描述错误的是( B )

A) 用fopen函数时一般会判断打开文件操作是否出错 B) 在C程序中直接使用文件名来访问文件

C) 文本文件和二进制文件的数据存储方式是不同的 D) C语言把文件看作是一个字节的序列

3、关于文件指针,以下说法错误的是( D ) A) 只有通过文件指针变量才能调用相应文件 B) 定义文件指针变量时,FILE必须大写

C) 一个文件指针变量只能对应一个文件 D) 一个文件指针变量可以同时对应多个文件

4、关于二进制文件以下描述错误的是( B )

A) 二进制文件中数据的存储形式与内存中数据的存储形式相同 B) 以只读方式打开二进制文件用“rb+”

C) 二进制文件更适合存储那些数值形式的数据 D) 判断二进制文件是否结束通常用feof函数

5、关于文本文件以下描述错误的是( A )

A) 文本文件中整数的存储形式与内存中整数的存储形式相同 B) 以只读方式打开文本文件用“r”

C) 文本文件更适合存储字符形式的数据 D) 文本文件用EOF作为文件的结束标志

6、若想对文本文件进行只读操作,打开此文件的方式为 ( D ) A) “rb” B) “w” C) “ab” D) “r”

7、若想对文本文件进行只写操作,打开此文件的方式为 ( B ) A) “rb” B) “w” C) “ab” D) “r”

8、若对二进制文件进行追加操作,打开此文件的方式为 ( C ) A)“r” B) “w” C) “ab” D) “rb”

9、若用fopen打开一个新的二进制文件,要既能读也能写,则打开方式是( B A) \ B) \ C) \ D) \

10、以下fopen 函数的第一个参数的格式书写正确的是( D )

A) ?c:\%user\\a.txt? B) ?c:\\\%user\\\\a.txt? C) “c:\%user\\a.txt” D) “c:\\\%user\\\\a.txt”

) 11、若打开D盘user目录下“file.txt”文本文件进行读、写操作,下面函数调用正确的是( B ) A) fopen(“D:\%user\\file.txt”, “r”) B) fopen(“D:\\\%user\\\\file.txt”, “r+”) C) fopen(“D:\%user\\file.txt”, “rb”) D) fopen(“D:\\\%user\\\\file.txt”, “w”) 12、打开一个已存在的非空文本文件\进行修改(不删除原数据),正确的语句是( D ) A) fopen(\ B) fopen(\C) fopen(\ D) fopen(\

13、若执行fopen函数时发生错误,则函数的返回值是( B ) A) 一个随机地址值 B) NULL C) 1 D) EOF

14、顺利执行文件关闭操作时,fclose函数的返回值是( C ) A) -1 B) 1 C) 0 D) 非0值

15、若将数据35.78存放在文本文件中,则它所占用的字节个数是( B ) A) 4 B) 5 C) 6 D) 8

16、文件操作的一般步骤是( A )

A) 打开文件?读/写文件?关闭文件 B) 读/写文件?修改文件?关闭文件 C) 读/写文件?打开文件?关闭文件 D) 读文件?写文件?关闭文件

17、若调用fputc函数输出字符成功,则其返回值是( D ) A) EOF B) 0 C) 1 D) 输出的字符

18、将一个字符串写入文件,设fp是文件指针变量,正确的函数调用是( C )

A) fgets(“abcd”,4, fp); B) fputc(“abcd”, fp); C) fputs(“abcd”, fp); D) fgetc(“abcd”, fp);

19、如需要读取文本文件中的一个字符,可以使用函数( A ) A)fgetc B) getchar C)fputc D) putchar

20、函数fgets(s, n, fp)的作用是( B )。

A) 从fp指向的文件中读取长度为n个字符的字符串,存入s指向的内存区域

B) 从fp指向的文件中读取长度不超过n-1个字符的字符串,存入s指向的内存区域 C) 从fp指向的文件中读取n个字符串,存入s指向的内存区域 D) 从fp指向的文件中读取n-1个字符串,存入s指向的内存区域

21、函数rewind的作用是使文件位置指针( A )。 A) 返回文件的开头 B) 返回前一个字符的位置 C) 指向文件末尾 D) 跳过一个字符位置

22、文件定位函数:fseek(fp, 10L, 0); 的含义是将文件位置指针( A )。 A) 从文件头10个字节处 B) 从当前位置向后移动10个字节

C) 从文件尾部前移10个字节 D) 移到离当前位置10个字节处

23、若fp是指向某文件的指针,且已读到文件末尾,则表达式feof(fp)的返回值为( C ) A) EOF B) -1 C) 非零值 D) NULL

二、填空题

1、文件分为 文本 文件和 二进制 文件两类。 2、文件的打开函数是 fopen ,关闭函数是 fclose 。 3、文件使用方式“rb”的含义是: 只读方式打开二进制文件 。 4、文本文件的结束标志是 EOF 。

三、阅读程序题

1、写出程序运行后文件“file.txt”中存放的内容。 #include #include void main( )

{ char a[20]= \ int i, flag=0; if((fp=fopen(\

{ printf(“can not open file!\\n”); exit(0); } for(i=0; a[i]!='\\0'; i++) { if(a[i]=='?' ) flag=0; // ?表示空格 else if(flag==0) { flag=1; if(a[i]>='a'&&a[i]<='z') a[i]=a[i]-32; } } fputs(a, fp); fclose(fp); }

文件“file.txt”内容为:We Are Students.

2、写出程序运行后文件“test.txt”中的内容。 #include #include #include

void fun(char *fname, char *st) { FILE *fp;

if((fp=fopen(fname,\

{ printf(\ exit(0); } for(int i=0; i

fclose(fp); }

void main( )

{ fun(\ fun(\}

文件“test.txt”的内容:hello!

FILE *fp; 3、写出下面程序所实现的功能。 #include #include void main( )

{ FILE *fp1, *fp2; char ch;

if((fp1=fopen(\ { printf(\ exit(0); } if((fp2=fopen(\ { printf(\ exit(0); } while(!feof(fp1))

{ ch=fgetc(fp1); fputc(ch, fp2); } fclose(fp1); fclose(fp2); }

程序功能:实现文件的拷贝,复制文件file1.txt

4、请写出程序的输出结果 #include #include void main()

{ FILE *fp; int i=20, j=30, k, n;

if((fp=fopen(\ { printf(\ fprintf(fp,\ fprintf(fp,\ rewind(fp);

fscanf(fp,\ printf(\ fclose(fp); }

输出结果:k=20, n=30

5、写出程序运行结果。 #include #include void main()

{ FILE *fp; int i; float a[3], b[3];

if((fp=fopen(\

{ printf(\ exit(0); } for( i=0; i<3; i++)

{ a[i]=3.14*i; fwrite(&a[i], sizeof(float),1,fp); }

fclose(fp);

if((fp=fopen(\

{ printf(\ exit(0); } fread( b, sizeof(float),3,fp);

for(i=0; i<3; i++) printf(\ fclose(fp); }

结果:b[0] = 0.00 b[1] = 3.14 b[2] = 6.28

exit(0); } 6、写出程序的功能和文件file1.txt中的内容。 #include #include void main( )

{ FILE *fp; char str[20]= “ab123mn#”; int i=0; if ((fp=fopen(“file.txt”, “w”)) == NULL)

{ printf(“can not open this file!\\n”) ; exit( 0 ) ; } for( i=0; str[i]!=?#? ; i++)

{ if (str[i]>=?a? && str[i]<=?z? ) str[i]=str[i]-32; fputc(str[i], fp); }

fclose(fp); }

功能:将字符串的小写字母变为大写字母,并将字符串写入文件 文件内容:AB123MN

四、程序填空题

1、下面程序实现将从键盘输入的字符串以追加的方式写入文本文件“B1.txt”中。 #include void main( )

{ char s[81], *p; FILE *fp; if((fp=fopen(\ \ ))==NULL) { printf(\ exit(0); } printf(\ gets(s); for( p=s; *p!= '\\0' ; p++ ) fputc( *p, fp); fputc('\\0',fp); fclose(fp); }

2、程序计算1~10的平方值,并将它们存入二进制文件\。 #include #include void main( )

{ FILE *fp; int k, a[10];

if((fp=fopen(\ \ ))==NULL) { printf(\ exit(0); } for( k=1; k<=10; k++) { a[k]= k*k ;

fwrite( &a[k] , sizeof(int) , 1, fp); }

fclose(fp); }

3、学生信息包活姓名和成绩,从键盘输入10个学生的信息,把它们存放到二进制文件中。

本文来源:https://www.bwwdw.com/article/1o85.html

Top