单选题 下列程序的输出结果是{{U}} {{/U}}。
#include <stdio.h>
main()
{ FILE *fp; int i, k=0, n=0;
fp=fopen( "d1.dat", "w");
for(i=1; 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.12
  • B.1230
  • C.123
  • D.00
【正确答案】 B
【答案解析】[解析] fscanf从磁盘上读取ASCII字符,给k和n赋值。在进行fp=fopen("dl.dat", "w")操作时,向文件写字符,由fprintf()将1,2,3写入磁盘,再由磁盘符123传给k,且将0传给n。在文件写操作时,两个数之间应用空格隔开,而在本题中,没有用空格隔开,所以123视为一个数。