有下列程序  #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-10-24  15

问题 有下列程序
 #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函数将文件的前3个整数1,2,3读入a[3]开始的位置,所以此时数组a中的元素值分别为1,2,3,1,2,3。故本题答案为D选项。
转载请注明原文地址:https://jikaoti.com/ti/Mnd0FFFM
0

最新回复(0)