C++面向对象程序设计习题解答与上机指导(第二版)源程序
更新时间:2023-11-06 05:20:01 阅读量: 教育文库 文档下载
C++面向对象程序设计习题解答与上机指导(第2版)
习题参考答案源代码
使用源程序的几点注意事项
(1) 由于源程序在复制、编辑、解压缩等过程中可能引起部分符号(主要是标点符号,如分号、冒号、逗号、引号)的字体、半全角等发生变化,在编译时可能被检出语法错误,只要使用“替换”功能,纠正后即能顺利运行。
(2) 有的C++系统(如Visual C++6.0)没有完全实现C++标准,它所提供的不带后缀的.h的头文件不支持友元运算符重载函数,在Visual C++6.0中编译会出错,这时可采用带后缀的.h头文件。将程序中的
#include
#include
第2章 C++基础
【2.2】下面是一个C程序,改写它,使它采用C++风格的I/O语句。 #include
{ int a,b,d,min;
printf(\ scanf(\ min=a>b? b:a;
for (d=2; d if (((a%d)==0)&&((b%d)==0)) break; if (d==min) { printf(\ return 0; } printf(\ return 0; } 【解】 #include { int a,b,d,min; cout<<\cin>>a; cin>>b; 1 min=a>b? b:a; for (d=2; d if (((a%d)==0)&&((b%d)==0)) break; if (d==min) { cout<<\ return 0; } cout<<\ return 0; } 【2.24】写出下列程序的运行结果。#include 运行结果:101 Please any key to continue。 【2.25】写出下列程序的运行结果。#include int main() { int a=5,b=10; f(a,b); cout< 结果:10 10 Please any key to continue。 【2.26】分析下面程序的输出结果。#include 2 i=100; ::i=i+1; cout<<::i< int &f(int &i) { i+=10; return i; } int main() { int k=0; int &m=f(k); cout< cout< return 0; } 运行结果:10 20 Please any key to continue。 【2.27】 编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。 【解】实现本题功能的程序如下: #include { int *p=new int[20]; //动态分配20个整型内存空间 *p=1; *(p+1)=1; //对前面2个内存空间赋值1 cout<<*p<<\ p=p+2; //p指向第3个内存空间 for (int i=3;i<=20;i++) { *p=*(p-1)+*(p-2); cout<<*p<<\ if (i%5==0) cout< p++; //p指向下一个内存空间; } return 0; } 【2.28】 编写一个C++风格的程序,建立一个被称为sroot的函数,返回其参数的二次方根。重载函数sroot三次,让它返回整数、长整数与双精度数的二次方根(计算二次方根时,可以使用标准库函数sqrt)。 【解】实现本题功能的程序如下: #include 3 } double sroot(long l) { return sqrt(l); } double sroot(double d) { return sqrt(d); } int main() { int i=12; long l=1234; double d=12.34; cout<<\的二次方根是:\cout<<\的二次方根是:\cout<<\的二次方根是:\return 0; } 【2.29】 编写一个C++风格的程序,解决百钱问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法? 【解】实现本题功能的程序如下: #include { int i,j,sum=0;; for(i=0;i<=20;i++) for (j=0;j<=50;j++) if (100-5*i-2*j>=0) { sum++; cout<<100-5*i-2*j<<\ } cout<<\ return 0; } 【2.30】编写一个C++风格的程序,输入两个整数,将它们按由小到大的顺序输出。要求使用变量的引用。 【解】实现本题功能的程序如下: #include { void change(int &,int &); int a,b; cin>>a>>b; if(a>b)change(a,b); cout< 4 } void change(int &a1,int &b1) { int temp; temp=a1; a1=b1; b1=temp; } 【2.31】编写C++风格的程序,用二分法求解f(x)=0的根。 【解】实现本题功能的程序如下: #include inline float f(float x) { return 2*x*x*x-4*x*x+3*x-6; } int main() { float left,right,middle,ym,yl,yr; cout<<\接收输入,确定第一组数据区域 cin>>left>>right; yl=f(left); yr=f(right); do { middle=(right+left)/2; ym=f(middle); if (yr*ym>0) { right=middle; yr=ym; } else { left=middle; yl=ym; } } while (fabs(ym)>=1e-6); cout<<\return 0; } 第3章 类和对象(一) 【3.18】写出下面程序的运行结果。 #include 5
正在阅读:
C++面向对象程序设计习题解答与上机指导(第二版)源程序11-06
第一次买菜作文500字02-04
2018-2024年中国氯化胆碱市场运行态势研究报告(目录) - 图文09-21
中国黄金集团投资金条05-29
基于三菱PLC五层电梯控制系统的设计06-24
湘渌教育简报203-08
俄罗斯特色的火炉06-20
!《可行性研究与项目经济评价》--第三章投资项目的财务数据测算03-14
上海市14校2017届联考高三英语试卷07-01
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- C++
- 源程序
- 上机
- 习题
- 程序设计
- 解答
- 面向
- 对象
- 指导
- NBI轴承
- 社会保险案例库
- 交流发电机之电压调节器!
- 新视野大学英语视听说教程第三版第一册第一单元录音文本
- 船舶英语
- 山东省建筑工程施工技术资料管理规程表格(597张) - 图文
- 2017年咨询工程师继续教育 - 大气污染治理工程技术导则试题与答案
- 《中原美玉》教案1
- 村居教学设计 - 图文
- 哈工大849经济学原理2013真题
- 关于表彰2009—2010学年度学社联系统先进集体和先进个人的决定(校团联字12号)
- 浅谈资源枯竭型城市如何成功转型
- 置换通气作业技术操作规程
- 安徽省阜阳一中2013届高三最后一次模拟英语试题 Word版含答案
- 第十二章 化学动力学基础(二)
- 刑法学练习习题库(总论)- 十二章起
- 工作心得:法治(普法)宣传教育工作中存在的问题和对策建议
- 重庆市农村家庭宴席管理暂行办法(2012)
- 2013 - 2014年交流调速系统期末考试复习提纲
- 2012年郑州城中村改造村(组)名单