C语言专项试题文件
一、填空题
1. C语言中规定的标准文件有三个,即、和。
2. 指向C语言中规定的标准文件的指针分别是:、和。
3. C程序中对普通文件进行读写操作,必须先,操作后再。
4. 在C语言中,文件操作都是由标准库函数来完成的,对应的头文件是。
5. 用方式打开一个文件时,该文件必须已经存在,且只能从该文件读数据。
6. 在对文件存在的过程中,若要求文件的位置回到文件的开头,应当调用的函数
是函数。
二、选择题
1. 将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是。
A.2和2 B.2和5 C.5和2 D.5和5
2. 若执行fopen函数时发生错误,则函数的返回值是。
A.地址值B.0 C.1 D.EOF
3. 若要用fopen函数打开一个新的二进制文件,该文件既要能读也能写,则文件打开方式字符串应是。
A."ab+" B."wb+" C."rb+" D."ab"
4. 函数ftell的作用是。
A.得到流式文件中的当前位置。B.移动流式文件的位置指针。
C.初始化流式文件的位置。D.以上答案均正确。
5. 系统的标准数入文件是指。
A.键盘B.显示器C.软盘D.硬盘
6. fscanf函数的正确调用形式是。
A.fscanf(fp,格式字符串,输出表列)。
B.fscanf(格式字符串,输出表列,fp)。
C.fscanf(格式字符串,文件指针,输出表列)。
D.fscanf(文件指针,格式字符串,输入表列)。
7. fgetc函数的作用是从指定文件读入一个字符,该文件的打开方式必须是。
A.只写B.追加
C.读或读写D.答案b和c都正确
8. 函数调用语句fseek(fp,-20L,2);的含义是。
A.将文件位置指针移到距离文件头20个字节处。
B.将文件位置指针从当前位置向后移动20个字节。
C.将文件位置指针从文件末尾处后退20个字节。
D.将文件位置指针移到离当前位置20个字节处。
9. 利用fseek函数可实现的操作。
A.fseek(文件类型指针,起始点,位移量)。
B.fseek(fp,位移量,起始点)。
C.fseek(位移量,起始点,fp)。
D.fseek(起始点,位移量,文件类型指针)。
10. fgets(str,n,fp)的函数的概念是从文件中读出字符串存如str,以下叙述正确的
是。
A.n代表最多能读出n个字符串。B.n代表最多能读出n个字符。
C.n代表最多能读出n-1个字符串。D.n代表最多能读出n-1个字符。
11. 下列叙述正确的是。
A.EOF只能作为文本文件的结束标志,feof()则可以判断文本文件和二进制文件的结束标志。
B.feof()只能判断文本文件的结束标志,EOF则可以作为文本文件和二进制文件的结束标志。
C.EOF只能作为文本文件的结束标志,feof()只能判断二进制文件的结束标志。
D.EOF只能作为二进制文件的结束标志,feof()只能判断文本文件的结束标志。
12. 设已正确打开一个已经存在的文本文件,文件中原有数据为abcdef,新写入的数据为xyz;若文件中的数据变为xyzdef,则该文件打开的方式是。
A.w B.w+ C.a+ D.r+
13. 若fp为文件指针,且文件已正确打开,以下语句的输出为。
fseek(fp,0,SEEK_END);
i=ftell(fp);
printf("i=%d",i);
A.所指文件的记录长度。
B.所指文件的长度,以字节为单位。
C.所指文件的长度,以比特为单位。
D.所指当前文件的位置,以字节为单位。
14. 文件函数rewind()的概功能是。
A.使文件fp的位置指针指向文件开始。
B.使文件fp的位置指针指向文件末尾。
C.使文件fp的位置指针指向文件中间。
D.使文件关闭。
15. 以下叙述不正确的是。
A.C语言中的文本文件以ASCII码形式存储数据。
B.C语言中对二进制文件的访问速度比文本文件快。
C.C语言中,随机读写方式不适用于二进制文件。
D.C语言中,顺序读写方式不适用于二进制文件。
fgets和fgetc的区别16. 以下程序试图把从终端键盘输入的字符输出到名为的文件中,直到从终端读入字符'#'时结束输入和输出操作,但程序有错。
#include <stdio.h>
int main ( )
{
FILE *fout; char ch;
fout=fopen("","w");
ch=fgetc(stdin);
while (ch!='#')
{
fputc(ch,fout);
ch=fgetc( stdin);
}
fclose (fout);
return 0;
}
出错的原因是。
A.函数fopen()调用形式错误。B.输入文件没有关闭。
C.函数fgetc()调用形式错误。D.文件指针stdin没有定义。
17. 若要打开A盘上的user子目录下的名为的文本文件进行读写操作,下面符合此要求的函数调用是。
A.fopen("A:\","r"); B.fopen("A:\\user\\","r+");
C.fopen("A:\","rb"); D.fopen("A:\\user\\","w");
18. 以下叙述中错误的是。
A.二进制文件打开后可以先读文件的末尾。
B.在程序结束时,应当用fclose()函数关闭已经打开的文件。
C.在利用fread()函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据。
D.不可以用FILE定义指向二进制文件的文件指针。
19. 有以下程序:
#include <stdio.h>
int main ( )
{
FILE *fp; int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp, "%d \n",i);
fprintf(fp, "%d \n",j);
fclose (fp);
fp=fopen("d1.dat", "r");
fscanf(fp, "%d%d",&k,&n);
printf("%d %d",k,n);
return 0;
}
程序运行后的输出结果是。
A.20 30 B.20 50 C.30 50 D.30 20
20. 下面的程序执行后,文件test中的内容是。
#include <stdio.h>
void fun(char *fname, char *st)
{
FILE *myf; int i;
myf=fopen(fname, "w");
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.hello,B.new worldhello, C.new world D.hello,rld
21. 若fp是指向某文件的指针,且已读到此文件的末尾,则库函数feof()的返回值是。
A.EOF B.0 C.1 D.NULL
22. 在C程序中,可把整型数以二进制形式存放到文件中的函数是。
A.fprintf()函数;B.fread()函数;C.fwrite()函数;D.fputc()函数
23. fopen()函数的第2个参数取值"r"和"w"时,它们之间的差别是。
A."r"可向文件写入,"w"不但可以向文件写入,而且还可以读出。
B."r"用于从文件中读出数据,"w"用于向文件中写入数据。
C.当文件不存在的时候,"r"将创建一个文件并读出,"w"将创建文件并写入。
D.文件不存在时,"r"建立新文件,"w"出错。
24. 使用fseek()函数可以实现的操作是。
A.改变文件位置指针的当前位置。B.文件的顺序读写。
C.文件的随机读写。D.以上都不是。
25. 若用fopen()函数打开一个新的二进制文件,该文件可以读也可以写,则文件打开模式是。
A."ab+" B."wb+" C."rb+" D."ab"
26. 如下程序执行后,c:\abc文件的内容是。
#include <stdio.h>
int main()
{ FILE *fp; char *str1="sound"; char *str2="picur";
if ((fp=fopen("c:\\abc", "w+"))==NULL)
{ printf("Can't open abc file \n");
exit(1);
}
fwrite(str2,6,1,fp); fseek(fp,0L,SEEK_SET);
fwrite(str1,5,1,fp); fclose(fp);
return 0;
}
A.sound B.picture C.sourdr D.为空
27. 以下程序的功能是。
#include<stdio.h>
int main( )
{ FILE *fp1;
fp1=fopen("abc","r++");
while (!feof(fp1))
if (fgetc(fp1)=='A')
{  fseek(fp1,-1L, SEEK_CUR);
fputc('a',fp1);
fseek(fp1,ftell(fp1),SEEK_SET);
}
fclose(fp1);
return 0;
}
A.将abc文件中所有'A'均替换为'a'。
B.查abc文件中所有'A'。
C.查abc文件中所有'a'。
D.将abc文件中所有字符均替换为'a'。
三、程序填空题
1. 以下程序的功能是将文件file1.c的内容输出到屏幕上并复制到文件file
2.c中。
#include <stdio.h>
int main()
{
FILE ___①___;
fp1=fopen("file1.c","r");
fp2=fopen("file2.c","w");
while (!feof(fp1))
putchar(getc(fp1));
___②___;
while (!feof(fp1))
fputc(___③___);
fclose(fp1);
fclose(fp2) ;
return 0;
}
2. 以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件中,然后从该文件读出字符串并显示出来。请填空。
#include <stdio.h>
main ( )
{
FILE *fp;
char str[100]; int i=0;
if((fp=fopen("", ___①___))== NULL)
{ printf("can’t open this file. \n"); exit(0); }
printf("input a string:\n"); gets(str);
while (str[i])
{
if (str[i] >'a' && str[i] <='z')
str[i]=___②___;
fputc (str[i],fp);
i++;
}
fclose (fp);
fp=fopen ("",___③___);
fgets (str,100,fp);
printf("%s \n",str);
fclose (fp);
return 0;
}
参考答案
一、填空题
1. 标准输入文件(键盘)标准输出文件(显示屏幕)
标准出错信息文件(显示屏幕)。
2. stdin  stdout
stderr。
3.打开文件关闭文件。
4.stdio.h。
5."r"
二、选择题
1. C
2. B
3. A
4. C
5. A
6. D
7. C
8. C
9. B  10. D
11. A 12. D 13. B 14. B 15. C
16. B 17. B 18. D 19. A 20. A
21. C 22. C 23. B 24.A 25. B
26. A 27. A
三、程序填空题
1. ①*fp1,*fp2 ②rewind(fp1) ③getc(fp1),fp2
2. ①"w" ②str[i]-32 ③"r"

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。