单选题以下关于fclose(fp)函数的叙述正确的是( )。A当程序中对文件的所有写操作完成之后,必须调用fclose(fp)函数关闭文件B当程序中对文件的所有写操作完成之后,不一定要调用fclose(fp)函数关闭文件C只有对文件进行输入操作之后,才需要调用fclose(fp)函数关闭文件D只有对文件进行输出操作之后,才能调用fclose(fp)函数关闭文件
单选题
以下关于fclose(fp)函数的叙述正确的是( )。
A
当程序中对文件的所有写操作完成之后,必须调用fclose(fp)函数关闭文件
B
当程序中对文件的所有写操作完成之后,不一定要调用fclose(fp)函数关闭文件
C
只有对文件进行输入操作之后,才需要调用fclose(fp)函数关闭文件
D
只有对文件进行输出操作之后,才能调用fclose(fp)函数关闭文件
参考解析
解析:
程序编写者应该在程序终止之前关闭所有文件,如果不关闭,文件将会丢失数据。用fclose函数关闭文件,它先把缓冲区中的数据输出到磁盘文件,然后才释放文件指针变量,A项正确,B项错误。只要对文件进行操作后,都要调用fclose文件关闭文件,C、D项错误。答案选择A选项。
程序编写者应该在程序终止之前关闭所有文件,如果不关闭,文件将会丢失数据。用fclose函数关闭文件,它先把缓冲区中的数据输出到磁盘文件,然后才释放文件指针变量,A项正确,B项错误。只要对文件进行操作后,都要调用fclose文件关闭文件,C、D项错误。答案选择A选项。
相关考题:
有以下程序,其功能是:以二进制 “ 写 ” 方式打开文件 d1.dat ,写入 1 ~ 100 这 100 个整数后关闭文件 。 再以二进制 “ 读 ” 方式打开文件 d1.dat , 将这 100 个整数读入 到 另一个数组 b 中 , 并打印输出 , 请填空。#include stdio.hmain(){ FILE *fp;int i,a[100],b[100];fp=fopen("d1.dat","wb");for(i=0;i100;i++) a[i]=i+1;fwrite(a,sizeof(int),100,fp);fclose(fp);fp=fopen("d1.dat", 【 20 】 );fread(b,sizeof(int),100,fp);fclose(fp);for(i=0;i100;i++) printf("%d\n",b[i]);}
以下程序试图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#时结束输入和输出操作,但程序有错。 #include<stdio.h> 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没有定义
已知数据文件IN68.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数jsVal(),其功能是:如果4位数各位上的数字均是奇数,则统计出满足此条件的个数cnt,并把这些4位数按从大到小的顺序存入数组b中。最后调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT68.DAT文件。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:include<stdio.h>define MAX 200int a[MAX],b[MAX],cnt=0;void jsVal(){}void readDat ( ){int i;FILE *fp;fp= fopen ("IN68. DAT", "r");for (i=0; i<MAX; i++)fscanf (fp, "%d", a [i])fclose (fp);}void main ( ){int i;readDat ( );jsVal ( );printf ("满足条件的数=%d\n", cnt);for (i=0; i<cnt; i++)printf ("%d",b[i]);printf ("\n");writeDat ( );}writeDat ( ){FILE *fp;int i;fp= fopen ("out68.dat", "w");fprintf (fp, "%d\n", cnt);for (i=0; i<cnt; i++)fprintf (fp, "%din", b [i]);fclose (fp);}
已知数据文件INI.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数isVal(),其功能是:如果4位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的数的个数cnt,并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT1.DAT文件中。注意:部分源程序已给出。程序中已定义数组:a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:include <stdio.h>define MAX 200int a[MAX], b[MAX], cnt = 0;void jsVal(){}void readDat(){int i;FILE *fp;fp = fopen("IN1.DAT", "r");for(i = 0; i <MAX; i++) fscanf(fp, "%d", ia[i]);fclose (fp);}main ( ){int i;readDat ();jsVal ();printf("满足条件的数=%d\n", cnt);for(i = 0; i < cnt; i++) printf("%d ", b[i]);printf ("\n");writeDat ();}writeDat ( ){FILE *fp;int i;fp = fopen("OUT1.DAT", "w");fprintf(fp, "%d\n", cnt);for(i = 0; i < cnt; i++) fprintf(fp, "%d\n", b[i]);fclose (fp);}
请补充main 函数,该函数的功能是:把文本文件B中的内容追加到文本文件A的内容之后。例如,文佃的内容为“I’m ten.”,文件A的内容为“I’ m a student!”,追加之后文件A的内容为“I’m a student !I’m ten.”注意:部分源程序给出如下。请勿改动主函数main 和其他函数中的任何内容,仅在函数main 的横线上填入所编写的若干表达式或语句。试题程序:include<stdio, h>include<conio. h>define N 80main(){FILE *fp, * fp1, *fp2;int i;char c[N] ,t, ch;clrscr ();if ((fp=fopen ("A. dat ", "r") ) == NULL){printf ("file A cannot be opened\n");exit (0);}printf("\n A contents are : \n\n");for (i=0; (ch=fgetc (fp)) !=EOF; i++){C [i]=ch;putchar (c [i]);fclose (fp);if((fp=fopen ("B. dat", "r") )==NULL){printf ("file B cannot be opened\n");exit (0);}printf("\n\n\nB contents are : \n\n");for (i=0; (ch=fgetc (fp)) !=EOF; i++){c [i] =ch;putchar (c [i]);}fclose (fp);if ( (fp1=fopen ("A.dat" ,"a"))【 】(fp2=fopen ("B. dat", "r") ) ){while ( (ch=fgetc (fp2)) !=EOF)【 】;}else{printf("Can not open A B !\n");}fclose (fp2);fclose (fp1);printf ("\n***new A contents***\n\n");if ( ( fp=fopen ("A. dar", "r") )==NULL){printf ("file A cannot be opened\n");exit (0);}for (i=0; (ch=fgetc (fp)) !=EOF;i++){c [i] =ch;putchar (c [i] );}【 】;}
以下程序打开新文件f.txt,并调用字符输出函数将a数组中的字符写入其中,请填空。includestdio.hmain( ){________*fp;char a[5]=(’1’,’2’,’3’,’4’,’5’),i;fp=fopen(”f.txt”,”w”);for(i=0;i5;i++)fputc(a[i],fp);fclose(fp);}
函数ReadDat()的功能是实现从文件IN35.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数$ortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,捧序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT35.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。注意:部分源程序已给出。请勿改动主函数main()、读函数ReadDat()和写函数WriteDat()的内容。试题程序:include<stdio.h>include<string.h>include<conio.h>char xx[50] [80];int maxline=0;int ReadDat(void);void WriteDat(void);void SortCharD(){}void main(){clrscr();if (ReadDat()){printf ("数据文件 IN35.DAT 不能打开!\n\007 ");return;}SortCharD();WriteDat();}int ReadDat(void){FILE *fp;int i=0;char *p;if((fp=fopen("IN35.DAT","r"))==NULL)return 1;while (fgets(xx[i],80,fp)!=NULL){p=strchr(xx[i],'\n');if (p) *p=0;i++;}maxline=i;fclose(fp);return 0;}void WriteDat(){FILE *fp;int i;clrscr();fp=fopen("OUT35.DAT","w");for(i=0;i<maxline;i++){printf ("%s\n",xx[i]);fprintf(fp,"%s\n',xx[i]);}fclose(fp);}
函数ReadDat()的功能是实现从文件IN35.DAT中读取一篇英文文章存入到字符串数组xx中。请编制函数SortCharD(),该函数的功能是:以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件OUT35.DAT中。例如,原文:dAe,BfCCCbbAA结果:fedCBA,bbCCAA原始数据文件存放的格式是:每行的宽度均小于80个字符,含标点符号和空格。注意;部分源程序已给出。请勿改动主函数main()、读函数ReadDat()和写函数WrteDat()的内容。试题程序:include<Stdio.h>include<String.h>include<conio.h>char xx[50][80];int maxline=0;int ReadDat(void);void WriteDat(void);void SortCharD(){}void main(){Clrscr();if (ReadDat()){printf("数据文件 IN35.DAT不能打开!\n\007");return;}SortChar D();WriteDat();}int ReadDat(void){FILE *fp;int i=0;Char*p;if((fp:fOpen("IN35.DAT","r"))==NULL)return 1;while (fgets(xX[i],80,fp)!=NULL){p=strchr(xX[i],"\n");if (p) *p:0;i++;}maxline=i;fclose(fp);return 0;}void WriteDat(){FILE *fp;int i;Clrscr();fp:fopen("OUT35.DAT","w");for(i:0;i<maxline;i++){printf("%s\",xx[i]);fprintf(fp,"%s\n",xx[i]);}fclose(fp);}
以下程序的功能是# include stdio.hmain (){ FILE *fp1;*fp2; fp1=fopen ("file1","r"); fp2=fopen ("file2","w"); while (!feof (fp1)) fputc (fgetc (fp1),fp2); fclose (fp1); fclose (fp2);}A.将磁盘文件的内容显示在屏幕上 B.将两个磁盘文件合为一个C.将一个磁盘文件复制到另一个磁盘文件中D.将两个磁盘文件合并后送屏幕
已知数据文件IN53.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,请编制一函数isVal(),其功能是:依次从数组a中取出一个4位数,如果该4位数连续大于该4位数以前的5个数且该数是偶数,则统计出满足此条件的数个数cnt并把这些4位数按从大到小的顺序存入数组b中,最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到文件OUT53.DAT中。请勿改动主函数main()、读函数readDat()和写函数wiltedat()的内容。试题程序:include<stdio.h>define MAX 200int a[MAX],b[MAX],cnt=0;void jsVal(){}void readDat() {{int i;FILE *fp;fp=fopen("in53.dat","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",a[i]);fclose(fp);}void main(){int i;readDat();jsVal();printf ("满足条件的数=%d\n", cnt);for(i=0;i<cnt;i++)printf("%d",b[i]);printf("\n");writeDat();}writeDat(){FILE *fp;int i;fp=foPen("out53.dat","w");fprintf(fp,"%d\n",cnt);for(i=0;i<cnt;i++)fprintf(fp,"%d\n",b[i]);fclose(fp);}
设文件test.txt中原已写入字符串Begin,执行以下程序后,文件中的内容为【 15 】 。#include stdio.hmain( ){ FILE *fp;fp= fopen( "test.txt”, ”w+”);fputs( "test",fp);fclose(fp);}
以下程序的功能是()includemain(){FILE * fp1;*fp2;fp1=fopen("filel","r");fp2=fopen 以下程序的功能是( ) #include<stdio.h> main() {FILE * fp1; *fp2; fp1=fopen("filel","r"); fp2=fopen("file2","w"); while(!feof(fp1)) fputc(fgetc(fp1),fp2); fclose(fp1);fclose(fp2);}A.将磁盘文件的内容显示在屏幕上B.将两个磁盘文件合为一个C.将一个磁盘文件复制到另一个磁盘文件中D.将两个磁盘文件合并后送屏幕
以下程序的功能是()。includemain(){FILE*fPl;*fp2;fp1:fopen("file1","r");fp2:fopen( 以下程序的功能是( )。 # include <stdio.h> main() {FILE*fPl; *fp2; fp1:fopen("file1","r"); fp2:fopen("file2","w"); while(! Feof(fP1)) fputc(fgetc(fP1),fp2); fclose(fP1);fclose(fp2);}A.将磁盘文件的内容显示在屏幕上B.将两个磁盘文件合为一个C.将一个磁盘文件复制到另一个磁盘文件中D.将两个磁盘文件合并后送屏幕
已知数据文件1N68.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中,清编制一函数JsVal(),其功能是:如果4位数各位上的数字均是奇数,则统计出满足此条件的个数cnt,并把这些4位数按从大到小的顺序存入数组b中。最后调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到 OUT68.DAT文件。注意:部分源程序己给出。程序中已定义数组;a[200],b[200],已定义变量:cnt。请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。试题程序:include<stdio.h>define MAX 200int a[MAX],b[MAX],cnt=0;void jsVal(){}void readDat(){int i;FILE *fp;fp=fopen("IN68.DAT","r");for(i=0;i<MAX;i++)fscanf(fp,"%d",a[i]);fclose(fp);}void main(){int i;readDat();jsVal();printf (满足条件的数=%d\n", cnt);for(i=0;i<cnt;i++)printf ("%d", b Iii );printf ("\n");writeDat ();}writeDat (){FILE *fp;iht i;fp=fopen ("out68.dar","w");fprintf (fp,"%d\n",cnt);for (i=0; i<cnt; i++)fprintf {fp,"%d\n",b Iii );fclose (fp);}
对于如下程序: #include main( ) { FILE *fp; fp=fopen(“file.txt”,“w”); fprintf(fp,“%s”,“xyz”); fclose(fp); } 若文件file.txt中原有的内容为good,则运行该程序以后,文件file.txt中的内容为()
关闭文件函数fclose(fp)的作用是()。A、不再为fp指向的文件分配内存空间;B、将fp指向的文件存入磁盘;C、释放指定文件所占据的内存空间和文件指针;D、将指定文件封闭在某一内存区域。
在文件读,写完毕之后是否需要关闭文件?()A、必须关闭,否则会无法完成文件读,写操作B、应当关闭,虽然无用对象回收机制会在回收文件读写对象时自动关闭,但对象回时间不定,因此应当及时调用文件读,写。C、不用关闭,Java在一次读,写操作完毕之后立即自动关闭文件D、不用关闭,Java在进行读写操作时不需要打开文件,因此也不用关闭文件
单选题在文件读,写完毕之后是否需要关闭文件?()A必须关闭,否则会无法完成文件读,写操作B应当关闭,虽然无用对象回收机制会在回收文件读写对象时自动关闭,但对象回时间不定,因此应当及时调用文件读,写。C不用关闭,Java在一次读,写操作完毕之后立即自动关闭文件D不用关闭,Java在进行读写操作时不需要打开文件,因此也不用关闭文件