面向对象程序设计与C++语言.doc
文本预览下载声明
一、?选择题
2、假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为(A???)。??
???????A.?x.a?? B.?x(a)??????C.?x[a]?????D.?x-a??????
3、对于在类中定义的静态数据成员,下面正确的说法是(??C??)
A.该类的每个对象中都有一个静态数据成员?
B.对象创建时产生???????
C.在类外进行初始化?
D.既可以在类外初始化,也可以在类内初始化
4下面有关重载函数的说法中正确的是(??B??)??
(A)重载函数必须具有不同的返回值类型;??
(B)重载函数必须有不同的形参列表?
(C)重载函数形参个数必须不同;????
?(D)重载函数名可以不同;
5、对于语句?coutxendl;错误的是描述是(??D?)。?
?A)“cout”是一个输出流对象???
B)“endl”的作用是输出回车换行???
C)“x”是一个变量????????????
?D)“”称作提取运算符
6、下列关于C++函数的叙述中,正确的是(??D??)。?
??A)每个函数至少要具有一个参数??
?B)每个函数都必须返回一个值???
?C)函数不能自己调用自己
D)函数在被调用之前必须先声明?
7、在C++中,用于实现运行时多态性的是(???A?)。?
??A)虚函数 B)内联函数?????C)重载函数?????D)模板函数??
8?、若函数f的原型说明为:?
???int?f(char?a,char?*b=NULL,double?c=0.0);?
???则以下调用函数f的选项中,存在语法错误的是:?(C)
?A.?f(‘\099’)??????? ?B.?f(‘A’,”123”)?????
??C.?f(‘A’,4.5)??????????D.?f((char)65,”123”)??
9、类X中,若没有定义构造函数,则默认的构造函数是(A ).
(A).X ( ){ }
(B).X (X x){ *this=x;}
(C).~X ( ){ }
(D).不存在
若类X中没有定义拷贝构造函数,则系统为类X定义的默认拷贝构造函数的原型为( X::X(X x); )或者( X(X x) )。
?以下基类中的成员函数表示纯虚函数的是(D)?
A.?void?tt(int)=0? B.?virtual?void?tt(int)?
C.?virtual?void?tt(int){} D.?virtual?void?tt()=0?
判断题
1、友元函数用于允许一个函数访问类的私有成员。 ( √ )
2、在 C++中,也可使用 struct 来声明类,但在该类中不能声明成员函数。 (×)
( √ )
4、在传值调用中,要求实参和形参的类型完全一致并且个数相等。(×)
( √ )
6、类成员的默认访问模式是private,类的默认继承方式也是private。( √ )
7、构造函数可以被继承,且构造函数和析构函数都可以被说明为虚函数。(×)
8、私有继承中,基类中所有成员对派生类的对象都不是不可见的。( √ )
9、在基类的成员函数都是虚函数的情况下,该基类也称虚基类。(×)
10、在一个被调用函数中,一个return语句只可返回一个值给调用函数,( √ )
三、简答题
1、什么是面向对象的程序设计?它的四个基本特征是什么?
答:面向对象程序设计是一种以类为核心的软件开发方法。类、实例和消息是面向对象程序设计的基本概念。
四个基本特征:抽象性、封装性、继承性、多态性
构造函数和析构函数的作用是什么?什么时候需要自己定义构造函数和析构函数?
构造函数的作用:用于新建对象的初始化工作。 析构函数的作用:用于在撤销对象前,完成一些清理工作,比如:释放内存等。 每当创建对象时,需要添加初始化代码时,则需要定义自己的构造函数;而对象撤销时,需要自己添加清理工作的代码时,则需要定义自己的析构函数。
读程序,写结果
1、#includeiostream.h
Int f(int x,int y,int z)
{return(x+y+z);}
Void main()
{int a=2,b; intc=b; b=a++;
c=f(a,b,c);
cout“a=”aend1;
cout“b=”bend1;
cout“c=”cend1;}答:运行结果为a=3 b=7 c=7
2、
#includeiostream.h
Class base{
Public:
base() {cout“Constructing base class”end1;}
-base() {cout“Donstructing base
显示全部