ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:273.50KB ,
资源ID:10689930      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-10689930.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(谭浩强C++课后习题答案.doc)为本站会员(精品资料)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

谭浩强C++课后习题答案.doc

1、第 1 章谭浩强 C+课后习题答案1请根据你的了解,叙述 C+ 的特点。C + 对 C 有哪些发展?【解】 略。2一个 C+的程序是由哪几部分构成的?其中的每一部分起什么作用?【解】 略。3从拿到一个任务到得到最终结果,一般要经过几个步骤?【解】 略。4请 说 明 编 辑 、 编 译 、 连 接 的 作 用 。 在 编 译 后 得 到 的 目 标 文 件 为 什 么 不 能 直 接运 行 ?【解】 编译是以源程序文件为单位进行的,而一个完整的程序可能包含若干个程序文件,在分别对它们编译之后,得到若干个目标文件(后缀一般为.obj),然后要将它们连接为一个整体。此外,还需要与编译系统提供的标准库

2、相连接,才能生成一个可执行文件(后缀为.exe)。不能直接运行后缀为.obj 的目标文件,只能运行后缀为.exe 的可执行文件。5分析下面程序运行的结果。#include using namespace std;int main( )coutusing namespace std;int main( )int a,b,c;a=10;b=23;c=a+b;coutusing namespace std;int main( )int a,b,c;int f(int x,int y,int z);cinabc;c=f(a,b,c);cout“ a+b=“ a+b; 【解】 上机编译出错,编译出错信息

3、告知在第 2 行出错,经检查,发现第 1 行的末尾多了一个分号,编译系统无法理解第 2 行的花括号,导致报告第 2 行出错。将第1 行的末尾的分号去掉,重新编译,编译出错信息告知在第 5 行和第 6 行出错。第 5 行出错原因是 cout 未经声明,因为 cout 不是 C+语言提供的系统的关键字,而是输出流的对象,必须使用头文件 iostream。第 6 行出错原因是 main 是 int 型函数,应返回一个整型值。将程序改为#include int main( )int a,b;c=a+b;cout “ a+b=“ a+b;return 0; 重新编译。编译出错信息告知在第 5 行和第 6

4、 行出错。第 5 行出错原因是变量 c 未定义,第 6 行出错原因是 cout 未经声明,说明#include 命令行未能起作用,原因是未指明命名空间。将程序改为#include using namespace std;int main( )int a,b,c;c=a+b;cout“ a+b=“ a+b;return 0;C+面向对象程序设计题解与上机指 导 6 重新编译。编译出错信息告知在第 7 行出错,经检查,是“”用得不当,“ ”是提取运算符,应与 cin 联合使用,用来从输入流中提取数据,输出时应该用插入运算符“ ”都改为“using namespace std;int main( )

5、int a,b,c;cinab;c=a+b;cout“ a+b=“ a+b;return 0;重新编译,没有编译错误,能通过编译和连接,可以正常运行,在 Visual C+ 6.0 环境下运行时屏幕显示如下:5 9a+b=14Press any key to continue显然这样的输出不理想,“Press any key to continue”是 Visual C+系统在输出了运行结果后自动显示的一个信息,告诉用户“如果想继续工作,请按任何一个键”。当用户按任何一个键后,显示运行结果的窗口消失,屏幕显示回到 Visual C+的主窗口,显示出源程序和编译信息。为了解决以上输出不理想的情况

6、,可以在最后一个输出语句中增加输出一个换行符。最后的程序如下:#include using namespace std;int main( )int a,b,c;cinab;c=a+b;coutusing namespace std;int main( )int a,b;c=add(a,b)coutusing namespace std;int main( )int add(int x,int y);int a,b,c;cin a b;c=add(a,b);cout using namespace std;int main( ) void sort(int x,int y,int z);int

7、 x,y,z;cin x y z;sort(x,y,z);return 0;void sort(int x, int y, int z)int temp;if (xy) temp=x;x=y;y=temp; / 内 3 个语句的作用是将 x 和 y 的值互换if (zusing namespace std;int main( )int max(int a,int b,int c=0);int a,b,c;cin a b c;cout a) a=b;if(ca) a=c;return a;运行情况如下:13 5 76max(a,b,c)=76 (从 3 个数中找最大者)max(a,b)=13 (

8、从前 2 个数中找最大者)如 果 想 从 3 个 数 中 找 大 者 , 可 以 在 调 用 时 写 成 “max(a,b,c)”形 式 , 如 果 只 想从 2 个 数 中 找 大 者 , 则 在 调 用 时 写 成 “max(a,b)”形 式 , 此 时 c 自 动 取 默 认 值 0,由 于 0 比 任 何 正 整 数 都 小 , 因 此 从 14, 5, 0 中 选 最 大 者 和 从 14, 5 中 选 大 者 的 结果 是 一 样 的 。12输入两个整数,将它们按由大到小的顺序输出。要求使用变量的引用。【解】 可以编写出以下程序:#includeusing namespace st

9、d;int main( ) void change(int int a,b;cinab;if(ausing namespace std;int main( )void sort(int int a,b,c,a1,b1,c1;coutabc;a1=a;b1=b;c1=c;sort(a1,b1,c1);coutj) change(i, j);if (ik) change(i, k);if (jk) change(j, k);void change(int temp=x;x=y;y=temp;运行情况如下:Please enter 3 integers:23 67 -5523 67 55 in so

10、rted order is 55 23 67这个程序很容易理解,不易出错。由于在调用 sort 函数时虚实结合使形参 i,j,k 成为实参 a1,b1,c1 的引用(别名),因此通过调用函数 sort(a1,b1,c1 )既实现了对 i,j,k排序,也就同时实现了对 a1,b1,c1 排序。同样,执行 change(i,j)函数,可以实现对实参 i 和 j 的互换。14编一程序,将两个字符串连接起来,结果取代第一个字符串。要求用 string 方法。【解】 可以编写出以下程序:#include #include /程序中若使用字符串变量,必须包含头文件 stringusing namespac

11、e std;int main( ) string s1= “ week “,s2= “ end “;C+面向对象程序设计题解与上机指 导 12cout #include using namespace std;int main( ) string str; /定义字符串变量 strint i,n;char temp; /定义字符变量 tempcoutstr; /输入一个字符串赋给字符串变量 strn=str.size( ); /测量 str 的长度 nfor(i=0;i#include using namespace std;第 1 章 C+ 的初步知识 13int main( ) int i

12、;string str5=“ BASIC“,“ C“,“ FORTRAN“,“ C+“,“PASCAL“;void sort(string );sort(str); /对字符串排序coutsi+1)t=si;si=si+1;si+1=t;运行结果如下:the sorted strings :BASIC C C+ FORTRAN PASCAL17编一个程序,用同一个函数名对 n 个数据进行从小到大排序,数据类型可以是整型、单精度型、双精度型。用重载函数实现。【解】 可以编写出以下两个程序:(1)建立 3 个函数,分别用于处理整型、单精度型、双精度型数据的排序,在 3个函数中都采用选择法排序方法。

13、#include #include using namespace std;int main( ) long a5=10100,-123567, 1198783,-165654, 3456;int b5=1,9,0,23,-45;float c5=2.4, 7.6, 5.5, 6.6, -2.3 ;void sort(long );void sort(int );void sort(float );sort(a);sort(b);C+面向对象程序设计题解与上机指 导 14sort(c);return 0;void sort(long a )int i, j;long t;for (j=0; j

14、ai+1)t=ai;ai=ai+1;ai+1=t;coutai+1)t=ai;ai=ai+1;ai+1=t;coutai+1)t=ai;ai=ai+1;ai+1=t;cout#include using namespace std;int main( ) long a5= 10100,-123567, 1198783,-165654, 3456;int b5=1,9,0,23,-45;float c5=2.4, 7.6, 5.5, 6.6, -2.3 ;void sort(int );void sort(float );void sort(long );sort(a); /对长整型数据排序so

15、rt(b); /对整型数据排序sort(c); /对单精度型数据排序return 0;void sort(long a ) /对长整型数据用选择法排序的函数int i,j,min;long t;for(i=0;iaj) min=j;t=ai; ai=amin; amin=t; coutai+1)t=ai;ai=ai+1;ai+1=t;coutai+1)t=ai;ai=ai+1;ai+1=t;cout#include using namespace std;template 第 1 章 C+ 的初步知识 17void sort(T a ) /函数模板,采用选择法排序int i, j, min;T

16、 t;for(i=0;iaj) min=j;t=ai; ai=amin; amin=t; cout“ the sorted numbers : “endl;for(i=0;i5;i+)coutai “ “;coutendlendl;int main( ) long a5=10100,-123567, 1198783,-165654, 3456;int b5=1,9,0,23,-45;float c5=2.4, 7.6, 5.5, 6.6, -2.3 ;sort(a);sort(b);sort(c);return 0;运行结果如下:the sorted numbers :-123567 -165654 10100 3456 1198783 (长整型数据排序)the sorted numbers : (整型数据排序)-45 0 1 9 23the sorted numbers :-2.3 2.4 5.5 6.6 7.6 (单精度型数据排序)对比第 17 题和 18 题,可以看到,如果重载函数的函数体基本相同的话,用函数模板显然更方便,可以压缩程序篇幅,使用方便。

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报