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

admin2022-10-25  18

问题 有下列程序:
     #include<stdio.h>
     main()
     {  FILE *fp;
        int i,a[6]={1,2,3,4,5,6};
        fp=fopen(”d.dat”,”w+b”);
        for(i=5;i>=0;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、6,5,4,4,5,6,
B、1,2,3,4,5,6,
C、4,5,6,4,5,6,
D、1,2,3,6,5,4,

答案 D

解析 程序定义数组a,使用6个元素对其初始化,接着以写二进制方式打开文件d.dat。首先调用fwrite函数将a的6个元素逆序(654321)写入文件。接着调用rewind函数,将文件指针移动到文件开始位置。然后调用fread函数读入3个整数,逐个存放到a开始下标为3的3个位置,即a[3]=6,a[4]=5,a[5]=4。最后关闭文件。再次调用for循环输出a,结果为1,2,3,6,5,4,。本题答案为D选项。
转载请注明原文地址:https://kaotiyun.com/show/jCkp777K
0

随机试题
最新回复(0)