itgle.com

有以下程序:#include<stdio.h>void main(){ fILE*fp; int i,a[4]={1,2,3,4},b; fp=fopen("data.dat","wb"); for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp) fp=fopen("data.dat","rb"); fseek(fp,-2L*sizeof(int),1,fp);/*文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp)

题目

有以下程序:#include<stdio.h>void main(){ fILE*fp; int i,a[4]={1,2,3,4},b; fp=fopen("data.dat","wb"); for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp) fp=fopen("data.dat","rb"); fseek(fp,-2L*sizeof(int),1,fp);/*文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp); printf("%d\n",b);}程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是( )。A.使位置指针从文件末尾向前移2*sizeof(int)字节B.使位置指针从文件末尾向前移2字节C.使位置指针向文件末尾向前移懂2*sizeof(int)字节D.使位置指针向文件末尾移动2字节


相似考题
更多“有以下程序:#include&lt;stdio.h&gt;void main(){ fILE*fp; int i,a[4]={1,2,3,4},b; fp=fopen(" ”相关问题
  • 第1题:

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

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


    正确答案:B
    解析:函数fopen(coostchar*filename,constchar*mode)的功能,是以mode指定的模式打开filename指定的磁盘文件;fclose(FILE*fp)的功能是关闭文件指针印指向的文件;函数fscanf(FILE*fp,constchar*format[,address,--])的功能是根据format中的格式从fp指向的文件中读取数据,并存入到相应的address指向的变量中。函数fprintf(FILE*fp,constchar*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符合题意。

  • 第2题:

    有以下程序 include main( ) { FILE *fp; int i,k=0,n=0; fp=fopen(“d1.dat”,

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


    正确答案:B
    解析:在文件写操作时,两个数之间应用空格隔开,而在本题中,没有用空格隔开,所以123视为一个数。

  • 第3题:

    有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节) #include <stdio.h> main() { FILE*fp;int i,a[4]={1,2,3,4},b; fp=fopen("data.dat","wb"); for(i=0;i<4;i++)fwrite(&a[i],sizeof(int),1,fp); fclose(fp); fp=fopen("data.dat","rb"); fseek(fp,-2L*sizeof(int),SEEK_END) ; fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/ felose(fp); printf("%d\n",b) ; } 执行后输出结果是

    A.2

    B.1

    C.4

    D.3


    正确答案:D
    解析:函数fopen(eonst char*filename,cortst char*mode)的功能是以 mode指定的模式打开filename指定的磁盘文件;fclose(FILE*fp)的功能是关闭文件指针 fp指向的文件;函数fscanf(FILE*fp,const char*format[address,--))的功能是根据for- mat中的格式从fp指向的文件中读取数据,并存入到相应的address指向的变量中。函数 fprintf(FILE*fp,const char * format[,argument,--])的功能是把argument列表中的表达式值写到fp所指向的文件中;函数fwrlte(void*ptr,int size,int n,FILE*fP)的功能是把 ptr指向的缓冲区中的size×n个字节写到文件指针fP指向的文件中。本题中首先定义了一个文件指针fp,然后通过函数fopen以“wb”的方式打开文件“data.dat”,直接通过一个 for循环,每循环一次调用函数fwrite将数组中的元素a[i]的值写进fp所指的文件中,该循环共循环4次,循环完后fp所指文件的内容为123,然后通过fclose函数关闭fp所指文件。接着通过函数fopen以“rb”的方式打开文件“data.dat”,通过fseek函数让指针fp从文件末尾向前移动2个int型大小字节的,然后通过函数fread从fp所指的文件中读取一个int型大小的数据到变量b中,故此时b的值为3,因此最后输出的b的值为3。

  • 第4题:

    有以下程序:includemain(){FILE*fp;int i,k=0,n=0; fp=fopen("d1.dat","w"); for(i=1;

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


    正确答案:B
    解析:fprintf、fscanf函数与printf、scanf函数作用相仿,都足格式化读写函数,其区别在于:fprintf和fscanf函数的读写对象不是终端而是磁盘文件。这两个函数的一般调用方式为:fprintf(文件指针,格式字符串,输出表列);fscanf(文件指针,格式字符串,输入表列);程序首先将123写入d1.dat文件中,再从该文件中将数据读给变量k和n。由于文件d1.dat中的数据是123,按格式“%d%d”读数据时将123读给k,n没有得到读入的数据,保持初始值0。

  • 第5题:

    有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移 2*sizeof(int)字节) #include <stdio.h> main( ) { FILE *fp; int i,a[4]={1,2,3,4},b; fp=fopen("data.dat","wb"); for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp); fp=fopen("data.dat","rb"); fseek(fp,-2L*sizeof(int).SEEK_END); fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp); printf("%d\n",b);} 执行后输出结果是( )

    A.2

    B.1

    C.4

    D.3


    正确答案:D
    解析:本题主要考查输入输出函数的作用。fopen()函数的作用是以指定的方式打开指定的文件,fread()函数的作用是从指定的文件中按指定的格式把输人数据存人指定的文件中,fwrite()函数的作用是把指定个数的字节输出到指定文件中。

  • 第6题:

    有以下程序

    #include<stdio.h>

    main()

    {

    FILE *fp; it a[10]={1,2,3,0,0};

    fp=fopen(“d2.dat”,”wb”);

    fwrite(a,sizeof(int),5,fp);

    fwrite(a,sizeof(int),5,fp);

    fclose(fp);

    fp=fopen(“d2.dat”,”rb”);

    fread(a,sizeof(int),10,fp);

    for(i=0;i<10;i++) printf(“%d”,

    A.;

    }

    程序运行结果是( )。


    正确答案:A