问题 单项选择题

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

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

fprintf(fp,"%d ",1);
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.daf".然后使用一个for循环,循环变量i从1递增到5,在循环体中每次写入循环变量i的值和4个空格,当i能被3整除的时候写入一个换行符。所以循环结束时,文件中的内容应该为:
1 2 3
4 5
接下来程序使用rewind()函数,将文件的读写指针调回起始位置。并调用fscanf()函数从文件中读取两个整数到变量k和n。所以最终输出应该为:1 2。故本题选D。

多项选择题
单项选择题