选择题
37. 有以下程序:
#include<stdio.h>
main()
{ FILE*fp;
int i,a[6]={1,2,3,4,5,6},k;
f=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
【答案解析】 fopen("data. dat","w+");作用是打开可读写文件,若文件存在,则文件长度清为零,即该文件内容会消失;若文件不存在,则建立该文件。rewind(fp);作用是使文件fp的位置指针指向文件开始。fprintf(fp,"%d\n",a[5-1]);作用是将a[i]输出到fp指向的文件中。fscanf(fp,"%d",&k);作用是将fp读入到变量k中,第一个for循环将数组中元素倒着输入到fp指向的文件中;rewind()作用是指向文件开始,因此打印是数组a的倒序。故打印结果为6,5,4,3,2,1。答案为选项A。