有以下程序#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]);}

题目

有以下程序

#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,


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

    有以下程序:include main( ){FILE * fp; int i,k,n;fp = fopen( "data. dat" ,"w +" )

    有以下程序:#include <stdlo.h>main( ){ FILE * fp; int i,k,n; fp = fopen( "data. dat" ,"w +" ) for(i = 1 ;i<6;i ++ ) { fprintf(fp."% d",i); if(i%3 ==0)fprintf(fp," \n"); } rewind(fp); fscanf(fp." % d% d" ,&k, &n) ;printf(" % d%d \n" ,k,n); fclose(fp);

    A.0 0

    B.123 45

    C.1 4

    D.1


    正确答案:D
    解析:在for循环中用fpfinff(fp,"%d",i);将循环变量的值1~5输出到fp指向的文件data.dat中,输出3个数后换行。执行rewind(fP)使文件指针重新返回到文件的开头,再执行fscanf(fp,"%d%d",&k,&n)将磁盘文件中的前两个数输入给变量k,n,并将其输出到屏幕上。

  • 第2题:

    有以下程序: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符合题意。

  • 第3题:

    有以下程序

    #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

  • 第4题:

    有以下程序: include main() {FILE *fp; int i,k,n; fp=fopen("data

    有以下程序: #include <stdio.h> main() {FILE *fp; int i,k,n; fp=fopen("data.dat","w+"); for(i=1;i<6;i++) {fprintf(fp,"%d ",i); if(i%3==0) fprintf(fp,"\n"); } rewind(fp); fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n); fclose(fp); } 程序运行后的输出结果是 ______。

    A.0 0

    B.123 45

    C.1 4

    D.1 2


    正确答案:D
    解析:语句“fprintf(fp,"%d ",i)”的作用是将变量i的值按“%d”的格式输出到中指向的文件上;  “rewind(fp)”的作用是使指针重新返回文件的开头:“fscanf(fp,"%d%d",&k,&n)”的作用是将磁盘文件中的数据送给变量k,n。

  • 第5题:

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