第5章 类与对象.docx
- 文档编号:29937504
- 上传时间:2023-08-03
- 格式:DOCX
- 页数:35
- 大小:22.87KB
第5章 类与对象.docx
《第5章 类与对象.docx》由会员分享,可在线阅读,更多相关《第5章 类与对象.docx(35页珍藏版)》请在冰豆网上搜索。
第5章类与对象
第5章类与对象
5.1选择题
第7章1.在下列结构变量的定义中,不正确的是(b)。
(a)structemployee
{charname[20];
longcode;
}emp;
(b)struct
{charname[20];
longcode;
}emp;
(c)structemployee
{charname[20];
longcode;
};
employeeemp;
(d)struct
{charname[20];
longcode;
}employee;
employeeemp;
2.已知有职工情况结构变量emp定义为:
structemployee
{charname[20];
longcode;
struct
{intyear;
intmonth;
intday;
}birth;
}emp;
下列对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;
3.假定有以下声明和定义,则下面引用形式错误的是(b)。
structstudent
{intnum;
floatscore;
}stu[3]={{1001,80},{1002,75},{1003,91}},*p=stu;
(a)p->num(b)(p++).num(c)(p++)->num(d)(*p).num
4.下列四个运算符中,优先级最低的是(a)。
(a)++(b).(c)->(d)()
5.若有以下声明和定义,则下列错误的引用是(d)。
structworker
{intno;
charname[20];
}w,*p=&w;
(a)w.no(b)p->no(c)(*p).no(d)*p.no
6.若有以下声明和定义,则下列引用非法的是(d)。
structdata
{intn;
floatscore;
data*q;
};
dataa[3]={1001,87,&a[1],1002,75,&a[2],1003,90,&a[0]};
data*p=a;
(a)p->n++(b)(*p).n++(c)++p->n(d)*p->n
7.关于类和对象不正确的说法是(c)。
(a)类是一种类型,它封装了数据和操作(b)对象是类的实例
(c)一个类的对象只有一个(d)一个对象必属于某个类
8.在类定义的外部,可以被访问的成员有(c)。
(a)所有类成员(b)private或protected的类成员
(c)public的类成员(d)public或private的类成员
9.关于this指针的说法错误的是(a)。
(a)this指针必须显式说明
(b)当创建一个对象后,this指针就指向该对象
(c)成员函数拥有this指针
(d)静态成员函数拥有this指针
10.声明一个类的对象时,系统自动调用(b,d)函数;撤消对象时,系统自动调用(c)函数。
(a)成员函数(b)构造函数(c)析构函数(d)复制构造函数
11.下面对构造函数的不正确描述是(b)。
第8章(a)系统可以提供默认的构造函数
(b)构造函数可以有参数,所以也可以有返回值
(c)构造函数可以重载
(d)构造函数可以设置默认参数
12.下面对析构函数的正确描述是(ac)。
(a)系统可以提供默认的析构函数(b)析构函数必须由用户定义
(c)析构函数没有参数(d)析构函数可以设置默认参数
13.对静态成员的不正确描述是(d)。
(a)静态成员不属于对象,是类的共享成员
(b)静态数据成员要在类外定义和初始化
(c)调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针
(d)只有静态成员函数可以操作静态数据成员
14.下面选项中,不是类的成员函数为(c)。
(a)构造函数(b)析构函数(c)友元函数(d)复制构造函数
15.下面对友员的错误描述是(d)。
(a)关键字friend用于声明友员
(b)一个类中的成员函数可以是另一个类的友员
(c)友员函数访问对象的成员不受访问特性影响
(d)友员函数通过this指针访问对象成员
5.2阅读下列程序,写出执行结果
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 105 155 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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第5章 类与对象 对象
![提示](https://static.bdocx.com/images/bang_tan.gif)