有以下程序:
#include<stdio.h>
main()
FILE * fp; int i, a[6]=1, 2, 3, 4, 5, 6;
fp=fopen("d3. dat", "w+b");
fwrite(a, sizeof(int), 6, fp);
fseek(fp, sizeof(int) *3, SEEK_SEr); /*该语句使渎文件的位置指针从文件头向后移动3个int型数据*/
Fread(a, sizeof(int), 3, fp); fclose(fp);
for(i=0; i<6; i++)printf("%d, ", a[i]);
程序运行后的输出结果是
A) 4, 5, 6, 4, 5, 6, B) 1, 2, 3, 4, 5, 6, C) 4, 5, 6, 1, 2, 3, D) 6, 5, 4, 3, 2, 1,
参考答案:A
解析: 首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个int数据“4”,然后fread函数将文件fp中的后3个数据4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数据就成了{4,5,6,4,5,6}。