有以下程序 #include <stdio.h> main( ) { FILE *fp; int i, a[6]={1,2,3,4,5,6},k; fp = fopen( "data.dat", "w+" ); for ( i=

admin2020-04-18  54

问题 有以下程序
#include   <stdio.h>
main( )
{  FILE  *fp;
   int  i, a[6]={1,2,3,4,5,6},k;
   fp = fopen( "data.dat", "w+" );
   for ( i=0; i<6; i++ )
       fprintf(fp, "%d\n", a[5-i]);
   rewind(fp);
   for ( i=0; i<6; i++ )
   {   fscanf(fp, "%d", &k);
       printf("%d,", k);
   }
   fclose(fp);
}
程序运行后的输出结果是

选项 A、6,5,4,3,2,1,   
B、1,2,3,4,5,6,
C、1,1,1,1,1,1
D、6,6,6,6,6,6,

答案A

解析 fopen( "data.dat", "w+" ); w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。rewind(fp);使文件fp的位置指针指向文件开始。fprintf(fp,"%d\n", a[5-i]);将a输出到fp指向的文件中。fscanf(fp, "%d", &k);将fp读入到变量k中,第一个for循环将数组中元素倒着输入到fp指向的文件中,rewind()则指向文件开始,因此打印是数组a的倒叙。故打印为6,5,4,3,2,1。答案为A选项
转载请注明原文地址:https://kaotiyun.com/show/EjCp777K
0

最新回复(0)