问题 单项选择题

有以下程序:
#include <stdio.h>
main()

FILE *fp;
int i,k,n;
fp=fopen("data.dar","w+");
for(i=1;i<6;i++)

fprintf(fp,"%d ",i);
if(i%3==0)
fprintf(fp,"\n");

rewind(fp);
fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n);
fclose(fp);

程序运行后的输出结果是( )。

A.0 0

B.123 45

C.1 4

D.1 2

答案

参考答案:D

解析: 程序首先定义了一个文件指针fp,并使用fopen()函数以“w+”方式新建一个可读写文件“data.dat”。然后使用一个for循环,循环变量i从1递增到5,在循环体中每次写入循环变量i的值和 4个空格,当i能被3整除的时候写入一个换行符。所以循环结束时,文件中的内容应该为:
1 2 3
4 5
接下来程序使用rewind()函数,将文件的读写指针调回起始位置。并调用fscanf()函数从文件中读取两个整数到变量k和n。所以最终输出应该为:1 2。故本题选D。

判断题
多项选择题