C++第四版习题解答 下DOC.docx
- 文档编号:23244159
- 上传时间:2023-05-15
- 格式:DOCX
- 页数:106
- 大小:48.82KB
C++第四版习题解答 下DOC.docx
《C++第四版习题解答 下DOC.docx》由会员分享,可在线阅读,更多相关《C++第四版习题解答 下DOC.docx(106页珍藏版)》请在冰豆网上搜索。
C++第四版习题解答下DOC
《C++程序设计基础》(第4版)(下)
习题与解答
第6章类与对象
6.1选择题
1.若有以下说明,则在类外使用对象objX成员的正确语句是(C)。
classX
{
inta;
voidfun1();
public:
voidfun2();
};
XobjX;
(A)objX.a=0;(B)objX.fun1();(C)objX.fun2();(D)X:
:
fun1();
2.若有以下说明,则对n的正确访问语句是(B)。
classY
{
//…;
public:
staticintn;
};
intY:
:
n;
YobjY;
(A)n=1;(B)Y:
:
n=1;(C)objY:
:
n=1;(D)Y?
>n
3.若有以下类Z说明,则函数fStatic中访问数据a错误的是(C)。
classZ
{
staticinta;
public:
staticvoidfStatic(Z&);
};
intZ:
:
a=0;
ZobjZ;
(A)voidZ:
:
fStatic(){objZ.a=1;}
(B)voidZ:
:
fStatic(){a=1;}
(C)voidZ:
:
fStatic(){this?
?
a=0;}
(D)voidZ:
:
fStatic(){Z:
:
a=0;}
4.若有以下类W说明,则函数fConst的正确定义是(A)。
classW
{
inta;
public:
voidfConst(int&)const;
};
(A)voidW:
:
fConst(int&k)const{k=a;}
(B)voidW:
:
fConst(int&k)const{k=a++;}
(C)voidW:
:
fConst(int&k)const{cin>>a;}
(D)voidW:
:
fConst(int&k)const{a=k;}
5.若有以下类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;}
6.在类定义的外部,可以被访问的成员有(C)。
(A)所有类成员(B)private或protected的类成员
(C)public的类成员(D)public或private的类成员
7.关于this指针的说法正确的是(C)。
(A)this指针必须显式说明(B)定义一个类后,this指针就指向该类
(C)成员函数拥有this指针(D)静态成员函数拥有this指针
8.说明一个类的对象时,系统自动调用(B);撤销对象时,系统自动调用(C)。
(A)成员函数(B)构造函数(C)析构函数(D)友元函数
9.下面对构造函数的不正确描述是(C)。
(A)用户定义的构造函数不是必须的(B)构造函数可以重载
(C)构造函数可以有参数,也可以有返回值(D)构造函数可以设置默认参数
10.下面对析构函数的正确描述是(C)。
(A)系统在任何情况下都能正确析构对象(B)用户必须定义类的析构函数
(C)析构函数没有参数,也没有返回值(D)析构函数可以设置默认参数
11.关于类的静态成员的不正确描述是(D)。
(A)静态成员不属于对象,是类的共享成员
(B)静态数据成员要在类外定义和初始化
(C)静态成员函数不拥有this指针,需要通过类参数访问对象成员
(D)只有静态成员函数可以操作静态数据成员
12.在下列选项中,(C)不是类的成员函数。
(A)构造函数(B)析构函数(C)友元函数(D)复制构造函数
13.下面对友元的错误描述是(D)。
(A)关键字friend用于声明友元
(B)一个类中的成员函数可以是另一个类的友元
(C)友元函数访问对象的成员不受访问特性影响
(D)友元函数通过this指针访问对象成员
14.若classB中定义了一个classA的类成员Aa,则关于类成员的正确描述是(C)。
(A)在类B的成员函数中可以访问A类的私有数据成员
(B)在类B的成员函数中可以访问A类的保护数据成员
(C)类B的构造函数可以调用类A的构造函数做数据成员初始化
(D)类A的构造函数可以调用类B的构造函数做数据成员初始化
6.2阅读下列程序,写出运行结果
1.
#include
usingnamespacestd;
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;} intmain() { Aa; a.setx(10);a.sety(5); cout< cout< } 【解答】 10 5 105 155 2. #include usingnamespacestd; 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; }; intmain() { Td1(4,8); Td2(d1); cout< } 【解答】 调用构造函数1. 48 调用构造函数2. 48 20 调用析构函数. 调用析构函数. 3. #include usingnamespacestd; classT { public: T(intx){a=x;b+=x;}; staticvoiddisplay(Tc){cout<<"a="< private: inta; staticintb; }; intT: : b=5; intmain() { TA(3),B(5); T: : display(A); T: : display(B); } 【解答】 a=3b=13 a=5b=13 4. #include usingnamespacestd; #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; }; intmain() { Pointp1(2,3); cout<<"到"; Pointp2(4,5); cout<<"的距离是: "< } 【解答】 点(3,4)到点(4,5)的距离是: 2.82843 5. #include usingnamespacestd; classA { public: A(){a=5;} voidprinta(){cout<<"A: a="< private: inta; friendclassB; }; classB { public: voiddisplay1(At) {t.a++;cout<<"display1:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+第四版习题解答 下DOC C+ 第四 习题 解答 DOC