面向对象程序设计模拟题13填空和排错题.docx

上传人:b****7 文档编号:23400744 上传时间:2023-05-16 格式:DOCX 页数:10 大小:16.81KB
下载 相关 举报
面向对象程序设计模拟题13填空和排错题.docx_第1页
第1页 / 共10页
面向对象程序设计模拟题13填空和排错题.docx_第2页
第2页 / 共10页
面向对象程序设计模拟题13填空和排错题.docx_第3页
第3页 / 共10页
面向对象程序设计模拟题13填空和排错题.docx_第4页
第4页 / 共10页
面向对象程序设计模拟题13填空和排错题.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

面向对象程序设计模拟题13填空和排错题.docx

《面向对象程序设计模拟题13填空和排错题.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计模拟题13填空和排错题.docx(10页珍藏版)》请在冰豆网上搜索。

面向对象程序设计模拟题13填空和排错题.docx

面向对象程序设计模拟题13填空和排错题

二、填空题(共10题,共20分)

1.类成员的访问权限分为__public___、__protected_和__private__三类。

(2分)

2.下列语句序列执行后输出10,请将划线处的语句补充完整。

classMyClass{

public:

MyClass(intx):

val(x){}

voidPrint();

private :

intval ;

};

void MyClass:

:

Print(){cout<

intmain(){

MyClassobj(10);

obj.Print();

return0;

}

3.有两个类M和C,其中类C定义如下:

classC{public:

Mm;};。

若建立类C的对象object,则对象m和对象object中后被初始化的是对象____object____。

(2分)

4.下列语句序列执行后输出Hello,请将划线处的语句补充完整。

(2分)

classMyClass{

public:

voidPrint()const{cout<<"Hello";}

};

intmain(){

MyClass*p=newMyClass();

 p->   Print();

return0;

}

5.请在划线处填写正确内容,使类MyClass的复制构造函数的声明完整。

(2分)

classMyClass{

public:

MyClass(const____MyClass&______________obj);

};

6.为了解决多继承产生的_菱形继承_问题,在C++中引入了虚基类。

(2分)

7.派生新类的类称为___父类_,而派生出的新类称____子类___。

(2分)

8.运算符函数的函数名是由运算符前加关键字__operator构成的。

(2分)

9.下列语句序列的输出结果是____100__。

(2分)

classMyClass{

public:

MyClass(intx){cout<

~MyClass(){cout<<0;}

};

intmain(){

MyClassobj1

(1),obj2(obj1),&ptr=obj1;

return0;

}

10.所有在类内部定义的成员函数都是 内联函数。

(2分)

三、改错题(共1题,共10分)

下列程序中有三个错误,请改正错误(注意不要修改主函数),使程序的输出结果为:

Thepointis(0,1)

Thepointis(3,5)

源文件清单如下:

Line1:

#include

Line2:

classPoint{

Line3:

public:

Line4:

Point(intxx=0,intyy):

x(xx),y(yy){}

Line5:

voidMove(intxOff,intyOff)const{

Line6:

x+=xOff;y+=yOff;

Line7:

}

Line8:

voidPrint()const

Line9:

{cout<<"Thepointis("<

Line10:

private:

Line11:

intx,y=0;

Line12:

};

Line13:

intmain(){

Line14:

Pointp1,p2(2,1);

Line15:

p1.Print();

Line16:

p2.Move(1,4);

Line17:

p2.Print();

Line18:

return0;

Line19:

}

Line4:

Point(intxx=0,intyy=1):

x(xx),y(yy){}

Line5:

voidMove(intxOff,intyOff){

Line11:

intx,y;

 

二、填空题(共10题,共20分)

1.类的三种继承方式是_公有继承(public),保护继承(protect),私有继承(private)。

(2分)

2.下列语句序列的输出结果是_120000_____。

(2分)

classMyClass{

public:

MyClass(intx=0){cout<

~MyClass(){cout<<0;}

};

intmain(){

MyClassarr[3]={MyClass

(1),MyClass

(2)};

return0;

}

3.下列语句序列执行后输出10,请将划线处的语句补充完整。

(2分)

classMyClass{

public:

MyClass(intx):

_____val(x)____{}

voidPrint(){cout<

private:

intval;

};

intmain(){

MyClassobj(10);

obj.Print();

return0;

}

4.请在划线处填写正确内容,使类Test的复制构造函数的声明完整。

(2分)

classTest{

public:

Test(const__Test&_____obj);

};

5.在C++中,_函数重载__是指同一个函数名可以对应多个函数的实现。

(2分)

6.请在划线处写出MyClass类的析构函数声明。

(2分)

classMyClass{

public:

_____~MyClass();______

};

7.下列语句序列执行后输出Hello,请将划线处的语句补充完整。

(2分)

classMyClass{

public:

voidPrint()const{cout<<"Hello";}

};

intmain(){

MyClass*p=newMyClass();

 p->Print();

return0;

}

8.运算符函数的函数名是由运算符前加关键字_operator__构成的。

(2分)

9.请在划线处填写构造函数的声明,使得语句Pointp1;创建的p1对象为原点。

(2分)

classPoint{

public:

__Pointp1(intx=0,inty=0);___

private:

intx,y;

};

10.有两个类M和C,其中类C定义如下:

classC{public:

Mm;};。

若建立类C的对象object,则对象m和对象object中后被初始化的是对象__object____。

三、改错题(共1题,共10分)

下列程序中有三个错误,请改正错误(注意不要修改主函数),使程序的输出结果为:

Kellyis10yearsold.

Patrickis35yearsold.

源文件清单如下:

Line1:

#include

Line2:

classPerson{

Line3:

public:

Line4:

Person(char*str,int_age=10):

age(_age)

Line5:

{name=newchar[strlen(str+1)];strcpy(name,str);}

Line6:

void~Person(){delete[]name;}

Line7:

voidSetAge(intnum)const{age=num;}

Line8:

voidPrint()const

Line9:

{cout<

Line10:

private:

Line11:

char*name;

Line12:

intage=0;

Line13:

};

Line14:

intmain(){

Line15:

Personp1("Kelly"),p2("Patrick",25);

Line16:

p1.Print();

Line17:

p2.SetAge(35);

Line18:

p2.Print();

Line19:

return0;

Line20:

}

Line6:

~Person(){delete[]name;}

Line7:

voidSetAge(intnum){age=num;}

Line12:

intage;

 

二、填空题(共10题,共20分)

1.在C++中,_函数重载_____是指同一个函数名可以对应多个函数的实现。

(2分)

2.下列语句序列执行后输出10,请将划线处的语句补充完整。

(2分)

classMyClass{

public:

MyClass(intx):

val(x){}

voidPrint(){cout<

private :

intval ;

};

intmain(){

MyClassobj(10);

 obj.Print();

return0;

}

3.已知一个函数的原型是doublefun(doublex);,若要以4.25为实参调用该函数,应使用表达式______fun(4.25)______。

(2分)

4.下列语句序列执行后输出Hello,请将划线处的语句补充完整。

(2分)

classMyClass{

public:

voidPrint()const{cout<<"Hello";}

};

intmain(){

MyClass*p=newMyClass();

 p->Print();

return0;

}

5.有两个类M和C,其中类C定义如下:

classC{public:

Mm;};。

若建立类C的对象object,则对象m和对象object中先被初始化的是对象______m_____。

(2分)

6.请在划线处填写构造函数的声明,使得语句Pointp1;创建的p1对象为原点。

(2分)

classPoint{

public:

___Pointp1(intx=0,inty=0);________________________________

private:

intx,y;

};

7.请在划线处写出MyClass类的析构函数声明。

(2分)

classMyClass{

public:

_______~MyClass();______________

};

8.设置虚基类的目的是为了解决多继承产生的_菱形继承__问题。

(2分)

9.将一个函数声明为一个类的友元函数必须使用关键字__friend___。

(2分)

10.派生新类的类称为_基类,又称为父类,而派生出的新类称_派生类,又称为子类__。

(2分)

三、改错题(共1题,共10分)

下列程序中有三个错误,请改正错误(注意不要修改主函数),使程序的输出结果为:

Constructor

Thevalueis10

Destructor

源文件清单如下:

Line1:

#include

Line2:

classMyClass

Line3:

{

Line4:

public:

Line5:

MyClass(intx):

value(x){cout<<"Constructor"<

Line6:

void~MyClass(){cout<<"Destructor"<

Line7:

voidPrint()const;

Line8:

private:

Line9:

intvalue=0;

Line10:

};

Line11:

voidMyClass:

:

Print()

Line12{

Line13cout<<"Thevalueis"<

Line14:

}

Line15:

intmain()

Line16:

{

Line17:

constMyClassobject(10);

Line18:

object.Print();

Line19:

return0;

Line20:

}

Line6:

MyClass(){cout<<"Destructor"<

Line7:

voidPrint();

Line9:

intvalue;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 商业计划

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

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