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

admin2022-04-01  21

问题 有以下程序
 #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/X9kp777K
0

最新回复(0)