《面向对象程序设计Ⅱ》期末复习资料1.docx
- 文档编号:11934720
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:20
- 大小:19.93KB
《面向对象程序设计Ⅱ》期末复习资料1.docx
《《面向对象程序设计Ⅱ》期末复习资料1.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计Ⅱ》期末复习资料1.docx(20页珍藏版)》请在冰豆网上搜索。
《面向对象程序设计Ⅱ》期末复习资料1
《面向对象程序设计Ⅱ》期末复习资料之一:
类与对象
一、选择题
1.已知有职工情况结构变量employee定义为:
structemployee
{
charname[20];
longcode;
struct
{intyear;
intmonth;
intday;
}birth;
}emp;
下列对birth的正确赋值方法是()。
(D)
A.year=1980;month=5;day=1;
B.birth.year=1980;birth.month=5;birth.day=1;
C.emp.year=1980;emp.month=5;emp.day=1;
D.emp.birth.year=1980;emp.birth.month=5;emp.birth.day=1;
2.假定有以下声明语句,则下面引用形式错误的是()。
(B)
structstudent
{
intnum;
floatscore;
}stu[3]={{1001,80},{1002,75},{1003,91}},*p=stu;
A.p->numB.(p++).numC.(p++)->numD.(*p).num
3.下列四个运算符中,优先级最低的是()。
(A)
A.++B..C.->D.()
4.若有以下声明语句,则下列错误的引用是()。
(D)
structworker
{
intno;
charname[20];
}w,*p=&w;
A.w.noB.p->noC.(*p).noD.*p.no
5.若有以下声明,使用对象objX成员的正确语句是()。
(C)
classX
{
inta;
voidfun1();
public:
voidfun2();
};
XobjX;
A.objX.a=0;B.objX.fun1();C.objX.fun2();D.X:
:
fun1();
6.若有以下声明,对n的正确访问语句是()。
(B)
classY
{
//……;
public:
staticintn;
};
intY:
:
n;
YobjY;
A.n=1;B.Y:
:
n=1;C.objY:
:
n=1;D.Y->n
7.若有以下类Z声明,函数fStatic的正确定义是()。
(A)
classZ
{
inta;
public:
staticvoidfStatic(Z&);
};
A.voidZ:
:
fStatic(Z&objZ){objZ.a=0;}
B.voidZ:
:
fStatic(Z&objZ){a=objZ.a;}
C.voidZ:
:
fStatic(Z&objZ){a=0;}
D.voidZ:
:
fStatic(Z&objZ){Z:
:
a=0;}
8.若有以下类W声明,函数fConst的正确定义是()。
(A)
classW
{
inta;
public:
voidfConst(int)const;
};
A.voidW:
:
fConst(intk)const{k=a;}
B.voidW:
:
fConst(intk)const{k=a++;}
C.voidW:
:
fConst(intk)const{cin>>a;}
D.voidW:
:
fConst(intk)const{a=k;}
9.若有以下类T声明,函数fFriend的错误定义是()。
(C)
classT
{
inti;
friendvoidfFriend(T&,int);
};
A.voidfFriend(T&objT,intk){objT.i=k;}
B.voidfFriend(T&objT,intk){k=objT.i;}
C.voidT:
:
fFriend(T&objT,intk){k+=objT.i;}
D.voidfFriend(T&objT,intk){objT.i+=k;}
10.在类定义的外部,可以被访问的成员有()。
(C)
A.所有类成员B.private或protected的类成员
C.public的类成员D.public或private的类成员
11.关于this指针的说法正确的是()。
(C)
A.this指针必须显式说明B.定义一个类后,this指针就指向该类
C.成员函数拥有this指针D.静态成员函数拥有this指针
12.声明一个类的对象时,系统自动调用();撤消对象时,系统自动调用()。
(B、C)
A.成员函数B.构造函数C.析构函数D.友员函数
13.下面对构造函数的不正确描述是()。
(B)
A.系统提供默认的构造函数B.构造函数可以有参数,所以也可以有返回值
C.构造函数可以重载D.构造函数可以设置默认参数
14.下面对析构函数的正确描述是()。
(C)
A.系统不提供默认的析构函数B.析构函数必须由用户定义
C.析构函数没有参数,也没有返回值D.析构函数可以设置默认参数
15.关于类的静态成员的不正确描述是()。
(D)
A.静态成员不属于对象,是类的共享成员
B.静态数据成员要在类外定义和初始化
C.静态成员函数不拥有this指针,需要通过类参数访问对象成员
D.只有静态成员函数可以操作静态数据成员
16.下面选项中,()不是类的成员函数。
(C)
A.构造函数B.析构函数C.友元函数D.拷贝构造函数
17.下面对友员的错误描述是()。
(D)
A.关键字friend用于声明友员
B.一个类中的成员函数可以是另一个类的友员
C.友员函数访问对象的成员不受访问特性影响
D.友员函数通过this指针访问对象成员
二、阅读下列程序,写出执行结果
1.#include
structdata
{
intn;
floatscore;
};
voidmain()
{
dataa[3]={1001,87,1002,72,1003,90},*p=a;
cout<<(p++)->n< cout<<(p++)->n< cout< cout<<(*p).n++< } 参考答案 1001 1002 1003 1004 2.#include structemployee { charname[20]; charsex; }; voidfun(employee*p) { if((*p).sex=='m') cout<<(*p).name< } voidmain() { employeeemp[5]={"Liming",'m',"Wangxiaoping",'f',"Luwei",'m'}; inti; for(i=0;i<3;i++) fun(emp+i); } 参考答案 Liming Luwei 3.#include structnode { char*s; node*q; }; voidmain() { nodea[]={{"Mary",a+1},{"Jack",a+2},{"Jim",a}}; node*p=a; cout< cout< cout< cout< } 参考答案 Mary Jack Jim Mary 4.#include classA { public: intf1(); intf2(); voidsetx(intm){x=m;cout< voidsety(intn){y=n;cout< intgetx(){returnx;} intgety(){returny;} private: intx,y; }; intA: : f1(){returnx+y;} intA: : f2(){returnx-y;} voidmain() { Aa; a.setx(10);a.sety(5); cout< cout< } 参考答案 10 5 10 5 15 5 5.#include classT { public: T(intx,inty) {a=x;b=y; cout<<"调用构造函数1."< cout< } T(T&d) {cout<<"调用构造函数2."< cout< } ~T(){cout<<"调用析构函数."< intadd(intx,inty=10){returnx+y;} private: inta,b; }; voidmain() { Td1(4,8); Td2(d1); cout< } 参考答案 调用构造函数1. 48 调用构造函数2. 48 20 调用析构函数. 调用析构函数. 6.#include classT { public: T(intx){a=x;b+=x;}; staticvoiddisplay(Tc) { cout<<"a="< private: inta; staticintb; }; intT: : b=5; voidmain() { TA(3),B(5); T: : display(A); T: : display(B); } 参考答案 a=3b=13 a=5b=13 7.#include #include classpoint { public: point(floatx,floaty) { a=x;b=y;cout<<"点("< } frienddoubled(point&A,point&B) { returnsqrt((A.a-B.a)*(A.a-B.a)+(A.b-B.b)*(A.b-B.b)); } private: doublea,b; }; voidmain() { pointp1(2,3); cout<<"到"; pointp2(4,5); cout<<"的距离是:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计 面向 对象 程序设计 期末 复习资料