单选题有以下程序:#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++) {  fseek(fp,0L,0);  fscanf(fp,%d,&k);  fseek(fp,0L,0);  fprintf(fp,%d,a[i]+=k); } rewind(fp); fscanf(fp,%d,&k); fclose(fp); p

题目
单选题
有以下程序:#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++) {  fseek(fp,0L,0);  fscanf(fp,%d,&k);  fseek(fp,0L,0);  fprintf(fp,%d,a[i]+=k); } rewind(fp); fscanf(fp,%d,&k); fclose(fp); printf(%d,k);}程序的运行结果是(  )。
A

21

B

6

C

123456

D

11


相似考题
参考答案和解析
正确答案: A
解析:
程序执行过程为:以读/写方式建立一个新的文本文件data.dat,将l写入文件;执行for循环,将文件指针移到文件开头,将文件第一个数值1赋给k,再将指针移动到开头,向文件内输入a[i]+k=3。for循环实现将a数组中元素累加,结果21存放在文件中。调用rewind将文件指针移动到开头,调用fscanf函数从文件中读出数值赋予k=21,调用fclose函数关闭文件,打印k值。答案选择A选项。
更多“有以下程序:#include <stdio.h>main(){ FILE *fp; int i,a[6]={1,2,3,”相关问题
  • 第1题:

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

    有以下程序 #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.daf","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个元素的整型数组分两行输出到一个文件中,因为输出的都是数字并且每行都没有分隔符,所以当再对其进行读取操作时,每一行都会被认为是一个完整的数,而换行符则作为它们的分隔符。故本题答案为D)。

  • 第2题:

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

    有以下程序: #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
    解析:本题中首先定义了一个文件指针fp,然后通过函数fopen以w的方式打开文件d1.dat,直接通过一个for循环,每循环一次调用函数fprintf将i的值写进fp所指的文件中,该循环共循环3次,循环完后fp所指文件的内容为123,然后通过fclose函数关闭fp所指文件。接着通过fscanf函数将中所指文件的内容读出并赋值给变量k和变量n,由于fp所指文件中只有123没有分隔符,故只给k赋值为123,变量n的值依然为以前的值,故最后输出k和n的值为123、0,所以,4个选项中选项B符合题意。

  • 第3题:

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

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

  • 第6题:

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

  • 第7题:

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

  • 第8题:

    有以下程序 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视为一个数。

  • 第9题:

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

  • 第10题:

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

  • 第11题:

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

    有以下程序: #include <stdio.h> main() {FLLE *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.dar","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.30 20


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

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

  • 第14题:

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

    有下列程序: #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=open("d1.dat","r"); fscanf(fp,"%d",&n); fclose(fp); prinff("%d\n",n); 程序的运行结果是( )。

    A.12300

    B.123

    C.1

    D.321


    正确答案:B
    解析:本题考查以读和写的方式打开文件对文件内容操作的不同,fp=fopen("d1.dat","w");以可写的方式为输出建立新文本文件,调用printf输出“123”,fp=fopen("d1,dat","r");以只读的方式打开文本文件,不能对文件内容进行操作,故运行结果为选项B)。

  • 第15题:

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

  • 第16题:

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

  • 第17题:

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

  • 第18题:

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

    有以下程序: #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
    解析:fprintf、fscanf函数与printf、scanf函数作用相仿,都足格式化读写函数,其区别在于:fprintf和fscanf函数的读写对象不是终端而是磁盘文件。这两个函数的一般调用方式为:fprintf(文件指针,格式字符串,输出表列);fscanf(文件指针,格式字符串,输入表列);程序首先将123写入d1.dat文件中,再从该文件中将数据读给变量k和n。由于文件d1.dat中的数据是123,按格式“%d%d”读数据时将123读给k,n没有得到读入的数据,保持初始值0。

  • 第19题:

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

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


    正确答案:A

  • 第20题:

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

  • 第21题:

    若有以下程序 include int a[ ]={2,4,6,8}; main( ) { int i; int *p=a; for(i=0;i<4

    若有以下程序

    #include <stdio.h>

    int a[ ]={2,4,6,8};

    main( )

    { int i;

    int *p=a;

    for(i=0;i<4;i++) a[i]=*p;

    printf("%d\n",a[2]);}

    上面程序的输出结果是

    A.6

    B.8

    C.4

    D.2


    正确答案:D
    解析:在C语言中,数组元素下标是从0开始的;指针变量p指向数组的首地址。for循环语句中,指针变量 p始终指向数组的首地址,因而执行循环赋值语句后数组各元素的值均变为2。

  • 第22题:

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

  • 第23题:

    单选题
    有以下程序:#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选项。

  • 第24题:

    单选题
    有以下程序#include main(){ int i; FILE* fp; for (i=0; i<5;i++) {  fp = fopen(output.txt, w);  fputc('K'+ i, fp);  fclose(fp); }}程序运行后,在当前目录下会生成一个output.txt文件,其内容是(  )。
    A

    E

    B

    EOF

    C

    ABCDE

    D

    A


    正确答案: D
    解析:
    程序执行过程为:i=0时,以只写方式打开一个文本文件output.txt,调用函数fputc向文件输入A,关闭文件;i=1时,再次以只写方式打开output.txt,调用函数fputc向文件输入B覆盖原本的A,关闭文件;之后文件内的值依次为C、D、E,当i=4时,文件内为E,然后关闭文件;i=5退出循环。output.txt文件中内容为E。答案选择A选项。