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

admin2020-11-27  26

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

选项 A、6   
B、21
C、123456
D、654321

答案A

解析 本题首先定义文件指针变量fp和一个数组a[],再打开一个文件"data.dat",随后先给文件写入数据a[0],由于rewind函数是将文件指针从当前位置重新指向文件开始位置,所以for循环依次将数组a中的数据写入文件开始位置,退出循环后,文件中的数据顺序为:654321,重新使指针指向文件开始位置,将此时fp指向的数据(即文件中第一个数据6)写入变量k中,关闭文件,输出k值,答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/xY3p777K
0

最新回复(0)