C语言测试题:文件.doc
《C语言测试题:文件.doc》由会员分享,可在线阅读,更多相关《C语言测试题:文件.doc(9页珍藏版)》请在咨信网上搜索。
一、选择题: (1)以下叙述中错误的是 A)C语言中对二进制文件的访问速度比文本文件快 B)C语言中,随机文件以二进制代码形式存储数据 C)语句 FILE fp; 定义了一个名为fp的文件指针 D)C语言中的文本文件以ASCII码形式存储数据 (2)有以下程序 #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 (3)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是 A)feof(fp) B)ftell(fp) C)fgetc(fp) D)rewind(fp) (4)有以下程序 #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 (5) 有如下程序 #include <stdio.h> main() {FILE *fp1; fp1=fopen("f1.txt","w"); fprintf(fp1,"abc"); fclose(fp1); } 若文本文件f1.txt中原有内容为:good,则运行以上程序后文件f1.txt中的内容为 A) goodabc B) abcd C) abc D) abcgood (6) 有以下程序 #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 (7) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节) #include <stdio.h> main( ) { FILE *fp; int i,a[4]={1,2,3,4},b; fp=fopen("data.dat","wb"); for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp); fclose(fp); fp=fopen("data.dat ","rb"); fseek(fp,-2L*sizeof(int).SEEK_END) ; fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/ fclose(fp); printf("%d\n",B) ; } 执行后输出结果是 A) 2 B) 1 C) 4 D) 3 (8) 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为 A) 0 B) 1 C) -1 D) 一个非0值 (9) 下列关于C语言数据文件的叙述中正确的是 A) 文件由ASCII码字符序列组成,C语言只能读写文本文件 B) 文件由二进制数据序列组成,C语言只能读写二进制文件 C) 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D) 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 (10) 以下叙述中不正确的是 A)C语言中的文本文件以ASCⅡ码形式存储数据 B)C语言中对二进制文件的访问速度比文本文件快 C)C语言中,随机读写方式不适用于文本文件 D)C语言中,顺序读写方式不适用于二进制文件 11) 以下程序企图把从终端输入的字符输出到名为abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。 #include <stdio.h> main() { FILE *fout; char ch; fout=fopen('abc.txt',’w'); ch=fgetc(stdin); while(ch!=’#’) { fputc(ch,fout); ch=fgetc(stdin); } fclose(fout); } 出错的原因是 A) 函数fopen调用形式错误 B) 输入文件没有关闭 C) 函数fgetc调用形式错误 D) 文件指针stdin没有定义 (12) 有以下程序 #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) 30 20 (13) 以下叙述中错误的是 A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以 B) 在程序结束时,应当用fclose函数关闭已打开的文件 C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据 D) 不可以用FILE定义指向二进制文件的文件指针 (14) 若要打开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") C) fopen("A:\\user\\abc.txt","w") (15) 下面的程序执行后,文件testt.t中的内容是 #include <stdio.h> void fun(char *fname.,char *st) { FILE *myf; int i; myf=fopen(fname,“w” ); for(i=0;i<strlen(st); i++)fputc(st[i],myf); fclose(myf); } main() { fun(“test”,“new world”; fun(“test”,“hello,”0;) A)hello, B)new worldhello, C)new world D) hello, rld (16) 若fp是指向某文件的指针,且已读到文件末尾,则库函数feof(fp)的返回值是 A) EOF B) -1 C) 非零值 D) NULL (17) 在C程序中,可把整型数以二进制形式存放到文件中的函数是 A) fprintf函数 B) fread函数 C) fwrite函数 D) fputc函数 (18) 标准函数 fgets(s, n, f) 的功能是 A) 从文件f中读取长度为n的字符串存入指针s所指的内存 B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存 C) 从文件f中读取n个字符串存入指针s所指的内存 D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存 二、填空题: (1) 已有文本文件test.txt,其中的内容为:Hello,everyone!。以下程序中,文件test.txt已正确为“读”而打开,由文件指针fr指向该文件,则程序的输出结果是 【1】 。 #include <stdio.h> main() { FILE *fr; char str[40]; …… fgets(str,5,fr); printf("%s\n",str); fclose(fr); } (2) 若fp已正确定义为一个文件指针,d1.dat为二进制文件,请填空,以便为“读”而打开此文件:fp=fopen( [2] );。 (3) 以下程序用来统计文件中字符个数。请填空。 #include "stdio.h" main() { FILE *fp; long num=0L; if((fp=fopen("fname.dat","r"))==NULL) { pirntf("Open error\n"); exit(0);} while( 【3】 ) { fgetc(fp); num++;} printf("num=%1d\n",num-1); fclose(fp); } (4) 以下程序段打开文件后,先利用 fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。 FILE *myf; ling f1; myf= 【4】 (“test.t”,“rb”); fseek(myf,0,SEEK_END); f1=ftel(myf); fclose(myf); printf(“%d\n”,f1); (5) 下面程序把从终端读入的文本(用@作为文本结束标志)输出到一个名为bi.dat的新文件中。请填空。 #include “stdio.h” FILE *fp; { char ch; if( (fp=fopen ( 【5】 ) )= = NULL)exit(0); while( (ch=getchar( )) !=’@’) fputc (ch,fp); fclose(fp); } (6) 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输入)存放到此文件文件中形成文本文件,并将字符的个数写到文件尾部,请填空。 #include <stdio.h> main( ) { FILE *fp; char ch,fname[32]; int count=0; printf("Input the filename :"); scanf("%s",fname); if((fp=fopen( 【6】 ,"w+"))==NULL) { printf("Can't open file:%s \n",fname); exit(0);} printf("Enter data:\n"); while((ch=getchar())!="#"){ fputc(ch,fp); count++;} fprintf( 【7】 ,"\n%d\n", count); fclose(fp); } (7) 下面程序把从终端读入的10个整数以二进制方式写到一个名为bi.dat的新文件中,请填空. #include<stdio,h> FILE *fp; main() { int i,j; if((fp=fopen( 【8】, "wb"))==NULL) exit(0); for(i=0; i<10; i++) { scanf("%d",&j); fwrite(&j,sizeof(int),1, 【9】 ); } fclose(fp); } (8) 以下程序的功能是:从键盘上输入一个字符串, 把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。请填空。 #include main() { FILE *fp; char str[100]; int i=0; if((fp=fopen("text.txt",【10】))==NULL) { printf("can't open this file.\n");exit(0);} printf("input astring:\n"); gest(str); while (str[i]) { if(str[i]>='a'&&str[i]<='z') str[i]=【11】; fputc(str[i],fp); i++; } fclose(fp); fp=fopen("test.txt",【12】); fgets(str,100,fp); printf("%s\n",str); fclose(fp); } (9) 下面程序把从终端读入的文本用@作为文本结束标志)复制到一个名为bi.dat的新文件中,请填空。 #include <stdio.h> FILE *fp; main() { char ch; if((fp=fopen( 【13】))==NULL)exit(0); while ((ch=getchar())!='@')fputc(ch,fp); 【14】 (10) 以下程序由终端输入一个文件名,然后把从终端键盘输入的字符依次存放到该文件中,用#作为结束输入的标志.请填空. #include <stdio.h> main() { FILE * fp; char ch,fname[10]; printf("lnput the name of file\n"); gets(fname); if((fp=【15】)==NULL) { printf("Cannot open\n"); exit(0);} printf("Enter data\n"); while((ch=getchar())!='#') fputc(【16】,fp); fclose(fp); } 11) 下面的程序用来统计文件中字符的个数,请填空。 #include <stdio.h> main() { FILE *fp; long num=0; if(( fp=fopen("fname.dat","r"))==NULL) { printf( "Can't open file! \n"); exit(0);} while 【17】 { fgetc(fp); num++;} printf("num=%d\n", num); fclose(fp); } (12)以下C语言程序将磁盘中的一个文件复制到另一个文件中,两个文件名在命令行中给出。 #include <stdio.h> main(int argc, char *argv) { FILE *f1,*f2; char ch; if(argc< 【18】 ) { printf("Parameters missing!\n"); exit(0); } if( ((f1=fopen(argv[1],"r")) = = NULL)||((f2=fopen(argv[2],"w")) = = NULL)) { printf("Can not open file!\n"); exit(0);} while( 【19】 )fputc(fgetc(f1),f2); fclose(f1); fclose(f2); } 答案: 一、选择题: 01) C 02) D 03) D 04) B 05) C 06) B 07) D 08) A 09) D 10) D 11) A 12) A 13) D 14) B 15) A 16) C 17) A 18) B 二、填空题: (1) Hell (2) “d1.dat”,”rb”或 “d1.dat”,”r+b”或”d1.dat”,”rb+” (3) !feof(fp) (4) fopen (5) “bi.dat”,“w”或“bi.dat”,“wt”或“bi.dat”,“w+t” (6) fname (7) fp (8) "bi.dat" (9) fp (10) "w"或"w+"或"wt"或"w+t"或"""wt+" (11) str[i]-32 或str[i]-('a'-'A'或str[i]-'a'+'A' (12) "r"或"r+"或"r+t"或"rt+" (13) "bi.dat","w" (14) fclose(fp) (15) fopen(fname,"w") (16) ch (17) (!feof(fp)) (18) 3 (19) !feof(f1)- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 测试 文件
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文