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

admin2022-04-02  28

问题 有下列程序
 #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的三个位置,即a[3]=6,a[4]=5,a[5]=4,关闭文件。再次调用for循环输出a,输出结果为:1,2,3,6,5,4。本题答案为D选项。
转载请注明原文地址:https://kaotiyun.com/show/nhkp777K
0

最新回复(0)