1、文件(二)及答案解析(总分:13.00,做题时间:90 分钟)一、B选择题/B(总题数:5,分数:5.00)1.下列关于 C 语言数据文件的叙述中正确的是_。(分数:1.00)A.文件由 ASCII 码字符序列组成,C 语言只能读写文本文件B.文件由二进制数据序列组成,C 语言只能读写二进制文件C.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件D.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件2.有以下程序 #includestdio.h main() FILE*fp;int i,k=0,n=0; fp=fopen(“d1.dat“,“w“); for(i=1
2、;14;i+) fprintf(fp,“%d“,i); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d%d“,int i; myf=fopen(“test.txt“,“w“); for(i=0;istrlen(st);i+) fputc(sti,myf); fclose(myf); main() fun(“test“,“new one“); fun(“test“,“hello,“); (分数:1.00)A.hello,B.new onehello,C.new oneD.hello,ne4.若以“w+”方式打开一个已存在的文件,则以下叙述正确的
3、是_。(分数:1.00)A.文件打开时,原文件内容不被删除,位置指针移到文件末尾,可作添加和读操作B.文件打开时,原有文件内容被删除,位置指针移到文件开头,可作写和读操作C.文件打开时,原有文件内容被删除,只可作写操作D.以上各种说法皆不正确5.函数调用语句:fseek(fp,-20L,1);的含义是_。(分数:1.00)A.将文件位置指针移到距离文件头 20 个字节处B.将文件位置指针从当前位置退后 20 个字节C.将文件位置指针从文件末尾处退后 20 个字节D.将文件位置指针移到离当前位置 20 个字节处二、B填空题/B(总题数:4,分数:8.00)6.feof(fp)函数用来判断文件是否
4、结束,如果遇到文件结束,则函数值为_,否则为_。(分数:2.00)填空项 1:_7.已有文本文件 test.txt,其中的内容为:I am the winner!。以下程序中,文件 test.txt 已正确为“读”而打开,由文件指针 fr 指向该文件,则程序的输出结果是_。 main() FILE*fr;char str40; fgets(str,5,fr); printf(“%s/n“,str); fclose(fr); (分数:2.00)填空项 1:_8.以下程序的功能是由键盘输入一个文件名,然后把由键盘输入的字符依次存放到该文件中,用“#”作为结束标志,请在横线处填入正确的内容。 #in
5、cludestdio.h void main() FILE*fp; char fname10,ch; printf(“input name of file:/n“); gets(fname); if(fp=_)=NULL) printf(“Cant open /n“); exit(0); printf(“Enter data:/n“); while(ch=getchar()!=#) fputc(_,fp); fclose(fp); (分数:2.00)填空项 1:_9.以下程序的功能是将文件 filel.c 的内容输出到屏幕上并复制到文件 file2.c 中。请在横线处填入适当的内容。 #inc
6、ludestdio.h void main() FILE_; fp1=fopen(“file1.c“,“r“); fp2=fopen(“file2.c“,“w“); while(!feof(fp1) putchar(fgetc(fp1); _ while(!feof(fp1)fputc(_); fclose(fp1); fclose(fp2); (分数:2.00)填空项 1:_文件(二)答案解析(总分:13.00,做题时间:90 分钟)一、B选择题/B(总题数:5,分数:5.00)1.下列关于 C 语言数据文件的叙述中正确的是_。(分数:1.00)A.文件由 ASCII 码字符序列组成,C 语
7、言只能读写文本文件B.文件由二进制数据序列组成,C 语言只能读写二进制文件C.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 D.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件解析:2.有以下程序 #includestdio.h main() FILE*fp;int i,k=0,n=0; fp=fopen(“d1.dat“,“w“); for(i=1;14;i+) fprintf(fp,“%d“,i); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d%d“,int i; myf=fopen(“test.txt
8、“,“w“); for(i=0;istrlen(st);i+) fputc(sti,myf); fclose(myf); main() fun(“test“,“new one“); fun(“test“,“hello,“); (分数:1.00)A.hello, B.new onehello,C.new oneD.hello,ne解析:4.若以“w+”方式打开一个已存在的文件,则以下叙述正确的是_。(分数:1.00)A.文件打开时,原文件内容不被删除,位置指针移到文件末尾,可作添加和读操作B.文件打开时,原有文件内容被删除,位置指针移到文件开头,可作写和读操作 C.文件打开时,原有文件内容被删除
9、,只可作写操作D.以上各种说法皆不正确解析:5.函数调用语句:fseek(fp,-20L,1);的含义是_。(分数:1.00)A.将文件位置指针移到距离文件头 20 个字节处B.将文件位置指针从当前位置退后 20 个字节 C.将文件位置指针从文件末尾处退后 20 个字节D.将文件位置指针移到离当前位置 20 个字节处解析:二、B填空题/B(总题数:4,分数:8.00)6.feof(fp)函数用来判断文件是否结束,如果遇到文件结束,则函数值为_,否则为_。(分数:2.00)填空项 1:_ (正确答案:非 0 0)解析:7.已有文本文件 test.txt,其中的内容为:I am the winne
10、r!。以下程序中,文件 test.txt 已正确为“读”而打开,由文件指针 fr 指向该文件,则程序的输出结果是_。 main() FILE*fr;char str40; fgets(str,5,fr); printf(“%s/n“,str); fclose(fr); (分数:2.00)填空项 1:_ (正确答案:I am)解析:8.以下程序的功能是由键盘输入一个文件名,然后把由键盘输入的字符依次存放到该文件中,用“#”作为结束标志,请在横线处填入正确的内容。 #includestdio.h void main() FILE*fp; char fname10,ch; printf(“input
11、 name of file:/n“); gets(fname); if(fp=_)=NULL) printf(“Cant open /n“); exit(0); printf(“Enter data:/n“); while(ch=getchar()!=#) fputc(_,fp); fclose(fp); (分数:2.00)填空项 1:_ (正确答案:fopen(fname,“w“) ch)解析:9.以下程序的功能是将文件 filel.c 的内容输出到屏幕上并复制到文件 file2.c 中。请在横线处填入适当的内容。 #includestdio.h void main() FILE_; fp1=fopen(“file1.c“,“r“); fp2=fopen(“file2.c“,“w“); while(!feof(fp1) putchar(fgetc(fp1); _ while(!feof(fp1)fputc(_); fclose(fp1); fclose(fp2); (分数:2.00)填空项 1:_ (正确答案:*fp1,*fp2 rewind(fp1) getc(fp1),fp2)解析: