新标准C++程序设计教程习题及答案第12章.docx
- 文档编号:10365469
- 上传时间:2023-02-10
- 格式:DOCX
- 页数:9
- 大小:15.65KB
新标准C++程序设计教程习题及答案第12章.docx
《新标准C++程序设计教程习题及答案第12章.docx》由会员分享,可在线阅读,更多相关《新标准C++程序设计教程习题及答案第12章.docx(9页珍藏版)》请在冰豆网上搜索。
新标准C++程序设计教程习题及答案第12章
第12章
1.以下说法中正确的是()。
A.一个类一定会有无参构造函数
B.构造函数的返回值类型是void
C.一个类只能定义一个析构函数,但可以定义多个构造函数
D.一个类只能定义一个构造函数,但可以定义多个析构函数
答案:
C
2.对于强过new运算符牛成的对象()。
A.程程序结束时自动析构
B.执行delete操作时才能析构
C.在包含new语句的函数返回时自动析构
D.在执行delete操作时会析构,如果没有执行delete操作,则在程序结束时自动析构
答案:
D
3.如果某函数的返回值是个对象,则该函数被调用时,返回的对象()。
A.是通过复制构造函数初始化的
B.是通过无参构造函数初始化的
C.用哪个构造函数初始化取决于函数的return语句是怎么写的
D.不需要初始化
答案:
C
4.以下说法LE确的是()。
A.在静态成员函数中可以调用同类的其他任何成员函数
B.const成员函数不能作用于非const对象
C.在静态成员函数中不能使用this指针
D.静态成员变量每个对象有各自的一份
答案:
C
5以下关于this指针的说法中不正确的是()。
A.const成员函数内部不可以使用this指针
B.成员函数内的this指针,指向成员函数所作用的对象
C.在构造函数内部可以使用this指针
D.在析构函数内部可以使用this指针
答案:
A
6.请写出下面程序的输出结果。
classCSample{
intx;
public:
CSample(){cout<<”C1”< CSample(intn){ x=n; cout<<”C2,x=”< } }; intmain(){ CSamplearray1[2]; CSamplearray2[2]={6,8}; CSamplearray3[2]={12}; CSample*array4=newCsample[3]; Return0; } 答案: C1 C1 C2,x=6 C2,x=8; C2,x=12 C1 C1 C1 C1 7.请写出下面程序的运行结果: 4,6 请填空: #include usingnamespacestd; classSample{ public: intv; Sample(){} Sample(intn): v(n){}; Sample(constSample&x){v=2+x.v;} }; Sample&PrintAndDouble(Sampleo) { cout< o.v=2*o.v; returno; } intmain() { Samplea(5); Sampleb=a; Samplec=PrintAndDouble(b); cout< cout< //cout< Sampled; d=a; cout< return0; } 答案: 9 20 5 8.下面程序的输出结果是。 #include usingnamespacestd; classA{ intval; public: A(intn){ val=n; } intGetVal(){ returnval; } }; classB: publicA{ private: intval; public: B(intn): __________{ }; intGetVal(){ returnval; } }; intmain(){ Bb1 (2); cout< : GetVal()<<"\n"; return0; } 答案: Val(4),A(6) 9.下面程序的输出结果是 0 5 请填空: #include usingnamespacestd; classA{ public: intval; A(_______){ val=n; } ______GetObj(){ return_________; } }; intmain(){ Aa; cout< a.GetObj()=5; cout< } 答案: intn=0 A& *this 10.下面程序的输出结果是: 10 请补充Sample类的成员函数,不能增加成员变量 #include usingnamespacestd; classSample{ public: intv; Sample(intn): v(n){ }; ______________________ Sample(Sample&obj){ this->v=2*obj.v; }; }; intmain(){ Samplea(5); Sampleb=a; cout< return0; } 答案: Sample(Sample&obj){ This->v=2*obj.v; }; 11.下面程序的输出结构是: 5,5 5,5 请填空: #include usingnamespacestd; 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(x.v),b(x.b.k) 12.完成附录“魔静世界大作业”中提到的第一阶段作业 (省略)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 新标准 C+ 程序设计 教程 习题 答案 12