面向对象的程序设计语言――C++(第二
版)-习题参
课后习题答案以及代码 习题参 第1章
1.填空题 C++语言概述 (1)函数说明,函数体
(2)声明区,主程序区,函数定义区 (3)多态性
(4)namespace,using (5)std (6)cin, (7)//
(8)对数据的操作 2.判断题
(1)对 (2)错 (3)错 (4)错 (5)错 3.改错题
(1)没有函数体,应改为 void main() {};
(2)语句没有分号,应改为 using namespace myspace;
(3)cout和操作符共同完成输出的功能,应改为 cout“ Input your name:\"; (4)应改为 #include iostream.h 4.简答题
5.编程题 (略) (略) 第2章
1. 选择题 基本数据类型、运算符与表达式 (1)B (2)D (3)B (4)D (5)B 课后习题答案以及代码 2.简答题
(1)(a)、(c)(e)、(f)、(g)、(h)、(i) (2)(a)、(g)、(i)、(j) (3) (a)5.5 (b)0 (c)20 (d)0,0 (e)1
(f)1,2 (g)3 (h)-40 (i)2 (j)3
(k)s1='0's1='9' (l)N!=0 3.读程序写结果 (1)0,15
(2)(1、1、1),(-1、-1、- (3)
(a)a*a+2*a*b+b*b (b)4.0/3.0*3.__-__R*R*R (c)5.0/9.0*(F-32) (d)b=ab=c (4) 36 41 43 (5) x=1
1) 4.编程题 (略) 第3章 1.选择题
(1)B (2)A (3)A (4)C 2.判断题
(1)错 (2)对 (3)对 (4)错 3.读程序写结果
(1) C++的控制语句5)A 5)错 课后习题答案以及代码 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5 (2) 1 1 2 1 1 2 3 2 1 1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1 (3)
( ( j的值为0; i的值为2; 4.编程题 (略) 第4章
1. 填空题 函数 (1)void
(2)静态全局变量,static (3)函数重载 (4)inline (5)递归函数
(6)宏定义命令,文件包含命令,条件编译命令 2.判断题
(1)错 (2)错 (3)错 (4)错 (5)错 (6)对 (7)错 (8)错 (9)对 (10)对 3.读程序写结果 (1) x=7,y=4 x=9,y=5 (2) 34.56 101
(3) 16 22 28 (4) 12 15 18 21 24 课后习题答案以及代码 (5) 2,1,4,1,3,2,1, 4.简答题
5.编程题 (略) (略) 第5章
1.选择题 构造数据类型
(1)C (2)D (3)A (4)B (5)C 2.判断题
(1)错 (2)对 (3)对 (4)错 (5)错 3.读程序写结果 (1) 153 (2) 42
2 5 6 8 10 (3) __,21 (4) 4 19 (5) 6904 (6) 4 3 2 1
4.编程题 (略) 第6章 1.填空题
(1) 类,对象,类 (2) 数据成员,成员函数 (3) 不能
(4) private,protected,public, (5) 成员函数 类和对象
private 课后习题答案以及代码 (6) friend
(7) 类名,作用域运算符
(8) 对象名.成员名,指针变量名-成员名,(*指针变量名).成员名
(9) 构造,析构,构造,析构 (10)常量数据,引用数据 (11)全局,数据类型,所属的类 (12)常成员,只读 (13)成员,友元
(14)类数据成员,类成员函数 (15)this (16)浅拷贝 2.选择题
(1)C (2)C (3)B (4)C (5)B (6)C (7)D (8)B (9)C (10)D (11)A (12)C (13)D (14)D (15)B 3.改错题
(1)man1.salary=1000.00; 不能在类外访问类的私有成员 (2)float r=0;和float c=0; 类本身是抽象的,不能在类的定义体中给其数据成员赋值
}后缺少分号“;”
(3)成员函数void setdata(float x1,float y1,float r);没有实现 (4)构造函数名point()应与类名同名,为Point 没有头文件包含#include iostream.h 4.读程序写结果题 (1) x=0,y=0 x=100,y=200 (2) x=100,y=200 x=1000,y=2022年 t=3.14 (3) Sta::fun2()=10 s.fun2()=11 r.a=20 (4)
Constructor1 called! x=0
Constructor2 called! x=100
Destructor called! Destructor called! (5)
课后习题答案以及代码 57 5.简答题
6.编程题 (略) (略) 第7章 1.填空题 (1)继承
(2)基类,派生类
(3)private,protected,public,private (4)不可访问,保护,公有 (5)私有
(6)单(一),多(重) (7)赋值兼容规则 (8)静态,动态 (9)抽象类
2.选择题 继承和派生
(1)B (2)A (3)B (4)C (5)B (6)A (7)D (8)B (9)B (10)B
(11)D (12)B 3.改错题
(1)本题的错误主要是数据成员的访问权限问题:基类的私有成员在派生类中不可访问,如fb()函数中的a3=30;语句;类的私有和保护成员在类外不能访问,如main函数中的x.a2 =20;.a3=30; ,y.a2=200; ,y.a3=300; ,y.b2=2022年;和y.b3=3000;语句。
(2)本题的错误主要是成员函数的访问权限问题:由于派生类Derived是基类Base的保护派生类,所以基类中的私有成员变成派生类的不可访问成员,而基类的保护和公有成员则变成派生类的保护成员。对于类的不可访问和保护成员在类外是不能访问的,故main函数中的语句obj.funl();,obj.fun2(); 和obj.fun3(); 是错误的。
4.读程序写结果题 (1) d=110 b=190 d=110 d=110 (2) d=110
b=190 d=110 b=90 (3)
课后习题答案以及代码 基类B1的构造函数被调用 基类B3的构造函数被调用 基类B2的构造函数被调用 派生类D的构造函数被调用 派生类D的析构函数被调用 基类B2的析构函数被调用 基类B3的析构函数被调用 基类B1的析构函数被调用 (4) A B C D D (5) A
B D D (6) A A B D D (7) A B C D D (8) 5 25 5.简答题 6.编程题 第8章
(略)
(略) 1.填空题 运算符重载 (1) 函数重载
(2) 重载为类的成员函数,重载为类的友元函数 (3) Operator 课后习题答案以及代码 (4) 1,2 (5) 友元 2.选择题
(1)B (2)D (3)A (4)D (6)C (7)C (8)C 3.简答题
4.编程题 (略) (略) 第9章 1.填空题
(1)类模板,函数模板 (2)类,对象 (3)数据类型 (4)fun(5) 2.选择题 模板
(1)C (2)B (3)C (4)B 3.简答题
5)B 5)D (( 4.编程题 (略) (略) 第10章 1.填空题 文件 (1)FILE,stdio.h
(2)stdio.h,fopen,fclose (3)顺序,随机 (4)cin,,cout, (5)ios
(6)fstream,open,close
(7)文件指针的当前位置,文件开头,文件尾 2.选择题
(1)B (2)B (3)A (4)D (5)B (6)D (7)C (8)B (9)A (10)B 3.简答题
4.编程题 (略) (略) 课后习题答案以及代码 第11章 1.填空题
(1)字符数组,string类 (2)string
(3)容器,迭代器,算法 string类与标准模板库STL
(4)顺序,关联 (5)指针 (6)函数模板 2.简答题 (略) 3.编程题 (略) 1.填空题
(1)throw,try,
catch