itgle.com

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

题目

有以下程序

#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
更多“有以下程序#include &lt;stdio.h&gt;main ( ){ FILE *fp; int i,a[6]={1,2,3,4,5,6};fp=fop ”相关问题
  • 第1题:

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

    有以下程序: #include <stdio.h> main() { FILE *fp; int i,k,n; fp=fopen("data.dar","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
    解析:程序首先定义了一个文件指针fp,并使用fopen()函数以“w+”方式新建一个可读写文件“data.dat”。然后使用一个for循环,循环变量i从1递增到5,在循环体中每次写入循环变量i的值和4个空格,当i能被3整除的时候写入一个换行符。所以循环结束时,文件中的内容应该为:12345接下来程序使用rewind()函数,将文件的读写指针调回起始位置。并调用fscanf()函数从文件中读取两个整数到变量k和n。所以最终输出应该为:12。故本题选D。

  • 第2题:

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

  • 第3题:

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

  • 第4题:

    有以下程序: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,并将其输出到屏幕上。

  • 第5题:

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

    有以下程序: #include<stdio.h> main() {FILE *fp;int i,a[6]={1,2,3,4,5,6}; fp=fopen("d2.dat","w"); fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]); fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]); fclose(fp); fp=fopen("d2.dat","r"); fscanf(fp,"%d%d\n",&k,

    A.1 2

    B.1 4

    C.123 4

    D.123 456


    正确答案:D
    解析: 本题首先以创建方式打开文件d2.dat,两次调用fprintf()函数把a[0]、a[1]、a[2]、a[3]、a[4]、a[5]的值写到文件d2.dat中,文件d2.dat内容为“1,2,3回车>4,5,6”。然后把该文件关闭再以只读方式打开,文件位置指向文件头,再通过fscanf()函数从小读取两个整数到k和n中。

  • 第6题:

    (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