问题 单项选择题

有以下程序:
#include <stdio.h>
main()
FILE *fp; int i, k=0, n=0;
fp=fopen("d1.dat","w");
for(i=l;i<4;i++) fprintf(fp,"%d",i);
fclose(fp);
fp=fopen("d1.dat","r");
fscanf(fp,’%d%d",&k,&n); printf("%d %d\n", k, n);
fclose(fp);
执行后输出结果是

A.1 2

B.123 0

C.1 23

D.0 0

答案

参考答案:B

解析: 函数fopen(coost char *filename,const char*mode)的功能,是以mode指定的模式打开filename指定的磁盘文件;fclose(FILE *fp)的功能是关闭文件指针印指向的文件; 函数 fscanf(FILE *fp, const char*format[,address,--])的功能是根据format中的格式从fp指向的文件中读取数据,并存入到相应的address指向的变量中。函数 fprintf(FILE *fp, const char*format[,argument,--])的功能是把argument列表中的表达式值写到fP所指向的文件中;本题中首先定义了一个文件指针fp,然后通过函数fopen以“w”的方式打开文件“d1.dat”,直接通过一个for循环,每循环一次调用函数fprintf将i的值写进fp所指的文件中,该循环共循环3次,循环完后fp所指文件的内容为123,然后通过fclose函数关闭fp所指文件。接着通过fscanf函数将fp所指文件的内容读出并赋值给变量k和变量n,由于fp所指文件中只有123没有分隔符,故只给k赋值为 123,变量n的值依然为以前的值,故最后输出k和 n的值为123,所以,4个选项中选项B符合题意。

写作题
单项选择题