admin 管理员组

文章数量: 1086019


2024年3月7日发(作者:在基本的sql语言中不可以实现)

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语言中,顺序读写方式不适用于二进制文件。

16. 以下程序试图把从终端键盘输入的字符输出到名为的文件中,直到从终端读入字符'#'时结束输入和输出操作,但程序有错。

#include

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:","r+");

C.fopen("A:","rb"); D.fopen("A:","w");

18. 以下叙述中错误的是 。

A.二进制文件打开后可以先读文件的末尾。

B.在程序结束时,应当用fclose()函数关闭已经打开的文件。

C.在利用fread()函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据。

D.不可以用FILE定义指向二进制文件的文件指针。

19. 有以下程序:

#include

int main ( )

{

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

fp=fopen("","w");

fprintf(fp, "%d n",i);

fprintf(fp, "%d n",j);

fclose (fp);

fp=fopen("", "r");

fscanf(fp, "%d%d",&k,&n);

printf("%d %d",k,n);

}

return 0;

程序运行后的输出结果是 。

A.20 30 B.20 50 C.30 50

20. 下面的程序执行后,文件test中的内容是 。

#include

void fun(char *fname, char *st)

{

}

int main ( )

{

}

fun("test","new world");

fun("test","hello, ");

return 0;

FILE *myf; int i;

myf=fopen(fname, "w");

for (i=0; i

fclose(myf);

D.30 20

fputc(st[i],myf);

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

int main()

{ FILE *fp; char *str1="sound"; char *str2="picur";

}

if ((fp=fopen("c:abc", "w+"))==NULL)

exit(1);

}

fwrite(str2,6,1,fp); fseek(fp,0L,SEEK_SET);

fwrite(str1,5,1,fp); fclose(fp);

return 0;

{ printf("Can't open abc file n");

A.sound B.picture

27. 以下程序的功能是 。

#include

int main( )

{

FILE *fp1;

fp1=fopen("abc","r++");

while (!feof(fp1))

fseek(fp1,-1L, SEEK_CUR);

fputc('a',fp1);

fseek(fp1,ftell(fp1),SEEK_SET);

C.sourdr D.为空

if (fgetc(fp1)=='A')

{

}

}

fclose(fp1);

return 0;

A.将abc文件中所有'A'均替换为'a'。

B.查找abc文件中所有'A'。

C.查找abc文件中所有'a'。

D.将abc文件中所有字符均替换为'a'。

三、程序填空题

1. 以下程序的功能是将文件file1.c的内容输出到屏幕上并复制到文件file2.c中。

#include

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

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"

6.

rewind

二、选择题

1. C

6. D

11. A

16. B

21. C

26. A

2. B

7. C

12. D

17. B

22. C

27. A

3. A

8. C

13. B

18. D

23. B

4. C

9. B

14. B

19. A

24.A

5. A

10. D

15. C

20. A

25. B

三、程序填空题

1. ① *fp1,*fp2 ② rewind(fp1) ③ getc(fp1),fp2

2. ①"w" ②str[i]-32 ③ "r"


本文标签: 文件 指针 位置 二进制