《C++语言基础教程 教学课件 ppt 作者 吕凤翥习题答案 1_ 第9章》由会员分享,可在线阅读,更多相关《C++语言基础教程 教学课件 ppt 作者 吕凤翥习题答案 1_ 第9章(6页珍藏版)》请在金锄头文库上搜索。
1、第9章 习题解答9.1判断题对的有2,4,7,8,13,15,16,199.2单选题CCABD ADBCD9.3填空题1. A *const p;2. A const *p;3. A a5;4. A *pa5;5. A *p; p=new A(5);6. A a1,*pa; pa=new A3;7. static A sa;8. A a1; a1=A(8);9.4程序结果1. Default constructor called.0Default constructor called.0Default constructor called.0Default constructor called
2、.0Destructor called.2Destructor called.3Destructor called.4Destructor called.52345Destructor called.5Destructor called.4Destructor called.3Destructor called.22. 1234Destructor called.1Destructor called.2Destructor called.3Destructor called.43. Default constructor called.Default constructor called.De
3、fault constructor called.Default constructor called.Destructor called.1Destructor called.2Destructor called.3Destructor called.41234Destructor called.4Destructor called.3Destructor called.2Destructor called.14. Construct called.d1=5,d2=7Construct called.d1=3,d2=6Construct called.d1=7,d2=9Construct c
4、alled.d1=1,d2=4Destructor called.d1=13,d2=23Destructor called.d1=12,d2=22Destructor called.d1=11,d2=21Destructor called.d1=10,d2=205. Constructor called.e1=5,e2=6Constructor called.e1=3,e2=4In FunE(E *e).e1=3,e2=4In FunE(E &e).e1=3,e2=46. 1059.5编程题 1. #include const int Max=50;class Stackpublic: Sta
5、ck() Top=-1; void Push(const int a); int Pop(); int Peek() if(Top=-1) return 0; return ListTop; bool IsEmpty() if(Top=0) return true; else return false; bool IsPull() if(Top=Max-1) return true; else return false; private: int ListMax; int Top;void Stack:Push(const int a) if(Top=Max-1) return; Top+;
6、ListTop=a;int Stack:Pop() int element;if(Top=-1) return 0; element=ListTop; Top-;return element;void main()int n=1; Stack S2; for(int i=0;i5;i+) S0.Push(n+); for(i=0;i4;i+) S1.Push(10+n+); coutS0.Peek()endl; coutS1.Peek()endl; for(i=1;i5;i+) S0.Pop(); for(i=1;i4;i+) S1.Pop(); coutS0.Peek()endl; cout
7、S1.Peek()endl;coutS0.IsEmpty()endl; coutS1.IsPull()endl; 2. #include #include class Studentpublic: Student(char s,int n) strcpy(name,s); score=n; friend void MaxScore(Student *);private: char name20;int score;void MaxScore(Student *s) int maxScore=s0.score;int m=0; for(int i(0);imaxScore) maxScore=s
8、i.score; m=i; coutsm.nametsm.scoreendl;void main() Student stu5=Student(Ma,89),Student(Gao,90),Student(Mao,98), Student(Li,85),Student(Lu,88); Student *ps=stu;MaxScore(stu); 3. #include class A public:A() a=0; coutDefault constructor called.n; A(int i) a=i; coutConstructor called.aendl; A() coutDest
9、ructor called.aendl; private: int a;class B public: B() b=0; coutDefault constructor called.n; B(int i,int j,int k):two(i),one(j) b=k; coutConstructor called.bendl; B() coutDestructor called.bendl; private:A one; A two;int b;void main() B b0;B b(3,4,5); 9.6 回答问题1. 答:可以,使用new运算符。2. 答:对象数组的元素是对象,而对象指针数组的元素是指向对象的指针。3. 答:取决于定义子对象时的顺序,与构造函数的成员初始化列表中给出的子对象初始化项顺序无关。4. 答:不会被系统释放。5. 答:因为使用对象引用作函数形参时实参直接用对象名,这比用对象指针作函数形参简单明了。6