(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)以下程序运行后的输出结果是 【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)以下程序运行后的输出结果是 【15】 。#include &lt;stdio.h&gt;main(){ FILE *fp; int x[6]={1 ”相关问题
  • 第1题:

    以下程序运行后的输出结果是( )。 include main(){ int a=1, b=7; do { b=b/2; a+=b

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

    include<stdio.h>

    main()

    { int a=1, b=7;

    do {

    b=b/2; a+=b;

    } while(b>1);

    printf("%d\n",A);

    }


    正确答案:5
    5 解析:该程序考查do-while循环。循环共进行两次。第一次循环b=3,a=4;第二次循环b=1,a=5。输出a的值为5。

  • 第2题:

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

  • 第3题:

    有以下程序:include main() {int a[] = {2,4,6,8,10} ,y =0,x, * p;p =&a[1];for(

    有以下程序: #include <stdio.h> main() { int a[] = {2,4,6,8,10} ,y =0,x, * p; p =&a[1]; for(x=1;x<3;x++)y+ =p[x]; printf( "% d \n" , y); }程序运行后的输出结果是( )。

    A.10

    B.11

    C.14

    D.15


    正确答案:C
    解析:本程序通过语句p=&a[1];将指针变量p指向存储单元a[1],使得p[0]的值为4,通过for循环,使y的值丸P[1]与p[2]之和,即y=6+8,所以输出的y值为14。

  • 第4题:

    有以下程序include main(){FILE *fp;int i=20,j=30,k,n;fp=fopen("d1.dat","w");fprin

    有以下程序 #include <stdio.h> main() { FILE *fp; int i=20,j=30,k,n; fp=fopen("d1.dat","w"); fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j); fclose(fp); fp=fopen("d1.dat", "r"); fp=fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n); fclose(fp); } 程序运行后的输出结果是

    A.20 30

    B.20 50

    C.30 50

    D.3020


    正确答案:A
    解析:本题考查的知识点是文件的综应用。本题首先以创建方式打开文件“d1.dat”,两次调用fprintf()把i和i的值写到文件“d1.dar”中,文件“d1.dat的内容为20回车>30回车,后把该文件关闭再以读的方式打开,文件位置指针指向文件头,在通过fscanf()函数从中读取两个整数到k和n中,由于格式符无间隔,因此输入数据可以用回车隔开,故输入的k值为20,n的值为30.所以4个选项中A正确。

  • 第5题:

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

  • 第6题:

    有以下程序includemain(){int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t);}程序运行后的

    有以下程序 #include<stdio.h> main() { int a=5,b=lt; t=(a<<2)|b;printf("%d\n",t); } 程序运行后的输出结果是______。

    A.21

    B.11

    C.6

    D.1


    正确答案:A
    解析:本题主要考查了C语言的逻辑运算符,先将变量a,b的值转换为2进制数,a=00000101,b=00000001,a先左移 2位结果为00010100,再与b按位或运算,结果为00010101,转换为十进制数为21,因此,选项A是正确的。

  • 第7题:

    有以下程序 include main( ) { FILE *fp; int i,k=0,n=0; fp=fopen(“d1.dat”,

    有以下程序 #include <stdio.h> main( ) { FILE *fp; int i,k=0,n=0; fp=fopen(“d1.dat”,”w”); for(i=1;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
    解析:在文件写操作时,两个数之间应用空格隔开,而在本题中,没有用空格隔开,所以123视为一个数。

  • 第8题:

    有以下程序:includeusing namespace std;int main(){int x=15;while(x>10&&x

    有以下程序: #include<iostream> using namespace std; int main() { int x=15; while(x>10&&x<50) { x++; if(x/3) { x++;break; } } cout<<x<<endl; return 0; } 执行后的输出结果是( )。

    A.15

    B.16

    C.17

    D.18


    正确答案:C
    解析: 本题考核选择语句与循环语句的嵌套。由程序可知,当x=16时,满足if条件表达式,进入if分支,执行“x++;break”,所以最后程序输出x的值为17。

  • 第9题:

    有以下程序:include using namespace std;int main() {int x=15;while(x>10&&

    有以下程序: #include <iostream> using namespace std; int main() { int x=15; while(x>10&&x<50) { x++; if(x/3) { x++; break; } } cout<<x<<end1; return 0; } 执行后的输出结果是

    A.15

    B.16

    C.17

    D.18


    正确答案:C
    解析:本题考核选择语句与循环语句的嵌套。由程序可知,当x=16时,满足if条件表达式,进入if分支,执行“x++;break;”,所以最后程序输出x的值为17。

  • 第10题:

    有以下程序:include define F(X,Y)(X)*(Y)main(){int a=3,b=4;printf("%d\n",F(a++,b

    有以下程序: #include <stdio.h> #define F(X,Y)(X)*(Y) main() { int a=3,b=4; printf("%d\n",F(a++,b++)); } 程序运行后的输出结果是( )。

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:在程序中先将表达式中的宏替换掉,则输出语句中的表达式为(a++)*(b++),而a++的值为3,b++的值为4。因此最后的值为3*4=12。所以,4个选项中选项A符合题意。

  • 第11题:

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

    有以下程序 #include<stdio.h> main() {FILE *fP;int k,n,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",&k,&n);printf("%d%d\n",k,n); fclose(fp); } 程序运行后的输出结果是。

    A.1 2

    B.1 4

    C.123 4

    D.123 456


    正确答案:D
    解析:将有6个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每行都没有分隔符,所以当再对其进行读取操作时,每一行都会被认为是一个完整的数,而换行符则作为它们的分隔符。

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

    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

  • 第14题:

    有以下程序 include define F(X,Y) (X)*(Y) main( ) { int a=3, b=4; prin

    有以下程序

    #include <stdio.h>

    #define F(X,Y) (X)*(Y)

    main( )

    { int a=3, b=4;

    printf("%d\n", F(a++, b++));

    }

    程序运行后的输出结果是

    A.12

    B.15

    C.16

    D.20


    正确答案:A
    解析:本题考查了带参数的宏定义。参数只是进行简单的替换而不是把其值求出后替换形式参数。本题中用a++替换X,用b++替换Y,再求(a++)*(b++)的值。

  • 第15题:

    有以下程序:include using namespace std;int main (){int x=15;while (x>10&&am

    有以下程序: #include <iostream> using namespace std; int main () { int x=15; while (x>10&&x<50) { x++; if (x/3) { x++; break; } } cout<<x<<endl; return 0; } 执行后的输出结果是

    A.15

    B.16

    C.17

    D.18


    正确答案:C
    解析:本题考核选择语句与循环语句的嵌套。由程序可知,当x=16时,满足if条件表达式,进入if分支,执行“x++;break;",所以最后程序输出x的值为17。

  • 第16题:

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

  • 第17题:

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

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

  • 第18题:

    以下程序运行后的输出结果是( )。 include main() { int x=20; printf("%d", 0

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

    include<stdio.h>

    main()

    { int x=20;

    printf("%d", 0<x<20);

    printf("%d\n", 0<x && x<20);

    }


    正确答案:10
    10 解析:表达式0x20,首先计算0x,其值为1,再计算120,其值为1,输出1;表达式0x && x20,0x为1,x20为0,再计算1 && 0,其值为0,输出0。所以输出结果为10。

  • 第19题:

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

    有以下程序 #include<stdio.h> main() { FILE*fp;int i,k=0,n=0; fp=fopen("d1.dat","w"); for(i=1;1<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 2 3

    D.1 23


    正确答案:A

  • 第20题:

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

  • 第21题:

    有以下程序: include main( ) { FILE *fp; int i=20,j=50,k,n; fp=fopen("d1.da

    有以下程序: #include<stdi0.h> main( ) { FILE *fp; int i=20,j=50,k,n; fp=fopen("d1.dat","W"); fprintf(fp,"%d\n",i);fprintf(fp,"%d\n",j); fclose(fp); fp=fopen("d1.dat","r",); fscanf(fp,"%d%d",&k,&n); printf("%d%d\n",k,n); fclose(fp); } 程序运行后的输出结果是

    A.20 30

    B.20 50

    C.30 50

    D.30 20


    正确答案:B
    解析:本题首先通过函数fprintf( )将变量i,j的值输出到已打开的d1.dat文件中,再由函数fscanf( ) 从d1.dat中读取i,j的值到k,n。

  • 第22题:

    下列程序运行后的输出结果是()。 include void fun(int,int,int*); void main() { i

    下列程序运行后的输出结果是( )。 #include<iostream.h> void fun(int,int,int*); void main() { int x,y,z; fun(5,6,&x); fun(7,x,&y); fun(x,y,&z); cout<<x<<","<<y<<","<<z<<end1; } void fun(int a,int b,int *c) { b+=a; *c=b-a; }

    A.5, 5, 5

    B.6, 6, 6

    C.5, 6, 7

    D.7, 7, 7


    正确答案:B
    解析:由程序中的main函数入手,分别调用fun函数,第一个调用中x参数为引用地址,调用后x的值为6,因为参数为地址,所以第二个调用中的x参数值为6,调用后y的计算结果为6。同理, z在第三个函数调用后z的值为6。

  • 第23题:

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

    6

    B

    21

    C

    123456

    D

    654321


    正确答案: A
    解析:
    本题首先定义文件指针变量fp和数组a[ ],再打开文件data.dat,随后先给文件写入数据a[0],rewind函数将文件指针从当前位置重新指向文件开始位置,所以for循环依次将数组a中的数据写入文件开始位置,退出循环后,文件中的数据顺序为:654321,重新使指针指向文件开始位置,将此时fp指向的数据(即文件中第一个数据)写入变量k中,关闭文件,输出k值,答案选择A选项。