有下列程序  #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++)

admin2022-04-01  30

问题 有下列程序
 #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://jikaoti.com/ti/fHd0FFFM
0

最新回复(0)