问题 单项选择题

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

FILE *fp; int i=20,j=30,k,n;
fp=fopen("d1.dat","w");
fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j);
fclose(fp);
fp=fopen("d1.dat", "r");
fp=fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n);
fclose(fp);

程序运行后的输出结果是

A.20 30

B.20 50

C.30 50

D.3020

答案

参考答案:A

解析: 本题考查的知识点是文件的综应用。本题首先以创建方式打开文件“d1.dat”,两次调用fprintf()把i和i的值写到文件“d1.dar”中,文件“d1.dat的内容为20<回车>30<回车,后把该文件关闭再以读的方式打开,文件位置指针指向文件头,在通过fscanf()函数从中读取两个整数到k和n中,由于格式符无间隔,因此输入数据可以用回车隔开,故输入的k值为20,n的值为 30.所以4个选项中A正确。

单项选择题
单项选择题