有下列程序 #include<stdio.h> main() {FILE*fp; int i,a[6]={1,2,3,4,5,6}; fp=fopen("d.dat","w+b"); for(i=0;i<6;i++) fwrite(&a[i],sizeof

admin2020-10-26  13

问题 有下列程序
#include<stdio.h>
main()
{FILE*fp;
int i,a[6]={1,2,3,4,5,6};
fp=fopen("d.dat","w+b");
for(i=0;i<6;i++)
fwrite(&a,sizeof(int),1,fp);
rewind(fp);
fread(&a[3],sizeof(int),3,fp);
fclose(fp);
for(i=0;i<6;i++)
printf("%d,",a);
}
程序执行后的输出结果是(    )。

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

答案D

解析 程序首先以读和写二进制文件的方式打开文件d.dat,然后通过for循环,调用fwrite()函数将数组a中的各个元素写入到d.dat中,然后使用rewind()函数,将文件指针fp重定位到文件的开始位置,再调用fread()函数将文件的前三个整数1,2,3读入a[3]开始的位置,所以此时数组a中的元素值分别为:1,2,3,1,2,3,本题答案为:D
转载请注明原文地址:https://kaotiyun.com/show/Vj3p777K
0

最新回复(0)