第八章 类和对象 复习题
更新时间:2024-04-15 00:51:01 阅读量: 综合文库 文档下载
- 第八章光结局和夜结局推荐度:
- 相关推荐
第八章 类和对象 复习题
1.系统为每个类提供一个this指针,在类的成员函数内,通过this指针可以间接访问这个类的( )
A.在public段中声明的友元 B.所有成员
C.友元类的public成员 D.所有派生类中的public成员 2.如果在class类的定义中既不指定private,也不指定public,则系统就默认为( ) A. private
B. public D. 不确定
C. protected
3. 对静态数据成员的描述, 正确的是( ) A. 静态数据成员可以在类体内进行初始化 B. 静态数据成员不可以被类的对象调用 C. 静态数据成员不能受private控制符的作用 D. 静态数据成员可以直接用类名调用 4. 下面叙述错误的是( )
A. 基类的protected成员在派生类中仍然是protected的 B. 基类的protected成员在public派生类中仍然是protected的 C. 基类的protected成员在private派生类中是private的 D. 基类的protected成员不能被派生类的对象访问 5.对于友元函数的描述,正确的是( ) A. 友元函数的实现必须在类的内部定义 B. 友元函数是类的成员函数
C. 友元函数破坏了类的封装性和隐藏性 D. 友元函数不能访问类的私有成员 6.关于内联函数的描述,正确的是( )
A.使用内联函数可以缩短程序代码,减少占用的内存空间
B.使用内联函数可以减少函数调用时入栈和出栈的时间和空间开销,但是会使程序的代码量增加
C.内联函数只能在类的内部进行声明和定义,不能作为全局函数 D.内联函数可以做虚函数 7. 类是对象的( )
A. 具体 B. 抽象
C. 封装 D. 多态
8. struct声明类时,若不作private或public声明,系统默认为( ) A. private B. public C. protected D. 不能确定 9.引入内联函数的主要目的是( ) A.缩短程序代码,少占用内存空间
B.既可以保证程序的可读性,又能提高程序的运行效率 C.占用内存空间少,执行速度快 D.使程序的结构比较清晰
10. 类的具体表现是通过定义 来操作的。对象 11.说法错误的是( )
A.一个类是由一批数据以及对其操作的函数组成 B.类中数据和函数可以分为private和public两大类 C.具有“类”类型特征的变量称为“对象”
D.类中私有成员函数可以被其他类中的成员函数所调用
12.如果用struct声明类时,对其成员既不指定private,也不指定public,则
系统就默认 为( )
A. private B. public C. protected D. 不确定 13.在声明类类型时,声明的次序是( ) A.先声明private部分,再声明public部分 B. 先声明public部分,再声明private部分
C. 声明public部分和声明private部分不能同时出现 D. 既可以先声明private部分,也可以先声明public部分 14. 关于类的友元函数的描述,正确的是 ( ) A.友元函数可以被继承
B.一个类的友元函数可以访问这个类的所有成员 C.一个类的友元函数必须在这个类中定义成内联函数 D.一个类的友元函数的返回类型必须是这个类的类型标识符 15.在一个类中( )
A.只能有数据成员 B.只能有成员函数
C.可以有数据成员和成员函数 D.只能有数据成员或只能有成员函数
16.下列特性中,不是面向对象程序设计的特征的是( ) A.继承
B.内联函数 D.封装
C.多态性
17.在声明类类型时,声明的次序是( ) A.先声明private部分,再声明public部分 B. 先声明public部分,再声明private部分
C. 声明public部分和声明private部分不能同时出现 D. 既可以先声明private部分,也可以先声明public部分 18.下列说法正确的是( )
A. 类是对象的抽象,对象是类的具体实例 B. 对象是类的抽象 C.类是对象的具体实例
D. 对象是类的模板19. 类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的数据成员,共同行为被描述为类中的 。 成员函数
20. 在一个函数的定义或声明前加上关键字 时,该函数就声明为内联函数。 inline
21. 单目运算符作为类成员函数重载时没有参数;双目运算符作为
重载时只需声明其右操作数,作为友元函数重载时需声明全部操作数。 成员函数
22. 当用protected继承从基类派生一个类时,基类的public成员成为派生类的
protected成员,protected成员成为派生类的 成员。在类定义中,将 置于虚函数的函数原型的末尾可以将该函数声明为纯虚函数。protected =0
23. 类是对具有共同属性和行为的一类事物的抽象描述, 共同属性被描述为类
中的 ,共同行为被描述为类中的成员函数。 数据成员 24. 如果一个数组中的每个元素都是同一个类的对象,则该数组被称
为 。对象数组
25. 在C++语言中,每个对象都有一个隐含的指针叫做this指针,该指针指
向 。对象自身
26. 当一个类对象的成员函数被调用时,该成员函数的 指针指向调用它的对象。 this
27. 在结构定义中,数据和成员函数默认权限是公有的。在类定义中,数据和成员
函数默认权限是 。私有的
28. 对类中的成员函数和属性的访问是通过 、protected和
这3个关键字来控制的。public private 29.仔细阅读程序,在题后写出其运行结果。
#include
using namespace std; class Box {public:
Box(int w=10,int h=10,int len=10); int volume(); private: int height; int width; int length; };
Box::Box(int w,int h,int len) {height=h; width=w; length=len; }
int Box::volume()
{return(height*width*length); } int main() {
Box box1;
cout<<\ Box box2(5);
cout<<\ Box box3(5,3);
cout<<\ Box box4(5,3,2);
cout<<\ return 0; }
运行结果: 1000 (2分) 500 (1分) 150 (1分)
30 (1分)
30. 根据输出结果,在程序中填入正确的语句。
class Instrument{ public:
virtual void Print() const{cout<<\};
class Piano:public Instument{ public:
void Print() const{ cout<<\};
class Guitar :public InstruIment{ pub1ic:
void Print() const{cout<<\};
void Tone( ){ }
void main(){
Guitar g; Tone(g); Piano p; Tone(p); }
输出结果为: Guitar::Print Piano::Print
33. #include
Instrument &obj obj.Print() ;
31.下列程序通过把类Distance定义为类Point的友元类来实现计算两点之间距
离的功能。请完成该程序。 #include iostream.h> #include
;
Point ( ){ X=a; Y=b; }
void Print(){
cout<<\ cout<<\ } private: float X,Y; };
class Distance{ public:
float Dis(Point &p,Point &q);}; f1oat Distance::Dis(Point &p,Point &q){ float result;
; cout< void main(){ Point p(10,10),q(20,20); Distance d; d.Dis(p,q); } 34.friend class Distance float a, float b result=sqrt((p.X-q.X)*( p.X-q.X)+(p.Y-q.Y)*(p.Y-q.Y)) 32.在下面程序的横线处填上适当的语句,使运行该程序执行结果为20。 class MyClass{ pub1ic: //为x置值 //取x值 private: int x; }; void main(){ Myclass my(20); cout< 33.#include MyClass(int n){ x=n;} 33. 下列程序的运行结果如下: Base's cons. Derived's cons. Derived's des. Base's des. 根据结果将程序补充完整。 #incude Base(){cout<< < class Derived:public Base{ public: Derived(){cout<<\ ~Derived(){cout<<\}; void main(){ Base *Ptr= delete ptr; } 34. “Base's cons.” ~Base() new Derived 34.分析下列程序,写出其运行结果。 #include int GetNum(){return x;} { public: MyClass(int a){x=a;} void Fun1(){x++;} void Fun2(){x+=2;} void Fun3(){x+=3;} void Print(){cout<<\private: int x; }; void main() { MyClass my(8); void (MyClass::*pf)(); my.Print(); pf=MyClass::Fun1; (my.*pf)(); my.Print(); pf=MyClass::Fun2; (my.*pf)(); my.Print(); pf=MyClass::Fun3; (my.*pf)(); my.Print(); } 运行结果: 37. x=8 (2分) x=9 (1分) x=11 (1分) x=14 (1分) 35.仔细阅读程序,在题后写出其运行结果。 #include Box(int h=10,int w=12,int len=15):height(h),width(w),length(len){ } int volume(); private: int height; int width; int length; }; int Box::volume() {return(height*width*length); } int main() {int i; Box a[3]={ Box(10,12,15), Box(15,18,20), Box(16,20,26) }; for (i=0;i<=2;i++) cout<<\ return 0; } 运行结果: 38. volume of a[0] is 1000 (2分) volume of a[1] is 5400 (2分) volume of a[0] is 8320 (1分) 36.计算两个长方柱的体积,请编一个基于对象的程序,数据成员包括length (长)、width(宽)、height(高)。要求用成员函数实现以下功能。 (1)由键盘分别输入两个长方柱的长、宽、高。 (2)计算长方柱的体积。 (3)输出2个长方柱的体积。 #include void get_value(); (1分) float volume(); (1分) void display(); (1分) public: float lengh; float width; float height; (1分) }; void Box::get_value() (1分) { cout<<\ cin>>lengh; cin>>width; cin>>height; } float Box::volume() (1分) { return(lengh*width*height);} void Box::display() (1分) { cout< int main() { Box box1,box2; box1.get_value(); box1.display(); (1分) box2.get_value(); box2.display(); (1分) return 0; } 37. 根据输出结果,在程序中填入正确的语句。 class Instrument{ public: virtual void Print() const{cout<<\}; class Piano:public Instument{ public: void Print() const{ } }; class Guitar :public InstruIment{ pub1ic: void Print() const{cout<<\}; void Tone( ) { obj.Print() ; } void main(){ Guitar g; Tone(g); Piano p; Tone(p); } 输出结果为: Guitar::Print Piano::Print 33. #include cout<<\ Instrument &obj 38.写出下列程序的运行结果。 #include void fun(){cout<<“Member of B1.”< void fun(){cout<<“Member of B2.”< class D1:public B1, public B2{ public: int Nv; void fun(){cout<<“Member of D1.”< void main(){ D1 d1; d1.Nv=1;d1.fun(); d1.B1::Nv=2;d1.B1::fun(); d1.B2::Nv=3;d1.B2::fun(); } 运行结果: 38. Member of D1. (2分) Member of B1. (2分) Member of B2. (1分) 39 在划线处填上适当的语句,完成下列程序。 #include Point(double a,double b,double c){ X=a;Y=b;Z=c }//构造函数 double Getx(){return X;} double Gety(){return Y;} double Getz(){return Z;} private: }; class Line : Point{ public: Line(double a ,double b,double c,double d) { K=d; } void show(){ cout< void main() { Line obj(1.2,3.4,5.6,7.8); obj.show(); }//运行结果是1.2 3.4 5.6 7.8 34. double X,Y,Z; pubic :Point(a,b,c) 40.建立一个对象数组,内放5个学生的数据(学号,成绩),设立一个函数 max,用指向对象的指针作函数参数,在max函数找出5个学生中成绩最高者,并输出其学号。 41. #include using namespace std; (1分) class Student {public: Student(int n,float s):num(n),score(s){} (1分) int num; float score; }; (1分) void main() {Student stud[5]={ Student(101,78.5),Student(102,85.5),Student(103,98.5), (1分) Student(104,100.0),Student(105,95.5)}; (1分) void max(Student* ); Student *p=&stud[0]; (1分) max(p); } (1分) void max(Student *arr) {float max_score=arr[0].score; (1分) int k=0; for(int i=1;i<5;i++) if(arr[i].score>max_score) {max_score=arr[i].score;k=i;} (1分) cout<
正在阅读:
第八章 类和对象 复习题04-15
精彩的拔河比赛作文06-12
小学生游园日记10-29
唯美外国美女图片02-10
应用电子技术 电气自动化技术 计算机应用技术 软件技术 计算机网络技术专业人才培养方案07-29
高中随笔作文500字大全11-20
小学生三年级有关科技节的作文06-12
处女膜修复的讲解及内容03-17
2016年浙医二院抗菌药物处方权培训考试试题及答案(内科卷)06-17
06 第六章 节水灌溉机械05-30
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 复习题
- 对象
- 2018年《中级会计实务》易错题
- VBAfind函数
- 创业复习
- 2017年重庆农作物品种审定公告
- 环境管理与规划复习思考题
- 高职院校计算机网络技术试题(第三四章)
- 绝缘油色谱分析 - 图文
- 浙江电大《货币银行学》选修-1-0001
- 06工程量收方与结算管理制度
- 高二政治《生活与哲学第二单元》易错知识点汇总
- 2018年MBA多机构押题汇总
- 职教中心教务处2013-2014学年第一学期工作计划
- 统考初一2014年下期中考试卷
- 2016-2022年中国硅藻泥市场发展现状及市场评估报告 - 图文
- 《大学语文》复习资料-宁稼雨2012.12
- 企业战略管理
- 00山东科技大学数据库课后习题答案+习题
- 国际贸易实务练习题
- 一、初中化学课堂教学设计 - 图文
- 科社终极版