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

admin2009-04-15  19

问题 有以下程序    #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、1  2
B、123  0
C、1  23
D、0  0

答案2

解析 函数fopen(const char*filename,const char*mode)的功能,是以 mode指定的模式打开filename指定的磁盘文件;fclose(FILE*fp)的功能是关闭文件指针 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循环,每循环一次调用函数fpfintf将i的值写进fP所指的文件中,该循环共循环3次,循环完后fP所指文件的内容为123,然后通过fclose函数关闭fp所指文件。接着通过fscanf函数将fP所指文件的内容读出并赋值给变量k和变量n,由于fp所指文件中只有123没有分隔符,故只给k赋值为123,变量n的值依然为以前的值,故最后输出k和n的值为123。
转载请注明原文地址:https://kaotiyun.com/show/UoWp777K
0

最新回复(0)