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

admin2015-07-28  13

问题 若有以下程序
#include
main()
{ FILE *fp;
int i, a[6]={1,2,3,4,5,6}, k;
fp = fopen("data.dat", "w+b");
for (i=0; i<6; i++)
{ fseek(fp, 0L, 0);
fwrite(&a[5-i], sizeof(int), 1, fp);
}
rewind(fp);
fread(&k, sizeof(int), 1, fp);
fclose(fp);
printf("%d", k);
}
则程序的输出结果是( )。

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

答案A

解析 语句" fseek(fp, 0L, 0);"将文件指针fp指向文件首,然后再往当前地址内写入数据,由于每次循环都将文件指针置于文件首后再写,之前写入的数据会被新写入的数据覆盖,而写入顺序为按照数组逆序写入,所以循环执行完毕之后,文件中最终写入的数据为1,输出结果为选项A)。
转载请注明原文地址:https://kaotiyun.com/show/HKJp777K
0

最新回复(0)