面向对象程序设计课后题答案
第二章C++概述
【2.6】D
【2.7】D
【2.8】A
【2.9】A
【2.10】B
【2.11】A
【2.12】C
【2.13】B
【2.14】D
【2.15】C
【2.16】D
【2.17】C
【2.18】程序的运行结果:
101
【2.19】程序的运行结果:
10 10
【2.20】程序的运行结果:
10
20
【2.22】编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。
#include <iostream.h>
int main()
{
int *p,i;
p=new int[20];
p[0]=1;
p[1]=1;
for(i=2;i<20;i++)
{
p[i]=p[i-1]+p[i-2];
}
for(i=0;i<20;i++)
{
cout<<p[i]<<endl;
}
return 0;
}
【2.23】编写一个C++风格的程序,建立一个被称为sroot()的函数,返回其参数的二次方根。重载sroot()3次,让它返回整数、长整数与双精度数的二次方根。
#include <iostream.h>
#include<math.h>
double sroot(int m)
{
return sqrt(m);
}
double sroot(long m)
{
return sqrt(m);
}
double sroot(double m)
单兵导弹{
return sqrt(m);
}
int main()
{
cout<<"sroot(145)="<<sroot(145)<<endl;
cout<<"sroot(123456)="<<sroot(123456)<<endl;
cout<<"sroot(1.44)="<<sroot(1.44)<<endl;
return 0;
}
【2.24】编写一个C++风格的程序,解决百钱问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法?
#include <iostream.h>
int main()
{
大创意
int k=0;
for(int i=0;i<=20;i++)
新白娘子传奇全部歌曲 {
for(int j=0;j<=50;j++)
{
if(100-5*i-2*j>=0)
{
k++;男士着装
}
药品常识 }
}
cout<<"将一元人民币兑换成1、2、5分的硬币,共有"<<k<<"种换法"<<endl;
return 0;地铁怎么换乘
}
【2.25】编写一个C++风格的程序,输入两个整数,将它们按由小到大的顺序输出。要求使用变量的引用。
void change(int &a,int &b)
{
int t=a;
肠胃炎吃什么食物 a=b;
b=t;
}
int main()
{
int m,n;
cout<<"请输入两个整数:";
cin>>m>>n;
if(m>n)
change(m,n);
cout<<"这两个数从小到大依次为: "<<m<<" "<<n<<endl;
return 0;
}
【2.26】编写一个C++风格的程序,用二分法求解f(x)==0的根。
假设方程为:2*x*x*x-4*x*x+3*x-6=0
#include <iostream>
#include<cmath>
using namespace std;
double f(double x)
{
return 2*x*x*x-4*x*x+3*x-6;
}
int main()
{手绘墙画
double left,right,middle,ymid,yleft,yright;
cout<<"请按由小到大的顺序输入两个数:";
cin>>left>>right;
yleft=f(left);
yright=f(right);
if(yleft*yright>0)
{
cout<<"您输入的两个数,用二分法无法求得方程的根"<<endl;
exit(0);
}
do{
middle=(left+right)/2;
ymid=f(middle);
if(yleft*ymid<0)
{
right=middle;
yright=ymid;
}
if (yright*ymid<0)