c--面向对象程序设计课后习题解答-谭浩强(共20页).doc
《c--面向对象程序设计课后习题解答-谭浩强(共20页).doc》由会员分享,可在线阅读,更多相关《c--面向对象程序设计课后习题解答-谭浩强(共20页).doc(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上专心-专注-专业第第 1 1 章章 C+的初步知识的初步知识1请根据你的了解,叙述 C+的特点。C+对 C 有哪些发展?【解】 略。2一个 C+的程序是由哪几部分构成的?其中的每一部分起什么作用?【解】 略。3从拿到一个任务到得到最终结果,一般要经过几个步骤?【解】 略。4请说明编辑、编译、连接的作用。在编译后得到的目标文件为什么不能直接运行?【解】 编译是以源程序文件为单位进行的,而一个完整的程序可能包含若干个程序文件,在分别对它们编译之后,得到若干个目标文件(后缀一般为.obj),然后要将它们连接为一个整体。此外,还需要与编译系统提供的标准库相连接,才能生成一个可
2、执行文件(后缀为.exe)。不能直接运行后缀为.obj 的目标文件,只能运行后缀为.exe 的可执行文件。5分析下面程序运行的结果。#includeusing namespace std;int main(cout This is ;cout a C+ ;coutprogram. endl;return 0;【解】 输出的结果为ThisisaC+program.6分析下面程序运行的结果。精选优质文档-倾情为你奉上专心-专注-专业#includeusing namespace std;int main(int a,b,c;a=10;b=23;c=a+b;cout a+b=;coutcoutabc
3、;c=f(a,b,c;cout a+b= a+b;【解】 上机编译出错,编译出错信息告知在第 2 行出错,经检查,发现第 1 行的末尾多了一个分号,编译系统无法理解第 2 行的花括号,导致报告第 2 行出错。将第 1 行的末尾的分号去掉,重新编译,编译出错信息告知在第 5 行和第 6 行出错。第 5 行出错原因是 cout 未经声明,因为 cout 不是 C+语言提供的系统的关键字,而是输出流的对象,必须使用头文件iostream。第 6 行出错原因是 main 是 int 型函数,应返回一个整型值。将程序改为#includeint main(精选优质文档-倾情为你奉上专心-专注-专业int
4、a,b;c=a+b;cout a+b= a+b;return 0;重新编译。编译出错信息告知在第 5 行和第 6 行出错。第 5 行出错原因是变量 c 未定义,第 6行出错原因是 cout 未经声明,说明#include 命令行未能起作用,原因是未指明命名空间。将程序改为#includeusing namespace std;int main(int a,b,c;c=a+b;cout a+b= a+b;return 0;重新编译。编译出错信息告知在第 7 行出错,经检查,是“”用得不当,“”是提取运算符,应与 cin 联合使用,用来从输入流中提取数据,输出时应该用插入运算符“”都改为“ab;c
5、=a+b;cout a+b= a+b;精选优质文档-倾情为你奉上专心-专注-专业return 0;重新编译,没有编译错误,能通过编译和连接,可以正常运行,在 VisualC+6.0 环境下运行时屏幕显示如下:5 9a+b=14Press any key to continue显然这样的输出不理想,“Press any key to continue”是 VisualC+系统在输出了运行结果后自动显示的一个信息,告诉用户“如果想继续工作,请按任何一个键”。当用户按任何一个键后,显示运行结果的窗口消失,屏幕显示回到 Visual C+的主窗口,显示出源程序和编译信息。为了解决以上输出不理想的情况,
6、可以在最后一个输出语句中增加输出一个换行符。最后的程序如下:#includeusing namespace std;int main(int a,b,c;cinab;c=a+b;couta+b=return 0;运行时屏幕显示如下:5 9a+b=14Press any key to continue这就完成了程序的调试。精选优质文档-倾情为你奉上专心-专注-专业这里对本题的调试过程作了比较详细的分析,以便使读者对如何调试程序有比较具体而清晰的了解。需要说明:(1)编译系统给出的编译出错信息,只是提示性的,引导用户去检查错误,用户必须根据程序的上下文和编译出错信息,全面考虑,找出真正出错之处。例
7、如编译出错信息通知第 2行出错,其实可能是第 1 行出错。(2)有时,有的错误开始时未被检查出来并告知用户(例如未定义变量 c),由于其他错误未解决,掩盖了这个错误。当解决了其他错误后,这个错误会被检查出来。有时在调试过程中会不断检查出新的错误,这是不奇怪的。一一处理,问题会迎刃而解。(3)为了说明调试过程,这里全部依靠计算机系统来检查错误,其实有些明显的错误,完全可以由人工查出,这样可以提高调试效率。由人工在纸面或屏幕上检查错误,称为静态查错,用计算机编译系统检查错误,称为动态查错。建议尽量先用静态查错的方法排除错误,只有人工检查不出来的错误才让计算机检查。9输入以下程序,进行编译,观察编译
8、情况,如果有错误,请修改程序,再进行编译,直到没有错误,然后进行连接和运行,分析运行结果。#includeusing namespace std;int main(int a,b;c=add(a,bcouta+b= a b;c=add(a,b;cout a+b= c x y z;sort(x,y,z;return 0;void sort(int x, int y, int zint temp;if (xy temp=x;x=y;y=temp; / 内 3 个语句的作用是将 x 和 y 的值互换if (z , x , y endl;else if (z , z , y endl;else cou
9、t x , y , z a b c;cout max(a,b,c= max(a,b,c endl;cout max(a,b= a a=b;if(ca a=c;精选优质文档-倾情为你奉上专心-专注-专业return a;运行情况如下:13 5 76max(a,b,c=76 (从 3 个数中找最大者)max(a,b=13 (从前 2 个数中找最大者)如果想从 3 个数中找大者,可以在调用时写成“max(a,b,c”形式,如果只想从 2 个数中找大者,则在调用时写成“max(a,b”形式,此时 c 自动取默认值 0,由于 0 比任何正整数都小,因此从 14,5,0 中选最大者和从 14,5 中选大者
10、的结果是一样的。12输入两个整数,将它们按由大到小的顺序输出。要求使用变量的引用。【解】 可以编写出以下程序:#includeusing namespace std;int main( void change(int &,int &;int a,b;cinab;if(a 如果如果 a ,使,使 a 和和 b 的值互换的值互换coutmax= min= return 0;void change(int &r1,int &r2 /函数的作用是使函数的作用是使 r1 与与 r2 互换互换 int temp;temp=r1;r1=r2;r2=temp;运行情况如下:运行情况如下:精选优质文档-倾情为你
11、奉上专心-专注-专业12126767max=67min=121313对对 3 3 个变量个变量按由小到大顺序排序,要求使用变量的引用。按由小到大顺序排序,要求使用变量的引用。【解解】 可以编写出以下程序:可以编写出以下程序:#includeusing namespace std;int main(void sort(int &,int &,int &;int a,b,c,a1,b1,c1;coutabc;a1=a;b1=b;c1=c;sort(a1,b1,c1;cout in sorted order is ;cout j change(i, j;if (ik change(i, k;if (
12、jk change(j, k;void change(int &x,int &y int temp;temp=x;x=y;y=temp;精选优质文档-倾情为你奉上专心-专注-专业运行情况如下:运行情况如下:Please enter 3 integers:23 67 - -55 23 67 55 in sorted order is 55 23 67这个程序很容易理解,不易出错。由于在调用这个程序很容易理解,不易出错。由于在调用 sortsort 函数时虚实结合使形参函数时虚实结合使形参 i,j,ki,j,k 成为实成为实参参 a1,b1,c1a1,b1,c1 的引用(别名),因此通过调用函数的
13、引用(别名),因此通过调用函数 sortsort(a1,b1,c1a1,b1,c1)既实现了对)既实现了对 i,j,ki,j,k 排序,也排序,也就同时实现了对就同时实现了对 a1,b1,c1a1,b1,c1 排序。同样,执行排序。同样,执行 changechange(i,j i,j)函数,可以实现对实参)函数,可以实现对实参 i i 和和 j j 的互的互换。换。1414编一程序编一程序, ,将两个字符串连接起来将两个字符串连接起来, ,结果取代第一个字符串。结果取代第一个字符串。要求要求用用 stringstring 方法方法。【解解】 可以编写出以下程序:可以编写出以下程序:#inclu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 课后 习题 解答 谭浩强 20
限制150内