1单选(1分)
下面的程序执行后,文件test中的内容是
#include <stdio.h>
#include <string.h>
void Fun(char *fname,char *st)
{
FILE *myf; int i;
myf=fopen(fname,"w" );
if (myf == NULL)
{
printf("cannot open the file.\n");
exit(0);
}
for(i=0;i<strlen(st); i++)
{
fputc(st[i],myf);
}
fclose(myf);
}
int main()
{
Fun("test","new world");
Fun("test","hello");
return 0;
}
得分/总分
A.
new worldhello
B.
new world
C. hello
1.00/1.00
D.
hello rld
2单选(1分)
有如下程序, 若文本文件f1.txt中原有内容为:good,则运行以下程序后文件f1.txt中的内容为
#include <stdio.h>
int main()
{
FILE *fp1;
fp1=fopen("f1.txt","w");
if (fp1 == NULL)
{
printf("cannot open the file.\n");
exit(0);
}
fprintf(fp1,"abc");
fclose(fp1);
return 0;
}
得分/总分
A.
good
B.
goodabc
C. abc
1.00/1.00
D.
abcgood
3单选(1分)
下列关于C语言数据文件的叙述中正确的是
得分/总分
A.
文件由ASCII码字符序列组成,C语言只能读写文本文件
B. 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
1.00/1.00
C.
文件由二进制数据序列组成,C语言只能读写二进制文件
D.
文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
4单选(1分)
以下程序希望把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。出错的原因是
#include <stdio.h>
int main()
{
FILE *fout; char ch;
fout=fopen('abc.txt','w');
if (fout == NULL)
{
printf("cannot open infile.\n");
exit(0);
}
ch=fgetc(stdin);
while(ch!='#')
{
fputc(ch,fout);
ch=fgetc(stdin);
}
fclose(fout);
return 0;
}
得分/总分
A.
文件指针stdin没有定义
B.
输入文件没有关闭
C. 函数fopen()调用形式错误
1.00/1.00
D.
函数fgetc()调用形式错误
5单选(1分)
设有以下结构类型,并且结构数组student中的元素都已有值,若要将这些元素写到硬盘文件fp中,以下形式错误的是
struct st
{
char name[8];
int num;
float s[4];
} student[50];
得分/总分
A.
fwrite(student, 25 * sizeof(struct st), 2, fp);
B.
fwrite(student, 50 * sizeof(struct st), 1, fp);
C.
fwrite(student, sizeof(struct st), 50, fp);
D. for (i = 0; i < 50; i++) fwrite(student, sizeof(struct st), 1, fp);
1.00/1.00
6单选(1分)
C语言中标准输入文件stdin是指
得分/总分
A. 键盘
1.00/1.00
B.
U盘
C.
硬盘
D.
显示器
7单选(1分)
若要用fopen函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式字符串应该是
得分/总分
A.
“rb+”
B. “wb+”
1.00/1.00
C.
“ab”
D.
“ab+”
8单选(1分)
在进行文件操作时,写文件的一般含义是
得分/总分
A. 将计算机内存中的信息存入磁盘。
1.00/1.00
B.
将磁盘中的信息存入计算机CPU。
C.
将计算机CPU中的信息存入磁盘。
D.
将磁盘中的信息存入计算机内存。
9单选(1分)
关于文件读写,正确的叙述是
得分/总分
A. 文件用完一定要关闭,否则,可能会引起数据丢失,或者影响其他文件的打开,因为多数情况下,系统限制同时处于打开状态的文件总数。
1.00/1.00
B.
C语言中的文件都是流式文件,只能按顺序读写,不能进行随机读写。
C.
文件一旦按二进制方式打开,无论用fwrite还是fprintf函数写入数字1,最后生成的都是二进制文件,对应的内容都是数值1。
D.
用FILE只能定义指向二进制文件的文件指针。
10单选(1分)
若要以“a+”方式打开一个已存在的文件,则以下叙述正确的是
得分/总分
A.
以上各种说法都不正确。
B.
文件打开时,原有文件内容被删除,只可做写操作。
C. 文件打开时,原有文件内容不被删除,位置指针移动到文件末尾,可做添加和读操作。
1.00/1.00
D.
文件打开时,原有文件内容不被删除,位置指针移动到文件开头,可做重写和读操作。
11单选(1分)
在C语言中,从计算机内存中将数据写入文件中,称为
得分/总分
A. 输出
1.00/1.00
B.
修改
C.
输入
D.
删除
12单选(1分)
以下叙述中错误的是
得分/总分
A.
C语言中随机读写方式不适用于文本文件
B. C语言中顺序读写方式不适用于二进制文件
1.00/1.00
C.
C语言中的文本文件以ASCⅡ码形式存储数据
D.
C语言中对二进制文件的访问速度比文本文件快
13单选(1分)
以下程序执行后输出结果是
#include <stdio.h>
int main()
{
FILE *fp;
int i,k=0,n=0;
fp=fopen("d1.dat","w");
if (fp == NULL)
{
printf("cannot open the file.\n");
exit(0);
}
for(i=1;i<4;i++)
{
fprintf(fp,"%d",i);
}
fclose(fp);
fp=fopen("d1.dat","r");
if (fp == NULL)
{
printf("cannot open infile.\n");
exit(0);
}
fscanf(fp,"%d%d",&k,&n);
printf("%d %d\n",k,n);
fclose(fp);
return 0;
}
得分/总分
A. 123 0
1.00/1.00
B.
1 23
C.
0 0
D.
1 2
14单选(1分)
以下叙述中错误的是
得分/总分
A. 不可以用FILE定义指向二进制文件的文件指针。
1.00/1.00
B.
在程序结束时,应当用fclose()函数关闭已打开的文件。
C.
在利用fread()函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据。
D.
二进制文件打开后可以先读文件的末尾,而顺序文件不可以。
15单选(1分)
若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为
得分/总分
A.
-1
B. 0
1.00/1.00
C.
一个非0值
D.
1