有以下程序(提示:程序中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","

题目

有以下程序(提示:程序中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


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

    有以下程序

    #include<stdio.h>

    main()

    {FILE *fp; int i,a[6]={l,2,3,4,5,6};

    fp=fopen("d3.dat","w+b");

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

    fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/

    fread(a,sizeof(int),3,fp); fclose(fp);

    for(i=0;i<6;i++)printf("%d,",a[i]);

    }

    程序运行后的输出结果是

    A.4,5,6,4,5,6,

    B.1,2,3,4,5,6,

    C.4,5,6,1,2,3,

    D.6,5,4,3,2,1,


    正确答案:A
    解析:首先利用fwrite函数将数组a中的数据写到文件中,接着fseek函数的功能是读文件的位置,指针从文件头向后移动3个int型数据,这时文件位置指针指向的是文件中的第4个int数据"4",然后 fread函数将文件fp中的后3个数据4,5,6读到数组a中,这样就覆盖了数组中原来的前3项数据。最后数组中的数据就成了{4,5,6,4,5,6}。

  • 第2题:

    有以下程序(提示:程序中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.dar","wb"); for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp); fp=fopen("data.dar","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
    解析:Leek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节,调用此函数后指针指向a[2],fread(&b,sizeof(int),1,fp)是从文件中读取sizeof(int)字节的数据到变量b中,也就是从文件中读取数据3到变量b中。

  • 第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题:

    有以下程序(提示:程序中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


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

  • 第5题:

    有以下程序(提示,程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件末尾向前移2*sizeof(int)字节): #include <stdio.h> main() { FILE *fp; int i, a[4]={l,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.dar","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(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所指向的文件中;函数fwrite(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从文件末尾向前移动两个血型大小字节,再通过函数fread从fp所指的文件畔,读取一个int型大小的数据到变量b中,故此时b的值为3,因此最后输出b的值为3,所以,4个选项中选项D符合题意。