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