问题 单项选择题

有以下程序:
#include<stdio.h>
main()
FILE *fp;int a[10]=[1,2,3],i,n;
fp=fopen("d1.dat","w");
for(i=0;i<3;i++)fprintf(fp,"%d",a[i]);
fprintf(fp,"\n");
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,"%d,&n);
fdose(fp);
printf("%d\n",n);

A.12300

B.123

C.1

D.321

答案

参考答案:B

解析: 本题主要考查的是文件的操作。程序一开始定义了一个文件指针FILE *fp;,然后通过fopen函数以只写方式打开d1.dat文件,使用一个for循环往d1.dat文件里面依次写入数组a的三个值,再写入一个换行符,最后通过fclose函数关闭d1.dat文件。此时,d1.dat中的内容应该是“123”。接下来又通过fopen函数以只读方式打开d1.dat文件,使用fscanf函数读取1个整数,考生可能会认为读取的只是第1次写入的整数1,其实它将整个123当成1个整数给读进来了,所以读取后n的值为123。

问答题
多项选择题