二级c语言会考文件打开,全国计算机等级考试二级C语言之文件

fd731ec96e6d20f7f9018eb0034c9784.png

一、选择题:

(1)以下叙述中错误的是

A)C语言中对二进制文件的访问速度比文本文件快

B)C语言中,随机文件以二进制代码形式存储数据

C)语句 FILE fp; 定义了一个名为fp的文件指针

D)C语言中的文本文件以ASCII码形式存储数据

(2)有以下程序

#include main()

{ FILE *fp; int i, k, n;

fp=fopen("data.dat", "w+");

for(i=1; i<6; i++)

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

if(i%3==0) fprintf(fp,"\n");

}

rewind(fp);

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

fclose(fp);

}

程序运行后的输出结果是

A)0 0

B)123 45

C)1 4

D)1 2

(3)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是

A)feof(fp)

B)ftell(fp)

C)fgetc(fp)

D)rewind(fp)

(4)有以下程序

#include "stdio.h"

void WriteStr(char *fn,char *str)

{

FILE *fp;

fp=fopen(fn,"W");

fputs(str,fp);

fclose(fp);

}

main()

{

WriteStr("t1.dat","start");

WriteStr("t1.dat","end");

}

程序运行后,文件t1.dat中的内容是

A)start

B)end

C)startend

D)endrt

(5) 有如下程序

#include main()

{FILE *fp1;

fp1=fopen("f1.txt","w");

fprintf(fp1,"abc");

fclose(fp1);

}

若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为

A) goodabc

B) abcd

C) abc

D) abcgood

(6) 有以下程序

#include main( )

{ FILE *fp; int i,k=0,n=0;

fp=fopen(“d1.dat”,”w”);

for(i=1;i<4;i++) fprintf(fp,”%d”,i);

fclose(fp);

fp=fopen(“d1.dat”,”r”);

fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n);

fclose(fp);

}

执行后输出结果是

A) 1 2

B) 123 0

C) 1 23

D) 0 0

(7) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)

#include main( )

{ FILE *fp; int i,a[4]={1,2,3,4},b;

fp=fopen("data.dat","wb");

for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);

fclose(fp);

fp=fopen("data.dat

","rb");

fseek(fp,-2L*sizeof(int).SEEK_END) ;

fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/

fclose(fp);

printf("%d\n",B) ;

}

执行后输出结果是

A) 2

B) 1

C) 4

(8) 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为

A) 0

B) 1

C) -1

D) 一个非0值

(9) 下列关于C语言数据文件的叙述中正确的是

A) 文件由ASCII码字符序列组成,C语言只能读写文本文件

B) 文件由二进制数据序列组成,C语言只能读写二进制文件

C) 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件

D) 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件

(10) 以下叙述中不正确的是

A)C语言中的文本文件以ASCⅡ码形式存储数据

B)C语言中对二进制文件的访问速度比文本文件快

C)C语言中,随机读写方式不适用于文本文件

D)C语言中,顺序读写方式不适用于二进制文件

(11) 以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。

#include main()

{ FILE *fout; char ch;

fout=fopen(’abc.txt’,’w’);

ch=fgetc(stdin);

while(ch!=’#’)

{ fputc(ch,fout);

ch=fgetc(stdin);

}

fclose(fout);

}

出错的原因是

A) 函数fopen调用形式错误 B) 输入文件没有关闭

C) 函数fgetc调用形式错误 D) 文件指针stdin没有定义

(12) 有以下程序

#include 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”);

fp=fscanf(fp,“%d%d”,&k,&n); printf(“%d%d\n”,k,n);

fclose(fp);

}

程序运行后的输出结果是

A) 20 30

B) 20 50

C) 30 50

D) 30 20

(13) 以下叙述中错误的是

A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以

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

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

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

(14) 若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是

A) fopen("A:\user\abc.txt","r")

B) fopen("A:\\user\\abc.txt","r+")

C) fopen("A:\user\abc.txt","rb")

C) fopen("A:\\user\\abc.txt","w")

(15) 下面的程序执行后,文件testt.t中的内容是

#include void fun(char *fname.,char *st)

{ FILE *myf; int i;

myf=fopen(fname,“w” );

for(i=0;ifclose(myf);

}

main()

{ fun(“test”,“new world”; fun(“test”,“hello,”0;)

A)hello,

B)new worldhello,

C)new world

D) hello, rld

(16) 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是

A) EOF

B) -1

C) 非零值

D) NULL

(17) 在C程序中,可把整型数以二进制形式存放到文件中的函数是

A) fprintf函数

B) fread函数

C) fwrite函数

D) fputc函数

(18) 标准函数 fgets(s, n, f) 的功能是

A) 从文件f中读取长度为n的字符串存入指针s所指的内存

B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存

C) 从文件f中读取n个字符串存入指针s所指的内存

D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存

二、填空题:

(1) 已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是 【1】 。

#include main()

{ FILE *fr; char str[40];

……

fgets(str,5,fr);

printf("%s\n",str);

fclose(fr);

}

(2) 若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen( [2] );。

(3) 以下程序用来统计文件中字符个数。请填空。

#include "stdio.h"

main()

{ FILE *fp; long num=0L;

if((fp=fopen("fname.dat","r"))==NULL)

{ pirntf("Open error\n"); exit(0);}

while( 【3】 )

{ fgetc(fp); num++;}

printf("num=%1d\n",num-1);

fclose(fp);

}

(4) 以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。

FILE *myf; ling f1;

myf= 【4】 (“test.t”,“rb”);

fseek(myf,0,SEEK_END); f1=ftel(myf);

fclose(myf);

printf(“%d\n”,f1);

(5) 下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中。请填空。

#include “stdio.h”

FILE *fp;

{ char ch;

if( (fp=fopen ( 【5】 ) )= = NULL)exit(0);

while( (ch=getchar( )) !=’@’) fputc (ch,fp);

fclose(fp);

}

(6) 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。

#include main( )

{ FILE *fp;

char ch,fname[32]; int count=0;

printf("Input the filename :"); scanf("%s",fname);

if((fp=fopen( 【6】 ,"w+"))==NULL)

{ printf("Can’t open file:%s \n",fname); exit(0);}

printf("Enter data:\n");

while((ch=getchar())!="#"){ fputc(ch,fp); count++;}

fprintf( 【7】 ,"\n%d\n", count);

fclose(fp);

}

(7) 下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空.

#includeFILE *fp;

main()

{ int i,j;

if((fp=fopen( 【8】, "wb"))==NULL) exit(0);

for(i=0; i<10; i++)

{ scanf("%d",&j);

fwrite(&j,sizeof(int),1, 【9】 );

}

fclose(fp);

}

(8) 以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。请填空。

#include

main()

{ FILE *fp;

char str[100]; int i=0;

if((fp=fopen("text.txt",【10】))==NULL)

{ printf("can’t open this file.\n");exit(0);}

printf("input astring:\n"); gest(str);

while (str[i])

{ if(str[i]>=’a’&&str[i]<=’z’)

str[i]=【11】;

fputc(str[i],fp);

i++;

}

fclose(fp);

fp=fopen("test.txt",【12】);

fgets(str,100,fp);

printf("%s\n",str);

fclose(fp);

}

(9) 下面程序把从终端读入的文本用@作为文本结束标志)复制到一个名为bi.dat的新文件中,请填空。

#include FILE *fp;

main()

{ char ch;

if((fp=fopen( 【13】))==NULL)exit(0);

while ((ch=getchar())!=’@’)fputc(ch,fp); 【14】

(10) 以下程序由终端输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志.请填空.

#include main()

{ FILE * fp;

char ch,fname[10];

printf("lnput the name of file\n");

gets(fname);

if((fp=【15】)==NULL)

{ printf("Cannot open\n"); exit(0);}

printf("Enter data\n");

while((ch=getchar())!=’#’) fputc(【16】,fp);

fclose(fp); }

(11) 下面的程序用来统计文件中字符的个数,请填空。

#include main()

{ FILE *fp;

long num=0;

if(( fp=fopen("fname.dat","r"))==NULL)

{ printf( "Can’t open file! \n"); exit(0);}

while 【17】

{ fgetc(fp); num++;}

printf("num=%d\n", num);

fclose(fp);

}

(12)以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。

#include main(int argc, char *argv)

{ FILE *f1,*f2; char ch;

if(argc< 【18】 )

{ printf("Parameters missing!\n"); exit(0); }

if( ((f1=fopen(argv[1],"r")) = = NULL)||((f2=fopen(argv[2],"w")) = = NULL))

{ printf("Can not open file!\n"); exit(0);}

while( 【19】 )fputc(fgetc(f1),f2);

fclose(f1); fclose(f2); }

答案:

一、选择题:

01) C 02) D 03) D 04) B 05) C

06) B  07) D  08) A  09) D  10) D

11) A  12) A  13) D  14) B  15) A

16) C  17) A  18) B

二、填空题:

(1) Hell

(2) “d1.dat”,”rb”或 “d1.dat”,”r+b”或”d1.dat”,”rb+”

(3) !feof(fp)

(4) fopen

(5) “bi.dat”,“w”或“bi.dat”,“wt”或“bi.dat”,“w+t”

(6) fname

(7) fp

(8) "bi.dat"

(9) fp

(10) "w"或"w+"或"wt"或"w+t"或"""wt+"

(11) str[i]-32 或str[i]-(’a’-’A’或str[i]-’a’+’A’

(12) "r"或"r+"或"r+t"或"rt+"

(13) "bi.dat","w"

(14) fclose(fp)

(15) fopen(fname,"w")

(16) ch

(17) (!feof(fp))

(18) 3

(19) !feof(f1)

2829f2ca24f0d0090cbba57f30759f23.png

全国计算机等级考试二级C语言之文件.doc

下载Word文档到电脑,方便收藏和打印[全文共5528字]

编辑推荐:

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

8b95f2eb3d3f7ce4dc3bf1178c74941e.png

下载Word文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值