有以下程序  #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,size

admin2022-10-24  13

问题 有以下程序
 #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。故本题答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/aJkp777K
0

相关试题推荐
最新回复(0)