单选题有以下程序#include main(){ FILE *fp; int a[10]={1,2,3,0,0},i; 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); fclose(fp); for(i=0;i<10;i++) printf(%d,,a[i]);}程序的运行结果是(

题目
单选题
有以下程序#include main(){ FILE *fp; int a[10]={1,2,3,0,0},i; 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); fclose(fp); for(i=0;i<10;i++) printf(%d,,a[i]);}程序的运行结果是(  )。
A

1,2,3,0,0,0,0,0,0,0,

B

1,2,3,1,2,3,0,0,0,0,

C

123,0,0,0,0,123,0,0,0,0,

D

1,2,3,0,0,1,2,3,0,0,


相似考题
更多“单选题有以下程序#include main(){ FILE *fp; int a[10]={1,2,3,0,0},i; 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); fclose(fp); for(i=0;i10;i++) printf(%d,,a[i]);}程序的运行结果是( ”相关问题
  • 第1题:

    有以下程序 #include main () {FILE *fp; int i,a[6]={1,2,3,4,5,6k}; 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

  • 第2题:

    有以下程序includemain(){FILE*fp;int i,a[6]={1,2,3,4,5,6};fp=fopen("d3.dat","w+b"

    有以下程序 #include<stdio.h> main() {FILE*fp;int i,a[6]={1,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

    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}。

  • 第3题:

    有以下程序 include main() { FILE *fp;int i,a[6]={1,2,3,4,5,6}; fp=

    有以下程序 #include<stdio.h> main() { FILE *fp;int i,a[6]={1,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},故本题答案为A)。

  • 第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]={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中。

  • 第6题:

    有以下程序:includemain(){FILE*fp;int a[10]={1,2,3},i,n;fp=fopen("d1.dat","w");fo

    有以下程序: #include<stdio.h> main() {FILE*fp;int a[10]={1,2,3},i,n; fp=fopen("d1.dat","w"); for(i=0;i<3;i++)fprintf(fp,"%d",a[i]); fprintf(fp,"\n"); fclose(fp); fp=fopen("d1.dat","r"); fscanf(fp,"%d",&n); fclose(fp); printf("%d\n",n); 程序的运行结果是( )。

    A.12300

    B.123

    C.1

    D.321


    正确答案:B

  • 第7题:

    有以下程序:includemain(){ FILE*fp;int i;char ch[]="abcd",t;fp=fopen("abc.dat","w

    有以下程序: #include <stdio.h> main() { FILE *fp; int i; char ch[]="abcd",t; fp=fopen("abc.dat","wb+"); for(i=0;i<4;i++)fwrite(&ch[i]1,1,fp); fseck(fp,-2L,SEEK_END) ; fread(&t,1,1,fp); felose(fp); printf("%c\n",t); } 程序执行后的输出结果是( )。

    A.d

    B.c

    C.b

    D.a


    正确答案:B
    解析:程序首先定义了一个文件指针fp,并使用fopen()函数以"wb+"方式新建一个可读写文件"abe.dat"。然后使用一个for循环,循环变量i从0递增到3,在循环体中每次写入ch[i]的值。所以循环结束时,文件中的内容应该为:abed。接下来程序使用fseek()函数,将文件的读写指针从文件末尾处向后退2个字节,文件末尾是最后一个输出字节的下一个字节,即下次写入数据的位置,所以此时文件读写指针指向的是字符'c'。最后调用ficadO函数从文件中读取1个字节到变量t中。所以最终输出应该为:c。故本题选B。

  • 第8题:

    有以下程序 #include<stdi0.h> main {FILE*fp;int a[0]一{1,2,3,0,0},i; 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); fclose(fp); for(i=0;i<10;i++)printft("%d",a[i]); } 程序的运行结果是( )。

    A.1,2,3,0,0,o,0,0,0,0,

    B.1,2,3,1,2,3,0,0,0,0,

    C.123,0,0,0,0,123,0,0,0,0,

    D.1,2,3,0,0,1,2,3,0,0,


    正确答案:D
    本题程序首先用函数fopen以“wb”的方式开打文件“d2.dat”,然后调用两次fwrite函数将数组a的5个元素,依次输出到文件fp中,共10个字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用head函数从文件印中读取这10个字节的数据到数组a中。型数组bb中,因此,【2】处填“str[i]-0”;由函数proc可知,变量n中存放整型数组bb中的元素个数,最后要返回到主函数当中,因此,【3】处填“n”。

  • 第9题:

    有以下程序 include main( ) { FILE *fp;int i,a[6]={1,2,3,4,5,6}; fp=fopen("d3.da

    有以下程序

    #include <stdio.h>

    main( )

    { FILE *fp;int i,a[6]={1,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}。

  • 第10题:

    有以下程序

    #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

  • 第11题:

    单选题
    有以下程序:#include main(){ FILE *fp; int a[10]={1,2,3},i,n; fp=fopen(d1.dat,w); for(i=0;i<3;i++) fprintf(fp,%d,a[i]); fprintf(fp,); fclose(fp); fp=fopen(d1.dat,r); fscanf(fp,%d,&n); fclose(fp); printf(%d,n);}程序的运行结果是(  )。
    A

    12300

    B

    123

    C

    1

    D

    321


    正确答案: D
    解析:
    程序开始定义了一个指针文件FILE *fp。语句fopen("d1.dat", "w");打开文件d1.dat,然后for循环语句向文件中依次写入数据。此时d1.dat应该为"123",fopen("d1.dat", "r");以只读方式打开d1.dat文件,fscanf(fp, "%d", &n);读取一个整数,但这时它把123作为一个整数读进来,最后输出n的值为123。答案选择B选项。

  • 第12题:

    单选题
    有以下程序:#include main(){ FILE *fp; int i,a[6]={1,2,3,4,5,6},k; fp=fopen(data.dat,w+b); fwrite(&a[0],sizeof(int),1,fp); for(i = 1;i < 6;i++) {  fseek(fp,0L,0);  fread(&k,sizeof(int),1,fp);  fseek(fp,0L,0);  a[i]+=k;  fwrite(&a[i],sizeof(int),1,fp); } rewind(fp); fread(&k,sizeof(int),1,fp); fclose(fp); printf(%d,k);}程序的运行结果是(  )。
    A

    21

    B

    6

    C

    123456

    D

    11


    正确答案: A
    解析:
    “w+”表示打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失;若文件不存在则建立该文件;加入b字符后“w+b”用来告诉函数库打开的文件为二进制文件。程序执行过程为:以读/写方式打开一个新的二进制文件data.dat,从地址为a的数据块开始,一次输出一个整型字节的数据,只输出一次,将1写入文件中;执行for循环,将文件指针移到文件开头,将文件第一个数值读出赋给k,再将指针移动到开头,向文件内输入a[i]+k=3。for循环实现将a数组中元素累加,结果21存放在文件中。调用rewind将文件指针移动到开头,调用fread函数从文件中读出一个整型数据赋给k=21,调用fclose函数关闭文件,打印k值,答案选择A选项。

  • 第13题:

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


    正确答案:A
    fseek 用于二进制方式打开的文件,移动文件读写指针位置.

  • 第14题:

    有以下程序 include main(){FILE *fp;int i; char ch[]="abcd",t; fp=fopen("abc.dat"

    有以下程序 #include <stdio.h> main() {FILE *fp; int i; char ch[]="abcd",t; fp=fopen("abc.dat","wb++"); for(i=O;i<4;i++)fwrite(&ch[i],1,1,fp); fseek (fp,-2L,SEEK_END); fread (&t,1,1,fp); fclose (fp); printf ("%c\n",t); } 程序执行后的输出结果是______。

    A.d

    B.c

    C.b

    D.a


    正确答案:A
    解析:此题考核的是文件的读写,定义—个FILE类型结构体的指针fp,以“可以由位置函数设置读和写”方式打开一个 abc.dat文件,并向文件输入数组变量ch指向的字符串,则文件内的内容为“abcd”,执行fseek函数,则文件类型指针fp指向文件尾向前移动2个字节的位置处,即指针指向“b”,所以最后的输出结果为b,答案选C。

  • 第15题:

    有以下程序

    #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}。

  • 第16题:

    以下程序运行后的输出结果是 。

    include

    main()

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

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

    fwrite(x,sizeof(int),3,fp);

    rewind(fp);

    fread(x,sizeof(int),3,f}]);

    for(i=0;i<6;i++)printf(“%d”,x[i]);

    printf(“\n”);

    fclose(fp);

    }


    正确答案:123456
    123456

  • 第17题:

    有以下程序 include main() { FILE *fp; int' a[10]={1,2,3,0,0},i;

    有以下程序 #include <stdio.h> main() { FILE *fp; int' a[10]={1,2,3,0,0},i; fp = fopen("d2.dat", "wb"); fwrite(a, sizeof(int), 5, fp); fwrite(a, sizeof(int), 5, fp); fclose(fp); fp = fopenCd2.dat", "rb"); fread(a, sizeof(int), 10, fp); fclose(fp); for (i=0; i<10; i++) printf("%d,", a[i]); }

    A.1,2,3,0,0,0,0,0,0,0,

    B.1,2,3,1,2,3,0,0,0,0,

    C.123,0,0,0,0,123,0,0,0,0,

    D.1,2,3,0,0,1,2,3,0,0,


    正确答案:D
    解析:本题首先定义了…个文件指针fp,然后通过fopen()函数打开一个名为"d2.dat"的文件,参数"wb"的意思是:为写入打开的二进制文件。然后通过fwrite()函数,将数组a的前5个元素2次写入d2.dat文件中,接下来用fclose()函数关闭此文件。然后又使用fopen()函数打开d2.dat文件,参数"rb"的意思是:为读入打开的二进制文件。接下来通过fread()函数从文件中读入10个int型数据到数组a中。然后又使用fclose()函数再次关闭此文件。最后通过for循环,输出数组a的所有10个元素。不难得知,现在a中的元素已经变为{1,2,3,0,0,1,2,3,0,0},故最终输出结果为1,2,3,0,0,1,2,3,0,0,0,。应该选择D。

  • 第18题:

    有以下程序(提示:程序中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()函数的作用是把指定个数的字节输出到指定文件中。

  • 第19题:

    有以下程序:includemain(){ FILE *fp;int a[10]={1,2,3,0,0},i;fp=fopen("d2.dat","wb

    有以下程序: #include<stdio.h> main() { FILE *fp;int a[10]={1,2,3,0,0},i; 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); fclose(fp); for(i=0;i<10;i++)printf("%d,",a[i]); } 程序的运行结果是( )。

    A.1,2,3,0,0,0,0,0,0,0,

    B.1,2,3,1,2,3,0,0,0,0,

    C.123,0,0,0,0,123,0,0,0,0,

    D.1,2,3,0,0,1,2,3,0,0,


    正确答案:D

  • 第20题:

    有以下程序

    #include

    main

    { FILE *fp;

    int a[10]={1,2,3,0,0},i;

    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);

    fclose(fp);

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

    }

    程序的运行结果是( )。

    A.1,2,3,0,0,0,0,0,0,0,

    B.1,2,3,1,2,3,0,0,0,0,

    C.123,0,0,0,0,123,0,0,0,0,

    D.1,2,3,0,0,1,2,3,0,0,


    正确答案:D
    本题程序首先用函数fopen以“wb”的方式开打文件“d2.dat”,然后调用两次fwrite函数将数组a的5个元素,依次输出到文件fp中,共10个字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用head函数从文件印中读取这10个字节的数据到数组a中。型数组bb中,因此,【2】处填“str[i]-'0'”;由函数proc可知,变量n中存放整型数组bb中的元素个数,最后要返回到主函数当中,因此,【3】处填“n”。

  • 第21题:

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

  • 第22题:

    (15)以下程序运行后的输出结果是 【15】 。

    #include <stdio.h>

    main()

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

    fp=fopen("test.dat","wb");

    fwrite(x,sizeof(int),3,fp);

    rewind(fp);

    fread(x,sizeof(int),3,fp);

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

    printf("\n");

    fclose(fp);

    }


    正确答案:
    (15)123456

  • 第23题:

    单选题
    有以下程序:#include main(){ FILE *fp; int k,n,i,a[6]={1,2,3,4,5,6}; fp=fopen(d2.dat,w); for(i=0;i<6;i++) fprintf(fp,%d,a[i]); fclose(fp); fp=fopen(d2.dat,r); for(i=0;i<3;i++) fscanf(fp,%d%d,&k,&n); fclose(fp); printf(%d,%d,k,n);}程序运行后的输出结果是(  )。
    A

    1,2

    B

    3,4

    C

    5,6

    D

    123,456


    正确答案: C
    解析:
    程序中首先定义一个一维数组,然后将数组中的值写入到d2.dat中,然后再从d2.dat中读出数组中的元素,每次读出2个元素,分别赋值给k和n,循环执行3次,故最终k和n的值为5和6。答案选择C选项。

  • 第24题:

    单选题
    有以下程序#include main(){ FILE *fp; int a[10]={1,2,3,0,0},i; 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); fclose(fp); for(i=0;i<10;i++) printf(%d,,a[i]);}程序的运行结果是(  )。
    A

    1,2,3,0,0,0,0,0,0,0,

    B

    1,2,3,1,2,3,0,0,0,0,

    C

    123,0,0,0,0,123,0,0,0,0,

    D

    1,2,3,0,0,1,2,3,0,0,


    正确答案: C
    解析:
    首先用函数fopen以“wb”的方式(wb只写打开或新建一个二进制文件,只允许写数据)打开文件d2.dat,然后调用两次fwrite函数将数组a的5个元素,依次输出到文件fp中,共10个字节,关闭文件。再次打开文件,使用文件指针指向文件的开头,调用fread函数从文件中读取这l0个字节的数据到数组a中。答案选择D选项。