77范文网 - 专业文章范例文档资料分享平台

C++习题与解答(3)

来源:网络收集 时间:2019-03-11 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

C.子对象的初始化要包含在构造函数中 D.一个类中只能有一个子对象 6.执行下列说明语句,其调用构造函数的次数为( A )。

A a[5],*p[2];其中,A是一个类名

A.5 B.6 C.7 D.10 7.下列关于运算符new的描述中,错误的是( D )。 A.它可以创建对象或变量

B.它可以创建对象数组或一般类型数组

C.用它创建对象或对象数组时要调用相应的构造函数 D.用它创建的对象可以不用delete运算符释放

8.下列关于运算符delete的描述中,错误的是( B )。

A.使用该运算符可以释放用new运算符创建的对象或对象数组 B.使用该运算符可以释放所有对象

C.使用delete运算符时会自动调用析构函数

D.用它释放对象数组时,它作用的指针名前要加下标运算符[ ] 9.定义不同存储类对象时,必须要加的存储类说明符是( C )。 A.auto B.extern C.statie D.register 10.下列关于this的描述中,错误的是( D )。

A.this是一个由系统自动生成的指针 B.this指针是指向对象的

C.this指针在用对象引用成员函数时系统创建的 D.this指针只能隐含使用,不能显式使用

7.3 填空题

已知:class A{ public:A (int i) { a=i;}

void print( ) { cont<

要求:

1.定义一个指向对象的常指针p,应该是 A *const p; 。 2.定义一个指向常对象指针p,应该是 A const *p; 。

3.定义类A的含有5个元素的一维对象数组a,应该是 A a[5]; 。

4.定义一个对象指针数组pa,它有5个元素,每个元素是类A对象指针,应该是 A *pa[5]; 。 5.使用new创建一个堆对象,一个实参值为5,应该是 A *p; p=new A(5); 。

6.使用new创建一个对象数组,该数组用指针pa指向,并使数组的3个元素都是类A的对象a1的值。应该是 A a1,*pa; pa=new A[3]; pa[0]=pa[1]=pa[2]=a1; 。

7.在某个函数体内定义一个静态类的对象sa,应该是 static A sa; 。

8.定义一个类A的对象a1,并给它赋值,其实参值为8,应该是 A a1(8); 。

7.4 分析下列程序的输出结果 1.

#include class A { public: A(int i) { a=i; }

11

A() { a=0;

cout<<\ } ~A()

{ cout<<\ } void Print()

{ cout<

A a[4],*p; int n=1; p=a;

for(int i=0;i<4;i++) a[i]=A(++n); for(i=0;i<4;i++) (p+i)->Print(); }

答: Default constructor called. 0 Default constructor called. 0 Default constructor called. 0 Default constructor called. 0 Destructor called. 2 Destructor called. 3 Destructor called. 4 Destructor called. 5 2 3 4 5

Destructor called. 5 Destructor called. 4 Destructor called. 3 Destructor called. 2

2.

#include class B {

public:

12

B(int i) { b=i; } B() {

b=0;

cout<<\ } ~B()

{ cout<<\ } void Print()

{ cout<

B *pb[4]; int n=1;

for(int i=0;i<4;i++) pb[i]=new B(n++); for(i=0;i<4;i++) pb[i]->Print(); for(i=0;i<4;i++) delete *(pb+i); } 答: 1 2 3 4

Destructor called. 1 Destructor called. 2 Destructor called. 3 Destructor called. 4

3.

#include class C { public: C(int i) { c=i; } C() { c=0;

cout<<\ }

13

~C()

{ cout<<\ } void Print()

{ cout<

void main() {

C *p;

p=new C[4]; int n=1;

for(int i=0;i<4;i++) p[i]=C(n++); for(i=0;i<4;i++) p[i].Print(); delete []p; }

答: Default constructor called. 0 Default constructor called. 0 Default constructor called. 0 Default constructor called. 0 Destructor called. 2 Destructor called. 3 Destructor called. 4 Destructor called. 5 2 3 4 5

Destructor called. 5 Destructor called. 4 Destructor called. 3 Destructor called. 2

4.

#include class D { public: D() {

d1=d2=0;

cout<<\ }

D(int i,int j) {

14

d1=i; d2=j;

cout<<\ } ~D()

{ cout<<\ } void Set(int i,int j) { d1=i;d2=j; } private: int d1,d2;

};

void main() {

int n(10),m(20);

D d[4]={D(5,7),D(3,6),D(7,9),D(1,4)}; for(int i=0;i<4;i++) d[i].Set(n++,m++); }

答: Constructor called. d1=5,d2=7 Constructor called. d1=3,d2=6 Constructor called. d1=7,d2=9 Constructor called. d1=1,d2=4 Destructor called. d1=13,d2=23 Destructor called. d1=12,d2=22 Destructor called. d1=11,d2=21 Destructor called. d1=10,d2=20

5.

#include class E {

public:

E(int i,int j) {

e1=i; e2=j;

cout<<\ }

void FunE(E *e) {

e1=e->e1; e2=e->e2;

cout<<\ }

void FunE(E &e) {

e1=e.e1; e2=e.e2;

cout<<\ } private:

15

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++习题与解答(3)在线全文阅读。

C++习题与解答(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/516576.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: