ImageVerifierCode 换一换
格式:DOCX , 页数:67 ,大小:30.63KB ,
资源ID:9364215      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9364215.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ly新标准C++程序的设计教材1120章课后题答案.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

ly新标准C++程序的设计教材1120章课后题答案.docx

1、ly新标准C+程序的设计教材1120章课后题答案新标准C+程序设计教材11-20章课后题答案第11章:1简述结构化程序设计有什么不足,面向对象的程序如何改进这些不足。 答案: 结构化程序设计的缺点: (1)用户要求难以在系统分析阶段准确定义,致使系统在交付使用时产生许多问题。 (2)用系统开发每个阶段的成果来进行控制,不适应事物变化的要求。 (3)系统的开发周期长。 面向对象的程序设计如何改进这些不足: 面向对象程序设计技术汲取了结构忧程序设计中好的思想,并将这些思想与一些新的、强大的理念相结台,从而蛤程序设计工作提供了一种全新的方法。通常,在面向对象的程序设计风格中,会将一个问题分解为一些相

2、互关联的子集,每个子集部都包含了相关的数据和函数。同时会以某种方式将这些子集分为不同等级,而一个对象就是已定义的某个类型的变量。 2以下说怯正确的是( )。 A.每个对象部都有成员函数的实现代码 B.一个类的私有成员函数部不能访问本类的私有成员变量 C.类的成员函数之间可以互相调用 D.编写一个类时,至少要编写一个成员函数 答案:C3以下对类A的定义正确的是( )。 Aclass A Bclass A private: int v; int v; A * next; public: void Func() void Func() ; Cclass A D. class A int v; int

3、 v; public: public: void Func(); A next; ; void Func() A::void Func() ; 答案:B4假设有以下类A: class A public: int func(int a) return a * a; ; 以下程序段不正确的是( )。 AA a; a.func(5); BA * p = new A; p-func(5); CA a; Ar =a ; r.func(5); DA a,b; if(a!=b) a.func(5); 答案:D5以下程序段不正确的是(A)。 Aint main() class A int v; A a; a.

4、v= 3; return 0; Bint main() class A public: int v; A * p; ; A a; a.p=&a; return 0; Cint main() class A public: int v; ; A * p = new A; p- v =4; delete p; return 0; D. im main() class A public: int v; A * p; ; A a: a. p = new A; delete a.p; return 0; 答案:A 6实现一个学生信息处理程序。输入:,年龄,学号(整数)。第一学年平均成绩 第二学年平均成绩

5、,第三学年平均成绩,第四学年平均成绩。输出:,年龄,学号, 4年平均成绩。例如: 输入: Tom 18 7817 80 80 90 70 输出: Tom,18,7817,80 要现一个代表学生的类,并非所有成员变量都是私有的。 答案:#include #include#include /#includeusing namespace std;class Student private: int age, score1, score2, score3, score4; char name100, num100; double average;public: Student(char aname,

6、 int aage, char anum,int ascore1, int ascore2, int ascore3, int ascore4) strcpy(name, aname); age = aage; strcpy(num, anum); score1 = ascore1; score2 = ascore2; score3 = ascore3; score4 = ascore4; double getAverage() return (score1 + score2 + score3 + score4) / 4; char * getName() return name; int g

7、etAge() return age; char * getNum() return num; ;int main() char name100, a, num100; int age, score1, score2, score3, score4; cin.getline(name, 100, ); cin age; / a = getchar(); cin.getline(num, 100, ); cin score1 score2 score3 score4; Student s(name, age, num, score1, score2, score3, score4); cout

8、s.getName() , s.getAge() , s.getNum() , s.getAverage(); return 0;第12章1以下说法中正确的是( )。A 一个类一定会有无参构造函数B构造函数的返回值类型是voidC一个类只能定义一个析构函数,但可以定义多个构造函数D一个类只能定义一个构造函数,但可以定义多个析构函数答案:C2对于强过new运算符牛成的对象( )。A程程序结束时自动析构B执行delete操作时才能析构C在包含new语句的函数返回时自动析构D在执行delete操作时会析构,如果没有执行delete操作,则在程序结束时自动析构答案:D3如果某函数的返回值是个对象,则该

9、函数被调用时,返回的对象( )。A是通过复制构造函数初始化的B是通过无参构造函数初始化的C用哪个构造函数初始化取决于函数的return语句是怎么写的D不需要初始化答案:C4以下说法LE确的是( )。A在静态成员函数中可以调用同类的其他任何成员函数Bconst成员函数不能作用于非const对象C在静态成员函数中不能使用this指针D静态成员变量每个对象有各自的一份答案:C5以下关于this指针的说法中不正确的是( )。Aconst成员函数部不可以使用this指针B成员函数的this指针,指向成员函数所作用的对象C在构造函数部可以使用this指针D在析构函数部可以使用this指针答案:A6请写出下

10、面程序的输出结果。class CSample int x;public: CSample() cout”C1”endl; CSample(int n) x=n; cout”C2,x=”nendl; ;int main() CSample array12; CSample array22=6,8; CSample array32=12; CSample *array4=new Csample3; Return 0;答案:C1C1C2,x=6C2,x=8;C2,x=12C1C1C1C17下面程序的输出结果是。#include using namespace std;class Sample pub

11、lic: int v; Sample() Sample(int n) :v(n) ; Sample(const Sample & x) v = 2 + x.v; ;Sample& PrintAndDouble(Sample o) cout o.v; o.v = 2 * o.v; return o;int main() Sample a(5); Sample b = a; Sample c = PrintAndDouble(b); cout endl; cout c.v endl; /cout hex c.v endl; Sample d; d = a; cout d.v; return 0;答

12、案:92058请写出下面程序的运行结果:4,6请填空:#includeusing namespace std;class A int val; public: A(int n) val=n; int GetVal() return val; ;class B:public A private: int val; public: B(int n):_ ; int GetVal() return val; ;int main() B b1(2); coutb1.GetVal(),b1.A:GetVal()n; return 0; 答案:Val(4),A(6)9下面程序的输出结果是05请填空:#in

13、cludeusing namespace std;class A public: int val; A(_) val=n; _ GetObj() return _; ;int main() A a; couta.valendl; a.GetObj()=5; couta.valendl;答案:int n=0A&*this10下面程序的输出结果是:10请补充Sample类的成员函数,不能增加成员变量#includeusing namespace std;class Sample public: int v; Sample(int n):v(n) ; _ Sample(Sample &obj) th

14、is-v = 2 * obj.v; ;int main() Sample a(5); Sample b=a; coutv=2*obj.v;11.下面程序的输出结构是:5,55,5请填空:#includeusing namespace std;class Base public: int k; Base(int n):k(n) ; class Big public: int v; Base b; Big _ ; Big_ ; ;int main() Big a1(5); Big a2=a1; couta1.v,a1.b.kendl; couta2.v,a2.b.kendl; return 0;答

15、案:(int n):v(n),b(n)(Big &x):v(x.v),b(x.b.k)12完成附录“魔静世界大作业”中提到的第一阶段作业(省略)第13章1如果将运算符“”重载为某个类的成员运算符(也即成员函数),则该成员函数的参数个数是( )。A0个 B . 1个 C . 2个 D3个答案:B 2如果将运算符“*”重载为菜个类的成员运算符(也即成员函数),则该成员函数的参数个数是( )。A0个 B . 1个 C . 2个 D . 0个或1个均可答案:D3下面程序的输出是 3+4i 5+6i请补充Complex类的成员函数,不能加成员变量。#include#includeusing namesp

16、ace std;class Complexprivate: double r,i;public: void Print() coutr+iiendl; /在这里补充/在这里补充;int main() Complex a; a=3+4i; a.Print(); a=5+6i; a.Print(); return 0;答案: Complex &operator=(const char t) if(!t) r=0.0; i=0.0; else r = t0 - 0; i = t2 - 0; return *this; 4下面的Mylnt类只有一个成员变量。Mylnt类部的部分代码被隐藏了。假设下面的

17、程序能编译通过,且输出结果是:4,1 请写出被隐藏的部分(要求编写的容必须是能全部救进Mylnt类部的,Mylnt的成员函数不允许使用静态变量)。#includeusing namespace std;class MyInt int nVal; public: MyInt(int n) nVal=n; int ReturnVal() return nVal; / 在这里补充 /在这里补充;int main() MyInt objInt(10); objInt-2-1-3; coutobjInt.ReturnVal(); cout,; objInt-2-1; coutobjInt.ReturnV

18、al(); return 0; 答案: MyInt& operator - (int i) nVal -= i; return *this;5下面的程序输出结果是 (4,5) (7,8)请填空:#includeusing namespace std;class Point private: int x; int y; public: Point(int x_,int y_):x(x_),y(y_) ; / _;_operator(_,const Point & p) _; Return_;int main() coutPoint(4,5)Point(7,8); return 0;答案:frie

19、nd ostream& operator (ostream &o,const Point &p); friend ostream &ostream &oo(p.x,p.y)endlo6编写一个二维数组类Array2,使得程序的输出结果是0,1,2,3,4,5,6,7,8,9,10,11,next0,1,2,3,4,5,6,7,8,9,10,11,答案:#include #include using namespace std;class Array2private: int row;/数组行数 int column;/数组列数 int* ptr;/指向二维数组的指针public: Array2

20、() ptr = NULL; Array2(int paraRow, int paraColumn):row(paraRow),column(paraColumn) ptr = new introw * column; Array2(Array2& a):row(a.row),column(a.column) ptr = new introw * column; memcpy(ptr, a.ptr, sizeof(int)*row*column); Array2& operator= (const Array2 &a) if (ptr) delete ptr; row = a.row; col

21、umn = a.column; ptr = new introw * column; memcpy(ptr, a.ptr, sizeof(int)*row*column); return *this; Array2() if (ptr) delete ptr; int* operator (int i) return ptr + i*column; int& operator() (int i, int j) return ptri*column + j; ;int main() Array2 a(3,4); int i,j; for( i = 0;i 3; +i ) for( j = 0;

22、j 4; j + ) aij = i * 4 + j; for( i = 0;i 3; +i ) for( j = 0; j 4; j + ) cout a(i,j) ,; cout endl; cout next endl; Array2 b; b = a; for( i = 0;i 3; +i ) for( j = 0; j 4; j + ) cout bij ,; cout endl; return 0;7编写一个Mystring类,使得程序的输出结果是1. abcd-efgh-abcd-2. abcd-3.4. abcd-efgh-5. efgh-6. c7. abcd-8. ijAl

23、-9. ijAl-mnop10. qrst-abcd-11. abcd-qrst-abcd- uvw xyzaboutbigmetakeabcdqrst-abcd-答案: #include #include #include #include using namespace std;class MyString : public string public: MyString():string() ; MyString( const char * s):string(s); MyString( const string & s ): string(s); MyString operator()

24、 ( int s, int l) return this-substr(s,l); ; int main() MyString s1(abcd-),s2,s3(efgh-),s4(s1); MyString SArray4 = big,me,about,take; cout 1. s1 s2 s3 s4 endl; s4 = s3; s3 = s1 + s3; cout 2. s1 endl; cout 3. s2 endl; cout 4. s3 endl; cout 5. s4 endl; cout 6. s12 endl; s2 = s1; s1 = ijkl-; s12 = A ; c

25、out 7. s2 endl; cout 8. s1 endl; s1 += mnop; cout 9. s1 endl; s4 = qrst- + s2; cout 10. s4 endl; s1 = s2 + s4 + uvw + xyz; cout 11. s1 endl; sort(SArray,SArray+4); for( int i = 0;i 4;i + ) cout SArrayi endl; /s1的从下标0开始长度为4的子串 cout s1(0,4) endl; /s1的从下标5开始长度为10的子串 cout s1(5,10) endl; return 0;第14章1以下说法不正确的是(假设在公有派生情况下)( )。A可以将基类对象赋值给派生类对象B可以将派生类对象的地址赋值给基类指

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1