计算机二级

有以下程序#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.;}程序运行结果是( )。

题目

有以下程序

#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
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

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

有以下程序 #include<stdio.h> main() {FILE *fp;int i=20,j=30,k,n; fp=fopen("D1v.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

第2题:

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

第3题:

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

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

A.1 2

B.1 4

C.123 4

D.123 456


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

第4题:

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

第5题:

有以下程序: #include<stdio.h> main( ) {FILE*fp;char str[10]; fp=fopen("myfile,dat",""); {puts("abe",ip);fclose(fp); fp=fopen("myfile.dat","a*"); fprintf(fp,"%d",28); rewind(fp); fscanf(fp,"%S",str);puts(str); fclose(fp); } 程序运行后的输出结果是( )。

A.abc

B.28c

C.abc28

D.内类型不一致而出错


正确答案:C
本题考查文件的操作,首先打开文件,进行写操作,把“abc”写入“myfile”文件,再打开“myfile.data"文件,输入28,在键盘上接收字符,输出并关闭文件。本题结果为abc28。

第6题:

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

第7题:

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

第8题:

有以下程序includemain(){FILE*fp;inta[10]={1,2,3},i,n;fp=fopen("d1.daf","w");for(

有以下程序 #include <stdio.h> main() {FILE *fp; int a[10]={1,2,3},i,n; fp=fopen("d1.daf","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);

A.12300

B.123

C.1

D.321


正确答案:B
解析: 在函数中首先把整型数组a[10]中的每个元素写入文件d1.dat中,然后再次打开这个文件,把文件d1.dat中的内容读入到整型变量n中,最后输出变量n的值。

第9题:

有以下程序include void WriteStr(char*fn,char*str){FILE*fp; fp=fopen(fn,"w");fpu

有以下程序 #include <stdio.h> void WriteStr(char *fn, char *str) { FILE *fp; fp=fopen(fn,"w"); fputs(str,fp);fclose(fp); } main() { WriteStr("t1.dat","start"); WriteStr("t1.dat","end"); } 程序运行后,文件t1.dat中的内容是

A.start

B.end

C.startend

D.endrt


正确答案:B
解析:本题主要考查的是打开文件函数fopen().题目开始定义了一个函数,该函数有两个字符指针型参数,其作用分别用来传入文件名和文件内容。函数首先定义一个文件指针印,然后使用fopen()函数打开参数fn所指定的文件。本题的关键就在于fopen()函数的第2个参数,这个参数指定了文件打开的方式。"w"表示为写而打开一个文本文件,如果文件不存在,则新建一个文件,否则将清空原有文件。接下来函数使用fputs()函数将参数str中的内容写入文件,最后调用fclose()函数关闭文件。在主函数中两次调用该函数,但写入的是同一个文件,故只有最后一次写入有效。所以应该选择B。

第10题:

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

更多相关问题