C++程序设计参考资料.docx

上传人:b****6 文档编号:7592994 上传时间:2023-01-25 格式:DOCX 页数:14 大小:18.89KB
下载 相关 举报
C++程序设计参考资料.docx_第1页
第1页 / 共14页
C++程序设计参考资料.docx_第2页
第2页 / 共14页
C++程序设计参考资料.docx_第3页
第3页 / 共14页
C++程序设计参考资料.docx_第4页
第4页 / 共14页
C++程序设计参考资料.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C++程序设计参考资料.docx

《C++程序设计参考资料.docx》由会员分享,可在线阅读,更多相关《C++程序设计参考资料.docx(14页珍藏版)》请在冰豆网上搜索。

C++程序设计参考资料.docx

C++程序设计参考资料

复习参考A

一、单项选择题

1.不存在的派生方式为()

A、privateB、protectedC、publicD、static

2.cin是某个类的标准对象的引用,该类是()

A、ostreamB、istreamC、stdoutD、stdin

3.关于this指针,不正确的是()

A、this指针是指向对象的指针B、this指针是隐含的参数

C、this指针可以显示声明D、this不可以定义为整型变量名

4.用友元函数重载一元运算符θ,则显示调用方式为()

A、objθB、θobj

C、obj.operatorθ()D、operatorθ(obj)

5.根类的成员最多可以有的不同的被访问的权限是()

A、1种B、2种C、3种D、4种

派生类的成员的被访问权限?

p133

6.关于重载,不正确的是()

A、类名可以重载B、函数名可以重载

C、运算符可以重载D、函数模板可以重载

7.static成员函数没有()

A、this指针B、返回类型C、函数名D、参数

构造函数?

析构函数?

8.声明模板的关键字为()

A.inlineB、templateC、constD、define

9.若有Xobj[12];(X为类名),则调用构造函数的次数为()

A、0次B、1次C、12次D、任意次

10.不能够有参数的是()

A、友元函数B、(类类型)转换函数

C、运算符重载函数D、构造函数

二、多项选择题

11.面向对象的核心概念为()

A、抽象(数据封装)B、继承C、多态性

D、模板E、引用

13.根类的成员可能包括()

A、不可访问成员B、私有成员C、公有成员

D、保护成员E、static成员

14.可以访问私有成员的有()

A、该类的static成员函数B、该类的非static成员函数

C、该类的友元函数D.main函数

E、类的派生类的所有成员函数

15.简单成员函数的声明不能包含()

A、voidB、staticC、constD、intE、float

p107

三、名词解释

16.数据封装:

p39

17.动态联编:

p169

18.多继承:

p130

四、判断分析题

19.构造函数不可以继承。

()

p132

20.可以将派生类对象当作基类对象使用。

()

p134

21.static成员的初始化可以在类中进行。

()

p107

22.析构造函数的返回类型可以是void。

()

五、读程序题

23.

#include

classA

{

inta;

public:

A(intx){a=x;}

voidput(){cout<

voidset1(Aobj){obj.a=25;}

voidset2(A&robj){robj.a=35;}

voidset3(A*pobj){pobj->a=45;}

};

main(){

AobjA(15);

objA.put();

objA.set3(&objA);

objA.put();

objA.set2(objA);

objA.put();

objA.set1(objA);

objA.put();

}

24.

#include

classA{

public:

A(){cout<<“INA\n”;}

};

classB:

publicA{

public:

B(){cout<<“INB\n”;}

};

classC:

publicB{

public:

C(){cout<<“INC\n”;}

};

main()

{

AobjA;

CobjC;

}

六、读程序题

25.

#include

classA{

public:

constintb=2;

};

main()

{

cout<

}

26.

#include

classA{

inta;

public:

A(intx){a=x;}

voidset(){a=1;}

voidput(){cout<

};

voidmain()

{

AobjA(10);

A(100).put();

}

七、编程题

27.设计一个平面图形类(Figure类),说明两个float数据成员,提供对数据成员的赋值操作;提供纯虚函数GetArea(),能够获取面积。

分别派生出长方形类Squ和三角形类Tri,派生类都有重载的GetArea()函数。

 

28.定义一个极坐标的点类Vector,重载“-”(成员函数实现);重载“>>”(友元函数实现);能够将极坐标对象转换为一个整数。

 

29.编写一个函数模板,求一个变量的相反数。

复习参考B

一、单项选择题

1.说明虚函数的关键字为()

A、inlineB、virtualC、staticD、define

2.cout是类的标准对象的引用()

A、ostreamB、istreamC、stdoutD、stdin

3.若在类外有函数调用X:

:

func();则函数func是类X的()

A、私有静态成员函数B、公有非静态成员函数

C、公有静态成员函数D、友元函数

4.说明内联函数的关键字为()

A、virtualB、staticC、enumD、inline

5.不能参与重载的是()

A、类B、函数C、函数模板D、运算符

6.一个类的所有对象共享的是()

A、私有段数据成员B、公有段数据成员

C、保护段数据成员D、静态数据成员

7.重载“>>”,为保证其连用性,重载函数的返回类型应为()

A、istreamB、ostreamC、istream&D、ostream&

8.复制初始化构造函数对参数的要求是()

A、无特殊要求B、指向对象的指针

C、自己类对象的常引用D、对象

9.没有调用构造函数(X为类名)的是()

A、X*p;B.Xobj;C、Xobj

(1);D、Xobj=2;

二、多项选择题

12.重载一个虚函数时,完全相同有()。

A、函数名B、函数返回类型C、参数个数

D、参数类型E、参数顺序

三、名词解释

16.对象:

p37

四、判断分析题

五、读程序

23.

#include

classA{

inta;

public:

voidset(intx=0){a=x;}

voidput(){cout<

voidfunc()

{AobjA1;

objA1.set(200);

put();

set(300);

objA1.put();

put();}

};

main()

{

AobjA;

objA.set(100);

objA.put();

objA.func();

objA.put();

}

六、指出下列程序的错误;说明错误的原因;并改正

25.

#include

classA

{

inta;

int&ref=a;

public:

voidout(){a=120;cout<

};

main()

{

AobjA;

objA.out();

}

p106

26.

#include

classA{

intA1;

public:

intA2;

};

classB:

publicA{

intB1;

public:

intB2;

voidset()

{A1=1;A2=2;B1=3;B2=4;}

};

voidmain()

{

BobjB;

objB.set();

}

 

七、编程题

28.定义一个复数类Complex,定义带有2个参数(都为缺省参数)的构造函数;重载“/”(成员函数实现);重载“<<”(友元函数实现)。

 

补充

一、单项选择题

1.关于缺省参数,下列原型不正确的为()

A.intf(intx=0,inty)B.intf(intx,inty=0)

C.intf(intx=10)D.intf(intx,inty=0,intz=0)

2.若有Xobj,*p;p=&obj;(f是类X的一个无参的非static公有成员函数),则调用不正确的是()

A.obj.f()B.p->f()C.(*p).f()D.*p->f()

3.区分同名函数,晚期匹配为()

A.根据参数表区分B.根据对象区分

C.根据类名区分D.虚函数

4.关于空类,说法不正确的是()

A.空类没有类名B.空类没有成员函数

C.空类没有数据成员D.可以定义空类的对象

p90

5.若有floatf=1.8;inti=(int)f;则f的值为()

A.1B.2C.1.8D.不确定

二、多项选择题

1.不能使用友元函数重载的运算符有()

A.*B.=C.()D.+E.[]

p186

2.区分同名函数,早期匹配是()

A.根据参数表区分B.根据类名区分C.根据不同类的对象区分

D.根据虚函数区分E.根据不同类对象的指针区分

3.可以实现封装的关键字是()

A.classB.structC.friendD.unionE.enum

4.友元函数重载++(前缀重载),为保证隐式调用的正确性,说法不正确的是()

A.不使用类类型作参数类型B.用对象本身作参数

C.用对象指针作参数D.用对象引用作参数

E.没有参数

5.不能有参数的函数是()

A.构造函数B.析构函数C.类类型转换函数

D.静态成员函数E.友元函数

三、名词解释

1.类类型转换函数

2.缺省参数(默认参数)

p54

3.抽象类

p174

4.构造函数

p75

5.缺省构造函数

p75

四、判断分析题

1.不可以定义抽象类的对象()

p174

2.C++语言中的任何函数都必须有函数体,即函数的实现()

p173

3.this指针在类的所有成员函数中都隐含存在()

p107

4.class类和struct类没有区别()

p32

5.C++定义的模板有函数模板和类模板两大类()

6.可以定义空类的对象()

五、读程序

1.

#include

classA{

inta;

public:

A(intx=0){a=x;}

voidput(){cout<

voidset1(intx,Aobj){obj.a=x;}

voidset2(intx,A&obj){obj.a=x;}

voidset3(intx,A*obj){obj->a=x;}

};

main(){

AobjA

(1);

objA.put();

objA.set2(2,objA);

objA.put();

objA.set1(3,objA);

objA.put();

objA.set3(4,&objA);

objA.put();

}

2.

#include

classA{

public:

A(){cout<<"Aiscreated\n";}

};

classB:

publicA{

public:

B(){cout<<"Biscreated\n";}

};

classC:

publicB{

public:

C(){cout<<"Ciscreated\n";}

};

main(){

AobjA;

BobjB;

CobjC;

}

六、指出下列程序的错误;说明错误的原因;并改正

1.

#include

classA{

inta;

public:

A(intx){a=x;}

voidset()const

{a=1;}

voidput(){cout<

};

main()

{

AobjA(10);

objA.set(100);

objA.put();

}

p114

2.

#include

classX{

public:

intx;

X(inta){x=a;}

};

classY:

X{

public:

inty;

Y(intb){y=b;}

};

main()

{

XobjX

(1);

YobjY=2;

}

3.

#include

classA

{

inta=1;

staticintb=2;

};

main()

{

AobjA;

cout<

:

a;

}

p71

p107

4.

#include

classA

{

inta;

staticints;

public:

A(intx){a=x;}

voidset(){a=1;s=2;}

voidput(){cout<

};

main()

{

AobjA(10);

cout<

cout<

:

a;

objA.put();

}

七、编程题

1.继承派生、纯虚函数、函数重载

定义一个图形shape基类,数据成员为2个整数(表示图形的边界),有带参数的构造函数,有计算面积的虚函数GetArea(),在此基础上派生出三角形类Rectangle和圆Circle类,使用Rectangle类在创建一个派生类Square。

三个派生类都有重载的GetArea()函数。

2.运算符重载

定义一个复数类Complex,派生出一个极坐标中的点类Vector,要求复数类重载*(成员函数实现),Vector类重载++(友元函数实现),Vector类重载<<。

3.函数模板

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

当前位置:首页 > 初中教育 > 语文

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

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