问题
单项选择题
有以下程序:
#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}。