有以下程序(提示:程序中fseek(fp-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件末尾向前移2*sizeof(ing)字节) #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","

题目

有以下程序(提示:程序中fseek(fp-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件末尾向前移2*sizeof(ing)字节) #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


相似考题
更多“有以下程序(提示:程序中fseek(fp-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件末尾 ”相关问题
  • 第1题:

    函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是( )。A.文件开始B.文件末尾SX

    函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是( )。

    A.文件开始

    B.文件末尾

    C.文件当前位置

    D.以上都不对


    正确答案:B
    SSEEK_SET代表文件的开始,SEEK_END代表文件末尾,SEEK_CUR代表文件当前位置。

  • 第2题:

    函数调用语句;fseek(fp,-20L,SEEK_END) ;的含义是( )

    A.将文件位置指针移到距离文件头20个字节处

    B.将文件位置指针从当前位置向后移动20个字节

    C.将文件位置指针从文件末尾处向后退20个字节

    D.将文件位置指针移到离当前位置20个字节处


    正确答案:C

  • 第3题:

    以下程序段的功能是:在打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。 FILE *myf; ling f1; myf= ()("test.t","rb"); fseek(myf,0,SEEK_END); f1=ftel(myf); fclose(myf); printf("%dn",f1);


    程序运行后,文件test.txt中的原有内容将全部消失

  • 第4题:

    函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是( )。 A.文件开始B.文件末尾S

    函数fseek(pf,OL,SEEK_END)中的SEEK_END代表的起始点是( )。

    A.文件开始

    B.文件末尾

    C.文件当前位置

    D.以上都不对


    正确答案:B
    SEEK_SET代表文件的开始,SEEK_END代表文件末尾,SEEK_CUR代表文件当前位置。

  • 第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中*/ 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。