您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > ly-新标准C++程序设计教材11-20章课后题答案
v1.0可编辑可修改1新标准C++程序设计教材11-20章课后题答案第11章:1.简述结构化程序设计有什么不足,面向对象的程序如何改进这些不足。答案:结构化程序设计的缺点:(1)用户要求难以在系统分析阶段准确定义,致使系统在交付使用时产生许多问题。(2)用系统开发每个阶段的成果来进行控制,不适应事物变化的要求。(3)系统的开发周期长。面向对象的程序设计如何改进这些不足:面向对象程序设计技术汲取了结构忧程序设计中好的思想,并将这些思想与一些新的、强大的理念相结台,从而蛤程序设计工作提供了一种全新的方法。通常,在面向对象的程序设计风格中,会将一个问题分解为一些相互关联的子集,每个子集内部都包含了相关的数据和函数。同时会以某种方式将这些子集分为不同等级,而一个对象就是已定义的某个类型的变量。2.以下说怯正确的是()。A.每个对象内部都有成员函数的实现代码B.一个类的私有成员函数内部不能访问本类的私有成员变量C.类的成员函数之间可以互相调用D.编写一个类时,至少要编写一个成员函数答案:C3.以下对类A的定义正确的是()。A.classA{B.classA{private:intv;intv;A*next;public:voidFunc(){}voidFunc(){}}};C.classA{D.classA{intv;intv;public:public:voidFunc();Anext;};voidFunc(){}A::voidFunc(){}};答案:Bv1.0可编辑可修改24.假设有以下类A:classA{public:intfunc(inta){returna*a;}};以下程序段不正确的是()。A.Aa;(5);B.A*p=newA;p-func(5);C.Aa;A&r=a;(5);D.Aa,b;if(a!=b)(5);答案:D5.以下程序段不正确的是(A)。A.intmain(){classA{intv;}Aa;=3;return0;B.intmain(){classA{public:intv;A*p;};Aa;=&a;return0;C.intmain(){classA{public:intv;};A*p=newA;p-v=4;deletep;return0;D.immain(){classA{public:intv;A*p;};Aa:a.p=newA;delete;return0;答案:A6.实现一个学生信息处理程序。输入:姓名,年龄,学号(整数)。第一学年平均成绩·第二学年平均成绩,第三学年平均成绩,第四学年平均成绩。输出:姓名,年龄,学号,4年平均成绩。例如:输入:Tom18781780809070输出:Tom,18,7817,80要求实现一个代表学生的类,并非所有成员变量都是私有的。v1.0可编辑可修改3答案:#includeiostream#includecstring#includecstdlib面程序的输出结构是:5,55,5请填空:#includeiostreamusingnamespacestd;classBase{public:intk;Base(intn):k(n){}};classBig{public:intv;Baseb;Big__________{};Big___________{};};intmain(){Biga1(5);Biga2=a1;cout,cout,return0;}答案:(intn):v(n),b(n)(Big&x):v,b完成附录“魔静世界大作业”中提到的第一阶段作业(省略)v1.0可编辑可修改4第13章1如果将运算符“[]”重载为某个类的成员运算符(也即成员函数),则该成员函数的参数个数是()。A.0个B.1个C.2个D.3个答案:B2.如果将运算符“*”重载为菜个类的成员运算符(也即成员函数),则该成员函数的参数个数是()。A.0个B.1个C.2个D.0个或1个均可答案:D3.下面程序的输出是3+4i5+6i请补充Complex类的成员函数,不能加成员变量。#includeiostream#includecstringusingnamespacestd;classComplex{private:doubler,i;public:voidPrint(){coutr+iiendl;}abcd-efgh-abcd-2.abcd-3.4.abcd-efgh-5.efgh-6.c7.abcd-8.ijAl-9.ijAl-mnop10.qrst-abcd-v1.0可编辑可修改511.abcd-qrst-abcd-uvwxyzaboutbigmetakeabcdqrst-abcd-答案:#includecstdlib#includeiostream#includestring#includealgorithmusingnamespacestd;classMyString:publicstring{public:MyString():string(){};MyString(constchar*s):string(s){};MyString(conststring&s):string(s){};MyStringoperator()(ints,intl){returnthis-substr(s,l);}};intmain(){MyStrings1(abcd-),s2,s3(efgh-),s4(s1);MyStringSArray[4]={big,me,about,take};cout1.s1s2s3s4endl;s4=s3;s3=s1+s3;cout2.s1endl;cout3.s2endl;cout4.s3endl;cout5.s4endl;cout6.s1[2]endl;v1.0可编辑可修改6s2=s1;s1=ijkl-;s1[2]='A';cout7.s2endl;cout8.s1endl;s1+=mnop;cout9.s1endl;s4=qrst-+s2;cout10.s4endl;s1=s2+s4+uvw+xyz;cout11.s1endl;sort(SArray,SArray+4);for(inti=0;i4;i++)coutSArray[i]endl;成附魔兽世界作业中的的二阶段。(省略)第15章1.以下说法正确的是()A.在虚函数中不能使用this指针B.在构造甬数中调用虚函数,不是动态联编C.抽象类的成员函数都是纯虚函数D.构造函数和析构函数都不是虚构函数答案:B2.写出下面程序的输出结果#includeiostreamusingnamespacestd;classA{public:A(){}virtualvoidfunc(){coutA::funcendl;}~A(){v1.0可编辑可修改7}virtualvoidfund(){coutA::fundendl;}};classB:publicA{public:B(){func();}voidfun(){func();}~B(){fund();}};classC:publicB{public:C(){}voidfunc(){coutC::funcendl;}~C(){fund();}voidfund(){coutC::fundendl;}};intmain(){Cc;return0;}v1.0可编辑可修改8答案:A::funcC::fundA::fund3.写出下面程序的输出结果。#includeiostreamusingnamespacestd;classA{public:virtual~A(){coutDestructAendl;}};classB:publicA{public:virtual~B(){coutDestructBendl;}};classC:publicB{public:virtual~C(){coutDestructCendl;}};intmain(){A*pa=newC;deletepa;Aa;return0;}答案:DestructCDestructBv1.0可编辑可修改9DestructADestructA4.写出下面程序的输出结果:#includeiostreamusingnamespacestd;classA{public:virtualvoidfunc(){coutA::funcendl;}virtualvoidfund(){coutA::fundendl;}voidfun(){coutA::funendl;}};classB:publicA{public:B(){func();}voidfun(){func();}};classC:publicB{public:C(){}voidfunc(){coutC::funcendl;}voidfund(){v1.0可编辑可修改10coutC::fundendl;}};intmain(){A*pa=newB();pa-fun();B*pb=newC();pb-fun();return0;}答案:A::funcA::funA::funcC::func5.下面程序的输出结果是#includeiostreamusingnamespacestd;classA{private:intnVal;public:voidFun(){coutA::Funendl;}voidDo(){coutA::Doendl;}};classB:publicA{public:virtualvoidDo(){coutB::Doendl;}v1.0可编辑可修改11};classC:publicB{public:voidDo(){coutC::Doendl;}voidFun(){coutC::Funendl;}};voidCall(B&p){();();}intmain(){Cc;Call(c);system(PAUSE);return0;}答案:A::FunC::Do6.下面程序的输出结果是destructorBdestructorA请完整写出classA。限制条件:不能为classA编写构造函数。#includeiostreamusingnamespacestd;classA{______________________________};classB:publicA{v1.0可编辑可修改12~B(){coutdestructorBendl;}};intmain(){A*pa;pa=newB;deletepa;return0;}答案:public:virtual~A(){coutdestructorAendl;}7.下面的程序输出结果是A::FunA::DoA::FunC::Do请填空:#includeiostreamusingnamespacestd;classA{private:intnVal;public:voidFun(){coutA::Funendl;}virtualvoidDo(){coutA::Doendl;}v1.0可编辑可修改13};classB:publicA{public:virtualvoidDo(){coutB::Doendl;}};classC:publicB{public:voidDo(){coutC::Doendl;}voidFun(){coutC::Funendl;}};voidCall(________){p-Fun();p-Do();}intmain(){Call(newA
本文标题:ly-新标准C++程序设计教材11-20章课后题答案
链接地址:https://www.777doc.com/doc-6321303 .html