资源描述:
《第9章C语言课后的习题.doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、练习与思考99.1填空题假设在程序中有这样一些语句:#includeFILE*fp1,*fp2;charch,str[100];intnNumRead=-1;fp1=fopen("test1.txt","r");fp2=fopen("test2.txt","w");并且,假设两个文件都被成功打开,请完成下面代码的空格部分:a)ch=fgetc(__fp1__);/*读取文件test1.txt中字符*/b)fprintf(__fp2__,"%c",__ch__);/*把ch写入文件test2
2、.txt中*/c)fclose(__fp2__);/*关闭文件test2.txt*/d)while(!__feof(fp1)__)fscanf(fp1,__”%c”__,__&ch__);/*依次读入文件test1.txt中所有字符*/e)nNumRead=fread(__str__,__sizeof(char)__,1,fp1);f)fseek(fp1,__0L__,__SEEK_END/2__);/*将文件内部读写位置指针定位到文件尾*/9.2选择题(1)fscanf()函数的正确调用形式为(B)。(A)f
3、scanf(fp,格式字符串,读入变量列表);(B)fscanf(文件指针,格式字符串,读入变量列表);(C)fscanf(格式字符串,文件指针,读入变量列表);(D)fscanf(格式字符串,读入变量列表,fp);(2)已知函数的调用形式:fread(buffer,size,count,fp);其中buffer代表的是(C)。(A)一个整型变量,代表要读入的数据项总数(B)一个文件指针,指向要读入的文件(C)一个指针,指向要存放读入数据的地址(D)一个存储区,存放要读入的数据项(3)以下可作为函数fopen中
4、的第一参数的是(D)。(A)c:usertext.txt(B)c:usertext.txt(C)"c:usertext.txt"(D)"c:\user\text.txt"(4)若执行fopen函数发生错误,则函数的返回值是(B)。(A)地址值(B)NULL(C)1(D)EOF(5)函数调用语句:fseek(fp,-10L,2);的功能是(B)。(A)将文件内部读写位置指针移到离当前位置10个字节处(B)将文件内部读写位置指针移到文件尾前面10个字节处(C)将文件内部读写位置指针移到文件头后面10个
5、字节处(D)将文件内部读写位置指针移到文件尾后面10个字节处9.3编程题(1)修改本章中程序清单9-3中StringWriteAndRead.c,使之只用打开文件和关闭文件各1次。程序清单3-1NewStringReadAndWrite.c/*purpose:Writeandreadstringforfileauthor:ZhangWeigangcreated:2008/10/0110:36:28*/#include#include#includeint
6、main(void){FILE*fp;charstr[81],strNew[81],*pCh;intnResult,nLen;fp=fopen("hit.txt","w+");/*创建文件hit.txt并打开*/if(NULL==fp){printf("Openfilehit.txterror");exit(-1);}printf("Pleaseinputastring:");gets(str);/*获取键盘输入字符串*/nLen=strlen(str);/*计算字符串长度*/nResult=fputs
7、(str,fp);/*把字符串写入文件中*/if(EOF==nResult){printf("Writestringtohit.txterror");exit(-1);}printf("Writestringtofilecompletely");fseek(fp,0L,SEEK_SET);/*文件内部读写位置指针重新定位到文件头*/pCh=fgets(strNew,nLen+1,fp);/*从文件中读取字符串*/if(NULL==pCh){printf("Readstringfromhit.txterr
8、or");exit(-1);}puts(pCh);/*输出字符串到屏幕,此处也可把pCh替换成strNew*/fclose(fp);return0;}(2)编写一个文件复制程序,要求从命令行参数中直接获取源文件名和目的文件名。程序清单3-2FileCopy.c/*purpose:Copyafileauthor:ZhangWeigangcreated:2008/10/0110:49: