《C++程序设计教程(第2版)》课后习题(2)

2025-07-07

3.使用递归算法编写求斐波那契数列的第n项的函数,并编出主函数进行验证。

4.编写一个求立方的函数cube,并重载它,使之可以对输入的整型量和实型量数值求立方。 5.重载判断两个数值大小的函数max,这些数值可能是整型数、实型数和字符型,函数的返回值为两个数值中的最大值。

6.编写一个函数,用于去掉字符串尾部的空格符,其原型为:

char *mytrim(char *string);

其中参数string为字符串,返回值为指向string的指针。 7.编写一个函数,用于去掉字符串前面的空格,其原型为:

char *myltrim(char *string);

其中参数string为字符串,返回值为指向string的指针。

8.编写一个程序,当输入一个整数以后,可以转换成相应的英文单词输出。如:123转换成one hundred twenty three.

9. 用牛顿法或者二分法编写一个求方程f(x)=0在区间[a,b]中的实根的函数, 其原型为:

double equation(double (*func)(double), double a, double b, double eps); 其中参数func, a和b分别为求根函数和区间两端点, eps为精度。

第8章 结构化设计方法

1.输入某小组5个人的姓名、性别、出生年份等信息,统计男女人数以及1988年以后(含1988年)出生的人数。

2.定义一个名为Circle(圆)的结构体,其数据成员是圆的外接矩形的左上角和右下角两点的坐标,计算该圆的面积。

3.读入5个用户的姓名和电话号码,按姓名的字典顺序排列后,输出每个用户的姓名和电话号码。

4.口袋中有红、黄、蓝、白、黑五种颜色的小球若干个。如果每次都从口袋中取出3个不同颜色的小球,共有多少种组合,请打印出每种组合的3种颜色。要求使用枚举类型来表示小球的颜色。

5.用自顶向下、逐步求精的程序设计方法找出2~10000之内的所有完全数(所谓完全数,即其各因子之和正好等于本身的数。如6=1+2+3,28=1+2+4+7+14,所以6,28都是完全数)

第9章 类和对象(1)

1.定义一个Dog类,包含name、age、sex、weight等属性以及对这些属性操作的方法。实现并测试这个类。

2.设计并测试一个名为Ellipse的椭圆类,其属性为外接矩形的左上角与右下角两个点的坐标,并能计算出椭圆的面积。

3.仿照Date类设计一个Time类,按各种可能的格式输出时间。

第10章 类和对象(2)

1.定义一个Dog类,包含name、age、sex、weight等属性,设计一个构造函数,可以对这些属性进行初始化。实现并测试这个类。 2.设计并测试一个名为Ellipse的椭圆类,其属性为其圆心坐标以及半长轴和半短轴的长度。设计一个构造函数对这些属性进行初始化,并通过成员函数计算出椭圆的面积。

3.仿照Date类设计一个Time类,设计多个重载的构造函数,可以设置时间、进行时间的加减运算、按各种可能的格式输出时间。

4.合并Date类和Time类为一个DateAndTime类,修改相应的成员函数,当时间递增到新的一天时,应能够修改日期值。

第11章 继承

1.从类Person中派生出一个教师类,新增的属性有:专业、职称和主讲课程(一门),并为这些属性定义相应的方法。

2.许多研究生既有学生的属性,又有教师的属性。试通过多重继承说明一个研究生类。 3.修改例11-5,从Point类中派生出一个Line类。Line类增加一个数据成员EndPoint,计算线的长度。试比较一下与直接使用Point类来构造Line类的不同之处。

4.从Date类和Time类派生一个DateAndTime类,修改相应的成员函数,当时间递增到新的一天时,应能够修改日期值。

第12章 多态性

1.定义一个类Base,该类含有虚函数display,然后定义它的两个派生类FirstB和SecondB,这两个派生类均含有公有成员函数display,在主程序中,定义指向基类Base的指针变量ptr,并分别定义Base、FirstB、SecondB的对象b1、f1、s1,让ptr分别指向b1、f1、s1的起始地址,然后执行这些对象的成员函数display。

2.扩充例12-6,从中派生出一个正方形类和圆柱体类,写一个测试程序,输出正方形的面积和圆柱体的体积。

提示:正方形数据成员:一个顶点和边长;圆柱体数据成员:圆和高。

3.扩充实例编程中的日期类,为Date类增加一个成员函数,可以判断一个日期是否是系统当前日期。从键盘输入你的生日,如果今天是你的生日则显示:“Happy Birthday!”,否则显示“还有xx天是你的生日”或“你的生日已经过去了xx天,明年的生日要再等yy天”。

第13章 模板与异常处理

1.

编写一个求绝对值的函数模板,并测试。

2. 3. 4.

请将例4-6的冒泡排序法改写成为模板函数并编写一个程序进行测试。 例13-6中所定义的通用栈类实际上是不完善的,如无法根据用户需求改变栈的大小,没有提供栈满溢出无法压入和空栈无法弹出提示等,请改进该程序。 C++中的数组类型比较简单,它的下标只能从0开始,没有负数下标,而且没有数组越界检查。请用类模板设计一个newArray类,该类的对象可以是整型、浮点型、字符型等任何元素类型的数组,而且当访问数组成员时,如果下标越界,

程序可以报错并终止。如下是一些例子: newArray A1(3) //同传统类型的整型数组

//包含5个元素的浮点型数组,其成员为A2[-2], A2[-1], A2[0], A2[1], A2[2] newArray A2(-2, 3) 请编写一个测试程序。 5.

例5-1给出的求阶乘n!的函数,当用户的输入太大时(如50),会出现错误,请编写一个程序,使用异常处理机制来解决这一问题。

第14章 标准库和输入输出流

1.编写一个程序,分别用不同的域宽(0~10)打印出整数12345和浮点数1.2345。观察当

域宽小于数值的实际需要的域宽时会发生什么情况。

2.编写一个程序,将华氏温度0度~212度转换为浮点型摄氏温度,浮点数精度为3。转换公式如下:

Celsius = 5.0 / 9.0 * (Fahrenheit-32);

输出用两个右对齐列,摄氏温度前面加上正负号。

3.编写一个程序,打印出ASCII字符集中码值为33~126的字符的ASCII码表。要求输出十进制值、八进制值、十六进制值以及码值所表示的字符。

4.修改例14-9的程序,重载>>运算符,使其能够直接使用cin语句输入Date类对象。 5.编写一个程序,可以读入一个C++语言的源文件,每一行加上行号后保存到另一个后缀为.prn的同名文件中。

第15章 链表

1. 编写程序,将表格中的数据元素逆转,假设表格采用顺序表类来存储。 2. 编写程序,将表格中的数据元素逆转,假设表格采用带头结点链表类来存储。 3. 设计一个算法,将一个带头结点的链表A分解为两个带头结点的链表B和C,使得B

表中含有A表中序号为奇数的元素,而C表中含有A表中序号为偶数的元素,且保持其相对顺序。

4. 设有两个有序带头结点的链表,编写程序,将这两个有序链表归并为一个有序带头结点

的链表。

5. 设有一个带头结点的链表,其结点值均为浮点数,编写程序,将此链表中的结点按值从

小到大链接。

6. 设有一个带头结点的链表,其结点值均为整数,编写程序,反复找出链表中最小的结点,

并输出其值,然后将其从链表中删除,直到链表为空为止。

第16章 程序设计与软件开发技术

1. 修改16.2节中的电话簿管理程序,增加通过姓名查找电话的功能。 2. 修改16.2节中的电话簿管理程序,增加通过电话号码查找姓名的功能。 3. 思考和分析:仔细研究你的手机的功能,编写一个程序,模拟手机的菜单功能。 4. 思考和分析:编写一个程序,模拟电视遥控器的功能。


《C++程序设计教程(第2版)》课后习题(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:多点温度检测 - 图文

相关阅读
本类排行
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 7

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219