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

admin2022-06-24  18

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

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

答案A

解析 程序首先以读二进制文件的方式打开d.dat,然后使用fwrite( )函数将数组a中6个元素写入d.dat中,接着调用for循环将a[2]元素(值为3)6次写入d,dat文件中;再使用rewind( )函数将文件指针fp移动到文件头,再使用fseek( )函数将fp以当前位置向后移动2个整数位置,再使用fread( )函数从fp指向的位置向后读取6个整数,由此可知这6个整数分别是3,4,5,6,3,3,。
转载请注明原文地址:https://jikaoti.com/ti/Fmd0FFFM
0

最新回复(0)