C++面向对象程序设计教程(第3版)—-陈维兴,林小茶课后习题答案 下载本文

.

#define T1 a+a #define T2 T1-T1

cout << \ << T2 <

上面这个程序,初看应该输出 T2 is 0

但是实际上,得出T2 is 2

如果把#define换成const, 则可以输出想要的结果。

2.22 用动态分配空间的方法,计算Fibonacci数列的前20项,并存储到动态分配的空间中。

#include using namespace std; int main() {

int *pi = new int[20];

精选范本

.

*pi = 1; pi[1] = 1;

for(int i = 2; i < 20; i++) {

pi[i] = pi[i - 2] + pi[i - 1]; } return 0; }

2.23 重载sroot函数,输出一个数的二次方根。

#include using namespace std;

double sroot(int num) {

return (double)sqrt((double)num); }

double sroot(long num) {

return (double)sqrt((double)num);

精选范本

.

}

double sroot (double num) {

return (double)sqrt(num); } int main() {

return 0; }

2.24 解决百钱问题。将一元人民币换成1、2、5分的硬币,有多少种换法?

#include using namespace std; int main() {

int num = 0; //总共换法的总数。初始化为0。 for(int i = 0; i <= 100; i++) {

for(int j = 0; j <= 50; j++) {

if((i + 2*j) > 100)

精选范本

.

{ break; }

for(int k = 0; k <= 20; k++) {

if((i + 2*j + 5*k) == 100) {

num++;

cout << \分\ << i << \个;\ << \分\ << j << \个;\ << \分\ << k << \个;\ << endl; }

if ((i + 2*j + 5*k) > 100) { break; } } } }

cout << num << endl; return 0; }

精选范本