问题 单项选择题

有以下程序: #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。

单项选择题 A1型题
单项选择题