国家二级C语言机试(选择题)模拟试卷574
公共基础选择题
1.下列关于C语言文件的叙述中正确的是( )。(C)
A. 文件由一系列数据依次排列组成,只能构成二进制文件
B. 文件由结构序列组成,可以构成二进制文件或文本文件
C. 文件由数据序列组成,可以构成二进制文件或文本文件
D. 文件由字符序列组成,其类型只能是文本文件
解析:本题考查文件的概念。文件由数据序列组成,可以构成二进制文件或文本文件。故本题答案为C选项。
2.下列叙述中正确的是( )。(A)
A. 当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失
B. 打开一个已存在的文件并进行写操作后,原有文件中的全部数据必定被覆盖
C. 在一个程序中对文件进行写操作后,必须先关闭该文件再打开才能读到第1个数据
D. C语言中的文件是流式文件,因此只能顺序存取数据
解析:B选项中,打开一个已存在的文件并进行写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C选项中,在一个程序中对文件进行写操作后,不是先关闭该文件然后打开才能读到第1个数据,用fseek函数进行重新定位即可。D选项中,C语言中的文件可以进行随机读写。故本题答案为A选项。
3.有以下程序:
#include
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);
}
程序的运行结果是( )。(D)
A. 321
B. 12300
C. 1
D. 123
解析:程序首先将数组a中的元素1、2、3分别写入了d1.dat文件中,再将d1.dat文件中的数据“123”整体写到变量n的空间中,所以输出的数据为123。故本题答案为D选项。
4.设文件指针fp已定义,执行语句“fp=fopen("file","w");”后,下列针对文本文件file操作叙述的选项中正确的是( )。(A)
A. 只能写,不能读
B. 写操作结束后可以从头开始读
C. 可以在原有内容后追加写
D. 可以随意读和写
解析:本题考查文件操作函数fopen。以“w”方式打开文件时只能写,不能读。故本题答案为A选项。
5.有以下程序:
#include
main( )
{
FILE*f;
f=fopen("filea.txt","w");
fprintf(f,"abc");
fclose(f);
}
若文本文件filea.txt中原有内容为hello,则运行以上程序后,文件filea.txt中的内容为( )。(B)
A. abclo
B. abc
C. helloabe
D. abchello
解析:本题考查文件操作函数。执行“fprintf(f,"abc");”后,filea.txt文件原有内容被“abc”覆盖。故本题答案为B选项。
6.读取二进制文件的函数调用形式为“fread(buffer,size,count,fp);”,其中buffer代表的是( )。(D)
A. 一个内存块的字节数
B. 一个整型变量,代表待读取的数据的字节数
C. 一个文件指针,指向待读取的文件
D. 一个内存块的首地址,代表读入数据存放的地址
解析:函数原型“fread(void*buffer,size t size,size t count,FILE*stream)”的功能是从一个文件流中读数据,读取count个元素,每个元素size字节。如果调用成功,返回count。buffer用于接收数据的内存地址,大小至少是size*count字节;size是单个元素的大小,单位是字节;count是元素的个数,每个元素是size字节;stream是输入流。故本题答案为D选项。
7.有以下程序:
#include
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);
}
程序执行后,abc.dat文件的内容是( )。(B)
A. China
B. Chinang
C. ChinaBeijing
D. BeijingChina
解析:本题考查文件操作函数:fwrite和rewind。题目中先将s2字符串写入adc.dat中,然后执行rewind函数将写指针放置于文件开头,写入s1字符串。s1字符串将前5个字符覆盖,所以最终结果为Chinang。故本题答案为B选项。
8.有以下程序:
#include
main( )
{
FILE*fp;char str[10];
fp=fopen("myfile.dat","w");
fputs("abc",fp);
fclose(fp);
fp=fopen("myfile.dat","a+");
fprintf(fp,"%d",28);
rewind(fp);
fscanf(fp,"%s",str);
puts(str);
fclose(fp);
}
程序的运行结果是( )。(C)
A. abc
B. 28c
C. abc28
D. 因类型不一致而出错
解析:本题考查文件操作函数。fprintf函数将内容写入硬盘的文件,fputs函数将字符串写入文件,最终文件的内容为abc28。故本题答案为C选项。
9.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为( )。(C)
A. 0
B. '\0'
C. 非零值
D. NULL
本文档预览:3600字符,共9414字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载