有以下程序 #include main() { FILE *fp; int i, a[6]={1,2,3,4,5,6},k; fp = fopen("data.dat", "w+"); fprintf(fp, "%d\n", a[0]); for (i=

admin2019-08-18  35

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

选项 A、21
B、6
C、123456
D、11

答案A

解析 该段代码以读写的方式打开文件data.dat,然后把数组a的第一个元素写入文件,接下来的for循环是不断读取当前文件中的数据,将该数据和数组a的下一个元素累加后又写入到文件当中(语句"fseek(fp, 0L, 0);"和"rewind(fp)"的作用是将文件指针移动至文件首),所以最终文件内记录的是数组a中所有元素之和,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/OpRp777K
0

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