有以下程序  #include<stdio.h>  main()  { FILE *fp;   int i,a[6]={l,2,3,4,5,6},k;   fp=fopen("data.dat","w+");   for(i=0;i<6;i+

admin2022-10-24  19

问题 有以下程序
 #include<stdio.h>
 main()
 {  FILE *fp;
    int i,a[6]={l,2,3,4,5,6},k;
    fp=fopen("data.dat","w+");
    for(i=0;i<6;i++)
      fprintf(fp,"%d\n",a[5-i]);
    rewind(fp);
    for(i=0;i<6;i++)
    {fscanf(fp,"%d",&k);
      printf("%d,",k);
    }
 fclose(fp);
 }
 程序运行后的输出结果是(          )。

选项 A、6,5,4,3,2,1,
B、1,2,3,4,5,6,
C、1,1,1,1,1,1
D、6,6,6,6,6,6,

答案A

解析 函数fopen(”data.dat”,”w+”)中的“w+”表示打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失;若文件不存在则建立该文件。函数rewind(fp)使文件fp的位置指针指向文件开始。函数fprintf(fp,”%d\n”,a[5-i])将a输出到fp指向的文件中。函数fscanf(fp,”%d,&k)将fp读入变量k中。第1个for循环将数组中的元素倒着输入fp指向的文件中。rewind则指向文件开始。因此输出的是数组a的倒叙“6,5,4,3,2,1,”。故本题答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/zDkp777K
0

相关试题推荐
最新回复(0)