《c++程序设计教程_第2版_》课后习题[1]

上传人:luoxia****01805 文档编号:74515765 上传时间:2019-01-28 格式:PDF 页数:11 大小:197.23KB
返回 下载 相关 举报
《c++程序设计教程_第2版_》课后习题[1]_第1页
第1页 / 共11页
《c++程序设计教程_第2版_》课后习题[1]_第2页
第2页 / 共11页
《c++程序设计教程_第2版_》课后习题[1]_第3页
第3页 / 共11页
《c++程序设计教程_第2版_》课后习题[1]_第4页
第4页 / 共11页
《c++程序设计教程_第2版_》课后习题[1]_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《《c++程序设计教程_第2版_》课后习题[1]》由会员分享,可在线阅读,更多相关《《c++程序设计教程_第2版_》课后习题[1](11页珍藏版)》请在金锄头文库上搜索。

1、第第 1 章章 C+语言简介语言简介 1. 修改例 1-1 的 Hello World!程序, 使其能够在计算机屏幕上显示: I am a student, and I like programming! 2. 修改例 1-3 的加法计算器程序,编写一个乘法计算器程序。 3. 修改例 1-4 的生日卡程序,使其能够输入和显示日期。 4. 参考例 1-5,使用梯形法计算下式定积分的值。 + 1 1 )(sindxex x 其中积分区域等分数可取为 200,并将计算结果和手算结果相比较。 提示:ex用标准数学函数库 cmath 中的库函数 exp(x)表示。 5. 仿照例 1-6,编写一个计算矩形

2、面积的程序。 第第 2 章章 基本数据类型基本数据类型 1 为例 2-2 添加数据检验部分。给出三边长,检验其是否能构成一个三角形的方法是 检查是否任意两边和均大于第三边。如果检验不合格,输出信息“Error Data!” 2 输入两个角度值 x、y,计算如下式子的值。 |)cos(| |)|sin(| yx yx + + 3 编写一个程序,要求完成以下要求: 1) 提示用户输入任意的 3 个小数; 2) 显示这三个小数; 3) 将这三个小数相加,并显示其结果; 4) 将结果按四舍五入方法转换成整数并显示。 4 从键盘输入任意三个整数,然后输出这三个数并计算其平均值。 5 编写一个程序,将字符

3、串“Love”译成密码,译码方法采用替换加密法,其加密规 则是:将原来的字母用字母表中其后面的第 3 个字母的来替换,如字母 c 就用 f 来 替换,字母 y 用 b 来替换。 提示:分别用 4 个字符变量来存储L、o、v和e,利用 ASCII 表中字母的排列关系, 按照译码方法对各个变量进行运算后输出即可。 第第 3 章章 控制结构控制结构 1. 编写计算阶乘 n!的程序。 2. 计算 1!+2!+3!+4!+10!,即 = 10 1 ! i i 3. 编写程序求斐波那契数列的第 n 项和前 n 项之和。斐波那契数列是形如 0, 1, 1, 2, 3, 5, 8, 13, . 其通项为: F

4、0 = 0; F1 = 1; Fn = Fn1+Fn2。 4. 编程求. ) 12() !(2 )!2( . 542 31 32 arcsin 22 1253 + + + + + + nn xnxx xx n n ,其中1 2编写一组求数组中最大最小元素的函数。该组函数的原型为 int imax(int array, int count); / 求整型数组的最大元素 int imin(int array, int count); / 求整型数组的最小元素 其中参数 count 为待考察的数组中的元素个数,函数的返回值即为求得的最大或最小元素之 值。要求同时编写出主函数进行验证。 3编写函数 i

5、sprime(int a)用来判断变量 a 是否为素数,若是素数,函数返回 1,否则返回 0。 调用该函数找出任意给定的 n 个整数中的素数。 4打印出以下的杨辉三角形(要求打印出 10 行) 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 提示:打印杨辉三角形有两种方法: 1 ) 杨 辉 三 角 形 表 现 的 是 二 项 式 n ba)+(的 展 开 式 的 系 数 。 例 如 , 222 2)bababa+=+(, 故杨辉三角形的第三行(对应 n=2)为 1 2 1 一般地,二项式 n ba)+(的展开式为 nn n mmnm n n n n n

6、baCbaCbaCbaC 011100 + 其中第 m 项 )!( ! ! mnm n C m n =。 2)可直接根据杨辉三角形的形式来推出每项的值。由下面的杨辉三角形可以看出,杨 辉三角形每行的第一个数和最后一个数均为 1,除第一行外,每行中间的各数等于上一 行位于该数左上方和正上方的两数之和,即 1 1 + += m n m n m n CCC。 5用弦截法求一元方程0)(=xf在区间 10,x x之间的一个根。 提示:考虑当区间 10,x x足够小,在此区间中方程0)(=xf仅有一个单根的情况,如下图 所示。 图图 5.6 弦截法求方程的解弦截法求方程的解 此时如)( 0 xf和)(

7、1 xf异号,则可用两点间直线公式求出 x2: )( )()( 0 10 10 02 xf xfxf xx xx = 然后用 x2代入原式求出 f(x2),判断 f(x2)与 f(x1)和 f(x0)中的哪一个同号,就用 x2和 f(x2) 代替之,即如果 f(x2)和 f(x0)同号,就用 x2和 f(x2)代替 x0和 f(x0),反之用 x2和 f(x2)代替 x1和 f(x1),然后再继续上述过程直至f(x)小于给定的误差控制值。 第第 6 章章 指针指针 1使用指针编写一个对整型数组进行排序的函数,排序方法使用例 4-6 的交换排序法(冒 泡排序法) 。 2编写程序,将某一个输入的位

8、数不确定的正整数按照标准的三位分节格式输出,例如, 当用户输入 82668634 时,程序应该输出 82,668,634。 3编写程序,把 10 个整数 1、2、10 赋予某个 int 型数组,然后用 int 型指针输出该数 组元素的值。 4用指针编写一个程序,当输入一个字符串后,要求不仅能够统计其中字符的个数,还能 分别指出其中大、小写字母、数字以及其他字符的个数。 提示:要输入包含空格的字符串需借助输入流对象的 get()成员函数,如 cin.get(str, 100); 语 句就能将从键盘输入的前 99 个字符(含可能出现在其中的任意个空格)存入到字符数组 str 中去,若用户输入字符数

9、少于 99,则以回车换行表示输入结束。 5编写一个函数, 用于将一个字符串转换为整型数值。其原型为: int atoi(char *string); 其中参数 string 为待转换的字符串(其中包括正、负号和数字),返回值为转换结果。 6编写一个函数,用于生成一个空白字符串,其原型为: char *mystrspc(char *string, int n); 其中参数 string 为字符串, n 为空白字符串的长度 (空格符的个数)。 返回值为指向 string 的指针。 第第 7 章章 函数与指针函数与指针 1使用递归算法编写如下程序:对于任意给定的实数 X 和整数 k0,计算 Xk。

10、2Ackermann 函数 ack(m,n)由以下递归定义: ack(0, n)=n+1 ack(m, 0)=ack(m-1, 1) ack(m, n)=ack(m-1, ack(m, n-1) 其中 m0, n0 编写一个计算此函数的递归程序。 3使用递归算法编写求斐波那契数列的第 n 项的函数,并编出主函数进行验证。 4编写一个求立方的函数 cube,并重载它,使之可以对输入的整型量和实型量数值求立方。 5重载判断两个数值大小的函数 max,这些数值可能是整型数、实型数和字符型,函数的 返回值为两个数值中的最大值。 6编写一个函数,用于去掉字符串尾部的空格符,其原型为: char *myt

11、rim(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)(doub

12、le), double a, double b, double eps); 其中参数 func, a 和 b 分别为求根函数和区间两端点, eps 为精度。 第第 8 章章 结构化设计方法结构化设计方法 1输入某小组 5 个人的姓名、性别、出生年份等信息,统计男女人数以及 1988 年以后(含 1988 年)出生的人数。 2定义一个名为 Circle(圆)的结构体,其数据成员是圆的外接矩形的左上角和右下角两 点的坐标,计算该圆的面积。 3读入 5 个用户的姓名和电话号码,按姓名的字典顺序排列后,输出每个用户的姓名和电 话号码。 4口袋中有红、黄、蓝、白、黑五种颜色的小球若干个。如果每次都从口袋

13、中取出 3 个不 同颜色的小球,共有多少种组合,请打印出每种组合的 3 种颜色。要求使用枚举类型来表示 小球的颜色。 5用自顶向下、逐步求精的程序设计方法找出 210000 之内的所有完全数(所谓完全数, 即其各因子之和正好等于本身的数。如 6=1+2+3,28=1+2+4+7+14,所以 6,28 都是完全数) 第第 9 章章 类和对象(类和对象(1) 1定义一个 Dog 类,包含 name、age、sex、weight 等属性以及对这些属性操作的方法。实 现并测试这个类。 2设计并测试一个名为 Ellipse 的椭圆类,其属性为外接矩形的左上角与右下角两个点的坐 标,并能计算出椭圆的面积。

14、 3仿照 Date 类设计一个 Time 类,按各种可能的格式输出时间。 第第 10 章章 类和对象(类和对象(2) 1定义一个 Dog 类,包含 name、age、sex、weight 等属性,设计一个构造函数,可以对这 些属性进行初始化。实现并测试这个类。 2 设计并测试一个名为 Ellipse 的椭圆类, 其属性为其圆心坐标以及半长轴和半短轴的长度。 设计一个构造函数对这些属性进行初始化,并通过成员函数计算出椭圆的面积。 3仿照 Date 类设计一个 Time 类,设计多个重载的构造函数,可以设置时间、进行时间的 加减运算、按各种可能的格式输出时间。 4合并 Date 类和 Time 类

15、为一个 DateAndTime 类,修改相应的成员函数,当时间递增到新 的一天时,应能够修改日期值。 第第 11 章章 继承继承 1从类 Person 中派生出一个教师类,新增的属性有:专业、职称和主讲课程(一门) ,并 为这些属性定义相应的方法。 2许多研究生既有学生的属性,又有教师的属性。试通过多重继承说明一个研究生类。 3修改例 11-5,从 Point 类中派生出一个 Line 类。Line 类增加一个数据成员 EndPoint,计 算线的长度。试比较一下与直接使用 Point 类来构造 Line 类的不同之处。 4从 Date 类和 Time 类派生一个 DateAndTime 类,

16、修改相应的成员函数,当时间递增到新 的一天时,应能够修改日期值。 第第 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 类增加一个成员函数,可以判断一个日期是否是系统 当

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > Windows相关

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号