C语言编程题库第11章:数据文件的使用

 2024-02-12 00:03:05  阅读 0

提问指南

1.多项选择题

1.下列关于C语言文件的说法哪一项是正确的?

A、文件是由一系列按顺序排列的数据组成的,只能形成二进制文件。

B、文件由结构序列组成,可以形成二进制文件或文本文件。

C、文件由数据序列组成,可以由二进制文件或文本文件组成。

D、文件由字符序列组成,其类型只能是文本文件。

分析:答案是C

在C语言中,文件是由数据序列组成的,可以是字符流,即文本文件,也可以是二进制文件。 选项C是正确的。

2. 以下关于“文件指针”概念的表述哪一项是正确的?

A、文件指针是程序中用FILE定义的指针变量。

B、文件指针是文件位置指针,指示当前读写数据的位置。

C、文件指针指向文件在计算机中的存储位置。

D. 将文件指针传递给函数以将任意字符写入文本文件。

分析:答案选A

在C语言中,文件指针是指向FILE类型的结构体变量的指针。 结构体变量包含要操作的文件的信息,如文件名、文件数据流的读写位置等。 与之关联的文件可以通过文件指针进行读写。 该关联是由 fopen 函数建立的。 选项A是正确的。

3.有以下程序

#include 
int main( )
{ FILE *f;
f=fopen("file.txt","w");
fprintf(f,"abc");
fclose(f);
return 0;
}

如果文本文件file.txt中的原始内容是:hello,那么运行上述程序后,文件file.txt中的内容将是

A. abclo

B.abc

C。

D .

分析:答案选B

C语言中的文件打开方式使用“W”,表示只能对文件进行写操作。 如果打开的文件不存在,则以指定的文件名创建该文件; 如果打开的文件已经存在,则该文件将被删除并重建一个新文件。 因此,本题中,会删除原来的文件,创建一个同名的新文件,写入的内容为“abc”。 选项B正确。

4、以下程序将f1文件的内容依次复制到f2文件中。 横线应填写的选项有:

#include 
int main()
{ 
FILE *fp1,*fp2; char ch;
fp1=fopen( "f1.dat", "r" );
fp2=fopen("f2.out", "w");
while( ( ch=fgetc(fp1)) !=EOF ) fputc( __________ );
fclose(fp1);
fclose(fp2);
}

A.ch,“fname”

B、fp2,ch

C.ch

D.ch,fp2

分析:答案为D

函数fgetc()的作用是从指定文件中读取一个字符。 必须打开该文件才能读取。 如果fgetc()函数的字符遇到文件结束符,函数将返回文件结束标志EOF(-1)。 ;fputc()的功能是将一个字符写入磁盘文件。 其调用格式为:fputc(ch, fp2),其中ch为要输出的字符,fp2为文件指针变量。 选项D正确。

5、有以下程序:

#include 
int main( )
{ FILE *fp; int a[10]={1,2,3}, i, n;
fp=fopen("d1.dat", "w");
for (i=0; i<3; i++) fprintf(fp, "%d",a[i]);
fprintf(fp,"\n");
fclose(fp);
fp=fopen("d1.dat", "r");
fscanf(fp,"%d", &n);
fclose(fp);
printf("%d\n", n);
return 0;
}

程序运行的结果是。

A.321

B、12300

C.1

D.123

分析:答案为D

()、() 函数与 print() 和 scanf() 函数具有类似的功能。 它们都格式化、写入和读取数据,但前者用于磁盘文件,后者用于显示器和键盘。 本题中,第一个for循环将数组的前三个数据写入fp指向的文件中,格式为123。当以读模式打开文件时,读取到的数据为整数格式123,所以输出 123。选项 D 是正确的。

程序运行结果:

6、C源程序不仅可以存储在磁盘上,数据还可以根据数据类型以什么形式存储在磁盘上()。

A、记忆

B、缓冲区

三、文件

D、注册

分析:答案是C

7. 如果执行fopen函数时出错,则该函数的返回值为。

A、地址值

B.1

C.EOF

D.NULL

分析:答案为D

8、执行函数时,如果执行成功,其返回值为。

A.1

B.0

C.-1

D.真实

分析:答案选B

9、假设文件指针fp已经定义,执行语句fp=fopen("file", "w");后,下列对文本文件文件操作的选项正确的是。

A.只能写不能读

B、写入操作完成后,可以从头开始读取。

C. 您可以在原始内容之后添加额外的内容。

D、能随意读写

分析:答案选A

10.下列哪项表述是错误的?

A. gets函数用于从终端读取字符串

B.函数用于从磁盘文件中读取字符

C、fputs函数用于将字符串输出到文件。

D.该函数用于将数据以二进制形式输出到文件中

分析:答案选B

11.有以下程序

#include 
int main( )
{ FILE *pf;
Char *s1="China", *s2="Beijing";
pf=fopen("abc.dat","wb+");
fwrite(s2,7,1,pf);
rewind(pf);
fwrite(s1,5,1,pf);
fclose(pf);
return 0;
}

上述程序执行后,abc.dat文件的内容为。

A.中国

B.

C。

D .

分析:答案选B

2. 填空

12、下面的程序首先从键盘输入一个文件名,然后将键盘输入的字符依次存入文件中。 使用“#”作为结束输入的符号。 请填空。

#include 
int main( )
{ FILE *fp;
char ch,fname[20];
printf("Input the name of fine\n");
gets(fname);
if ((fp= fopen(____,____))==NULL)
{
printf("Can't open the file\n"); exit(0);
}
printf("Enter data\n");
while((ch=getchar())!='#')
fputc(____,fp);
fclose(fp);
return 0;
}

分析:答案为:(1)fname (2)“w”(3)ch

标签: 文件 指针 答案

如本站内容信息有侵犯到您的权益请联系我们删除,谢谢!!


Copyright © 2020 All Rights Reserved 京ICP5741267-1号 统计代码