有以下程序: #include <stdio.h> main() FILE *fp; int i, k=0, n=0; fp=fopen("d1.dat","w"); for(i=l;i<4;i+

admin2009-01-15  20

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

答案2

解析 函数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符合题意。
转载请注明原文地址:https://kaotiyun.com/show/vOHp777K
0

相关试题推荐
最新回复(0)