
第十二章文件 1,系统的标准输入文件是 A)健盘B)显示器C)载盘D)硬盘 2.以下可作为函数fopen中第一个参数的正确格式是 A)c:user\text.txtB)c:\user\text.txt C)'c:\user\text.txt'D)"c:\user\\text.txt" 3.若要用fn函数打开一个新的二进制文件,该文件要既能读也能写,则文作方式 字符串应是 A)ab+"B)"wb+C)"rb+"D)"ab" 4.若用“+“方式打开一个已存在的文件,则以下叙述正确的是 A)文件打开时,原有文件内容不核别除,位置指针移到文件术尾,可作滞加和读操作 B)文件打开时,原有文件内容不被除,位置指针移到文件开头,可作重写和读操作 C)文件打开时,原有文件内容被到除,具可作写探作 D)以上各种说法皆不正确 5.当顺利执行了文件关闭操作时,fc1ose函数的返回值是 A)-1B)TRUEC)OD)I 6.已知函数的调用形式:fred(bufferb,size,countb,fp方其中b如ffer代表的 是 A)一个整型变量,代表要读入的数据项总数 B)一个文件指针,指白要读的文件 C)一个指针,折向要读入数据的存放地址 D)一个存储区,存做要读的数据项 7,fsc■函数的正确调用形式是 A)fscan(fp,格式字符串,输出表列): B)fsCa通(格式字符串,输出表列,fp) C)fscan(格式字符串,文件指针,输出表列): D)fscan(文件指针,格式字符串,输出表列): 8,f©te函数的作用是从指定文件读入一个字符,该文件的打开方式您须是 A)只写B)追加C)读成读写D)答案B和C都正确
第十二章 文件 1.系统的标准输入文件是 A)键盘 B)显示器 C)软盘 D)硬盘 2.以下可作为函数 fopen 中第一个参数的正确格式是 A)c:user\text.txtB)c:\user\text.txt C)"c:\user\text.txt"D)"c:\\user\\text.txt" 3.若要用 fopen 函数打开一个新的二进制文件,该文件要既能读也能写,则文件方式 字符串应是 A)"ab+"B)"wb+"C)"rb+"D)"ab" 4.若用"a+"方式打开一个已存在的文件,则以下叙述正确的是 A)文件打开时,原有文件内容不被删除,位置指针移到文件末尾,可作添加和读操作 B)文件打开时,原有文件内容不被删除,位置指针移到文件开头,可作重写和读操作 C)文件打开时,原有文件内容被删除,只可作写操作 D)以上各种说法皆不正确 5.当顺利执行了文件关闭操作时,fclose 函数的返回值是 A)-1B)TRUEC)0D)1 6.已知函数的调用形式:fread(bufferb,size,countb,fp);其中 buffer 代表的 是 A)一个整型变量,代表要读入的数据项总数 B)一个文件指针,指向要读的文件 C)一个指针,指向要读入数据的存放地址 D)一个存储区,存放要读的数据项 7.fscan 函数的正确调用形式是 A)fscan(fp,格式字符串,输出表列); B)fscan(格式字符串,输出表列,fp) C)fscan(格式字符串,文件指针,输出表列); D)fscan(文件指针,格式字符串,输出表列); 8.fgetc 函数的作用是从指定文件读入一个字符,该文件的打开方式必须是 A)只写 B)追加 C)读或读写 D)答案 B 和 C 都正确

9.若调用futc函数输出字符成功,测其返国值是 A)EOB)1C)0)输出的字有 10,若要用下面的程序片段使指针变量P指向一个存储整型变量的动志存储单元 int*P: P-malloc (sizeof (int)): 则应填入 A)intB)int*C)(*int)D)(int*) 1山.下面的程序调用get0ee函数开辟一个动态存储单元,调用ass0me函数把数据输入 此动态存错单元,调用u00函数输出此动态存铸单元中的数据。请填空。 #include getone (int**s) [*s=(int*)mlloc (sizeof (int)):) ass0ne(int知】 [scanf(d°,【】:] outone(inth)】 {rintf("n",【】:} main ( [int*p: getone (p)assone (p)outone (p) 12.请读程序: voidfun (float*pl.float*p2.float*s) [s(f1oat◆)图l1oc(1,sizeof(f1oat》): *pl*(p2+):】 nain ( f1oata[2]-l.1,2.2,b[2]-(10.0,20.0l,◆s: fun (a,b.s): printf ("sfn",*s)} 上而程序的输出结果是 A)11.100000B)12.100000C)21.100000D)1.100000 13.若要使指针p指向一个d0】e类型的动态存储单元,请填空
9.若调用 fputc 函数输出字符成功,则其返回值是 A)EOFB)1C)0D)输出的字符 10.若要用下面的程序片段使指针变量 P 指向一个存储整型变量的动态存储单元: int*P; P=malloc(sizeof(int)); 则应填入 A)intB)int*C)(*int)D)(int*) 11.下面的程序调用 getone 函数开辟一个动态存储单元,调用 assone 函数把数据输入 此动态存储单元,调用 outone 函数输出此动态存储单元中的数据。请填空。 #include getone(int**s) {*s=(int*)malloc(sizeof(int));} assone(int*a) {scanf("%d",【】);} outone(int*b) {printf("%d\n",【】);} main() {int*p; getone(&p);assone(p);outone(p);} 12.请读程序: voidfun(float*pl,float*p2,float*s) {s=(float*)malloc(1,sizeof(float)); *s=*pl+*(p2++);} main() {floata[2]={1.1,2.2},b[2]={10.0,20.0},*s=a; fun(a,b,s); printf("%f\n",*s);} 上面程序的输出结果是 A)11.100000B)12.100000C)21.100000D)1.100000 13.若要使指针 p 指向一个 double 类型的动态存储单元,请填空

p【】国lloe(sixeof(double): 14.若fp是指向某文件的指针,且己读到该文件的末尾,则C语言函数feof(p)的 返回是 A)EOFB)-1C)非零值D)MLL 15。下面的的程序用来统计文件中字符的个数,请填空, main ( (FILE*fp: longnum-0: if(fp-fopen("fnane.dat","r")》【】) printf ("Can'topenfile!\n"):exit (0):} hile【】 fgete(fp片ut+:} printf("nurd八n”,umi 【】9 16.以下程序的功能是:从健世上输入一个字符串,把该字符串中的小写字厚转换为大 写字母,输出到文件tst.txt中,然后从该文件读出字符串并最示出米。请填空, main ( (FILE*fp: charstr[100]:inti-0: if(fp=fopen("text.txt“,【】D)=NL) [printf ("can'topenthisfile.\n"):exit (0): printf ("inputastring \n"):gest (str) hile(str[i】) Lif (str[i]>='a'Mstr[i]<='z') stri]=【】 fmte(str[i,p片it+:】 felose (fp): f=fopem(“t0st.txt”,【】 fgets (str.100.fp): printf (s\n",str):
p=【】malloc(sizeof(double)); 14.若 fp 是指向某文件的指针,且已读到该文件的末尾,则 C 语言函数 feof(fp)的 返回是 A)EOFB)-1C)非零值 D)NULL 15.下面的的程序用来统计文件中字符的个数,请填空。 main() {FILE*fp; longnum=0; if((fp=fopen("fname.dat","r"))==【】) {printf("Can'topenfile!\n");exit(0);} while【】 {fgetc(fp);num++;} printf("num=%d\n",num); 【】} 16.以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大 写字母,输出到文件 test.txt 中,然后从该文件读出字符串并显示出来。请填空。 main() {FILE*fp; charstr[100];inti=0; if((fp=fopen("text.txt",【】))==NULL) {printf("can'topenthisfile.\n");exit(0);} printf("inputastring:\n");gest(str); while(str[i]) {if(str[i]>='a'&&str[i]<='z') str[i]=【】; fputc(str[i],fp);i++;} fclose(fp); fp=fopen("test.txt",【】); fgets(str,100,fp); printf("%s\n",str);

felose (fp) 17.设有如下程序: #include main (intarge.charsargv[]) (FILE*fp: voidfe ( intil: while (-arge)0) if ((fp=fopen (argv[i++]."r"))=NULL) printf ("Cannotopenfile!\n):exit (1):) else(fe (fp)fclose (fp): voidfe (FILE*ifp) (chare: while ((c"gete (ifp))!'')putchar (c-32); 上述程序经编译、连接后生成可执行文名为©明,x0,假定磁盘上有三个文本文件,其 文件名和内容分别为: 文件名内容 8a日 bbbbb# ccccc# 如果在05下键入 cpyahe 则程序输出【】 8。在C程序中,可把整型数以二进制形式存放到文件中的函数是 A)fprintf函数B)fread函数 C)fwrite函数D)fpute函数 I9.程定下列程序的可执行文件名为r以xe,则在该程序所在的子目录下输入命令行: prghel1 oguod(回车)后,程序的输出结果是 A)hellogoodB)hgc)helD)bellogood main ((intarge.charsargv[])
fclose(fp);} 17.设有如下程序: #include main(intargc,char*argv[]) {FILE*fp; voidfc(); inti=1; while(--argc>0) if((fp=fopen(argv[i++],"r"))==NULL) {printf("Cannotopenfile!\n");exit(1);} else{fc(fp);fclose(fp);}} voidfc(FILE*ifp) {charc; while((c=getc(ifp))!='#')putchar(c-32);} 上述程序经编译、连接后生成可执行文名为 cpy.exe。假定磁盘上有三个文本文件,其 文件名和内容分别为: 文件名内容 aaaaa# bbbbb# ccccc# 如果在 DOS 下键入 cpyabc 则程序输出【】。 18.在 C 程序中,可把整型数以二进制形式存放到文件中的函数是 A)fprintf 函数 B)fread 函数 C)fwrite 函数 D)fputc 函数 19.假定下列程序的可执行文件名为 prg.exe,则在该程序所在的子目录下输入命令行: prghellogood后,程序的输出结果是 A)hellogoodB)hgC)helD)hellogood main()(intargc,char*argv[])

[inti: if (arge(-0)return: for (i=11 idata=【1 r->next=st r=s1 ch=getchar (): r->next=【】 returnh:} 21.标准函数fgets(s,n,f)的功能是 A)从文件F中读取长度为n的字符串存入指针s所指的内存 B)从文件「中读取长度不超过一1的字符审存入指针s所指的内存 C)从文件F中读取n个字符串存入指针s所折的内存 D)从文件1中读取长度为一1的字符串存入指针8所指的内存 22.若有如下图所示五个进续的it类型的存储单元并赋值如下图。a[0]的地址小于 a[4]的地址。p和s是基类型为t的折针变量。请对以下问题进行填空。 a[o]a[1]a(2]a[3]a[4]
{inti; if(argcdata=【】; r->next=s;r=s; ch=getchar();} r->next=【】; returnh;} 21.标准函数 fgets(s,n,f)的功能是 A)从文件 f 中读取长度为 n 的字符串存入指针 s 所指的内存 B)从文件 f 中读取长度不超过 n-1 的字符串存入指针 s 所指的内存 C)从文件 f 中读取 n 个字符串存入指针 s 所指的内存 D)从文件 f 中读取长度为 n-1 的字符串存入指针 s 所指的内存 22.若有如下图所示五个连续的 int 类型的存储单元并赋值如下图,a[0]的地址小于 a[4]的地址。p 和 s 是基类型为 int 的指针变量。请对以下问题进行填空。 a[0]a[1]a[2]a[3]a[4]

1221331441551661 (1)若p已指向存储单元a[1】。通过指针p,给s赋值,使s指向最 后一个存储单元a[4们的语句是【】 (2)若指针s指向存储单元a[2],P指向存储单元[0],表达式sp的 值是【】 公。以下程序运行后,输出结果是 A)ABCDEFGB)CDGC)abedefghD)abCDefGh min ( [statiechara[]="ABCDEFGH",b[]="abCDefth": chartpl,◆p2: intk: pl=a:p2b for(k-0:k voidfun (char*fnane.charest) [FILE*myf:inti: yf=foem(fnae,“✉”): for(i=0:i<strlen(st):i++)fpute(st[i].mf): fclose(myf); nain() fun(“test”,“newworld”:fun(“test”,“hello,"0:)
┌──┬──┬──┬──┬──┐ │22│33│44│55│66│ └──┴──┴──┴──┴──┘ (1)若 p 已指向存储单元 a[1]。通过指针 p,给 s 赋值,使 s 指向最 后一个存储单元 a[4]的语句是【】。 (2)若指针 s 指向存储单元 a[2],p 指向存储单元 a[0],表达式 s-p 的 值是【】。 23.以下程序运行后,输出结果是 A)ABCDEFGB)CDGC)abcdefghD)abCDefGh main() {staticchara[]="ABCDEFGH",b[]="abCDefGh"; char*p1,*p2; intk; p1=a;p2=b; for(k=0;k voidfun(char*fname,char*st) {FILE*myf;inti; myf=fopen(fname,“w”); for(i=0;i<strlen(st);i++)fputc(st[i],myf); fclose(myf); } main() {fun(“test”,“newworld”;fun(“test”,“hello,”0;)

A)hello.B)newworldhello. C)nesvorld D)hello,rld 2强.以下程序段打开文件后,先利用「sk函数将文作位置指针定位在文作米尾,然后 调用1山函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。 FILE*myf:lingf1: ayfe【】(“test.t”,“rh"): fseek (myf,0.SEEX_END)f1=ftell(myf): fclose(myf): printf(“sdn",fl): 7,若要打开A盘上ser子目录下名为a心,t量的文本文件进行读、写操作,下面符合 此要求的函数调用是 A)fopen("A:user\abe.txt°,"r") B)fopen("A:\\user\\abe.txt","r+") C0 fopen(A:\user\abc.txt°,"rb) D)fopen("A:\'\user\\abe.txt".w") 8以下程序用米饶计文件中字符个数。请填空。 #include"stdio.h" main() [FILE*fp:longnum=0L: if ((fp=fopen ("fname.dat","r"))==NULL) [pirntf("Openerror\n);exit(0): hile(【】) [fgetc(fpl:nuat:】 printf("nun=sid\n",num-1) felose(fp): 1川 9若fp已正确定义为一个文件指针,d1,dt为二进制文作,请填空。以便为“读” 而打开此文件:fp=fopen0:。 30.有以下程序 #include(stdio.h> main()
A)hello,B)newworldhello, C)newworld D)hello,rld 26.以下程序段打开文件后,先利用 fseek 函数将文件位置指针定位在文件末尾,然后 调用 ftell 函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。 FILE*myf;lingf1; myf=【】(“test.t”,“rb”); fseek(myf,0,SEEK_END);f1=ftell(myf); fclose(myf); printf(“%d\n”,f1); 27.若要打开 A 盘上 user 子目录下名为 abc.txt 的文本文件进行读、写操作,下面符合 此要求的函数调用是 A)fopen("A:\user\abc.txt","r") B)fopen("A:\\user\\abc.txt","r+") C)fopen("A:\user\abc.txt","rb") D)fopen("A:\\user\\abc.txt","w") 28.以下程序用来统计文件中字符个数。请填空。 #include"stdio.h" main() {FILE*fp;longnum=0L; if((fp=fopen("fname.dat","r"))==NULL) {pirntf("Openerror\n");exit(0);} while(【】) {fgetc(fp);num++;} printf("num=%1d\n",num-1); fclose(fp); }} 29.若 fp 已正确定义为一个文件指针,d1.dat 为二进制文件,请填空,以便为“读” 而打开此文件:fp=fopen();。 30.有以下程序 #include main()

FIP*fp:inti=20,j卢30,k,n: fp=fopen(“dl.dat”“g: fprintf(fp,.“dn”,i》:fprintf(fn,"dm”): felose(fp): fp=fopen(“dl.dat",“r”): f=fscamf(fp,"id",kk,n:printf(“nd八n”,k,n): felose(fp》: 程序运行后的输出结果是 A02030 B盼2050 C03050 D月3020 31.以下叙述中错误的是 》二进制文作打开后可以先读文件的来尾,而顺序文件不可以 B卧在程序结束时,应当用felose函数关闭己打开的文件 C)在利用fad函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数 据 D)不可以用FLE定义指向二进制文件的文件指针
{FILE*fp;inti=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)2030 B)2050 C)3050 D)3020 31.以下叙述中错误的是 A)二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B)在程序结束时,应当用 fclose 函数关闭已打开的文件 C)在利用 fread 函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数 据 D)不可以用 FILE 定义指向二进制文件的文件指针

第十二章 1.A2D3B4A5C6C7.A8.C9.D10.D 11.*s(s)12.A13.doub1e◆14.C 15.NULL (!feof(fp))felose(fp)16.""str[i]-32 "r" 17.AAAABEBBCCOC 18.C 19.B 20.struct node ch NULL 21.B 22.s"p+3 2 23.B 24.revind 25.A 26.fopen 27.B 28.4feof(fp)29.”d1.dnt”,”rb”30A31.D
第十二章 1.A 2.D 3.B 4.A 5.C 6.C 7.A 8.C 9.D 10.D 11.*s *(*s) 12.A 13.double * 14.C 15.NULL (!feof(fp)) fclose(fp) 16.”w” str[i]-32 “r” 17.AAAABBBBCCCC 18.C 19.B 20.struct node * ch NULL 21.B 22.s=p+3 2 23.B 24.rewind 25.A 26.fopen 27.B 28. !feof(fp) 29.”d1.dat”,”rb” 30.A 31.D