




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 1 面向对象程序设计 复习题 一 单项选择题 1 是面向对象系统包含的要素 A 类B 多态C 友元D 重载 答案 A 2 下列对常量的定义中 错误的是 A MyClass const obj 3 4 B char const p hello C int i 1 const int D void show const 答案 C 常量的定义 1 常对象 Const 类名 对象名 实参列表 类名 Const 对象名 实参列表 2 常数据成员 Const 类型 常数据成员 3 常成员函数 类型 成员函数名 Const 4 指向对象的常指针 类名 Const 指针变量名 对象地址 5 指向常变量的指针变量 Const 类型名 指针变量名 3 若有如下函数声明 void Fun int x 则下列 能与 该函数进行重载 A void Fun int y B void Fun int x int y 1 C int Fun int x D void Fun int const 2 答案 D 4 下列对构造函数和析构函数的描述中 错误的是 A 构造函数可以重载 B 析构函数名与类名相同 C 构造函数中可以设置参数的缺省值 D 类中只有一个析构函数 答案 B 5 下列对友元的描述中 错误的是 A 友元破坏了类的封装性 B 友元提高了程序的运行效率 C 友元可以在类外声明和定义 D 友元能够访问类中的私有成员 答案 C 6 下列对继承的描述中 正确的是 A 派生类对象能够访问基类的公有成员 B 派生类继承了基类的公有成员和保护成员 C 派生类对象不能访问基类的保护成员 D 派生类不改变基类成员的访问权限 答案 C 7 程序中 编译时出错的语句是 class Base class Derived public Base Derived objD1 Base objB objD1 A Base pb B Base C Derived objD2 objB D 答案 B 8 下面对派生类的描述中 正确的是 A 派生类是对基类的具体化 3 B 一个派生类可以作为另一个派生类的基类 C 派生类只能有一个直接基类 D 派生类的缺省继承方式是 public 答案 B 9 实现动态联遍必须通过 调用虚函数 A 对象引用B 成员名限定C 对象名 D 构造函数 答案 A 10 C 流中重载的运算符 是一个 A 用于输出操作的非成员函数B 用于输入 操作的非成员函数 C 用于输出操作的成员函数D 用于输入操 作的成员函数 答案 B 11 不是面向对象系统包含的要素 A 多态B 对象C 类D 继承 答案 A 12 下列对常量的定义中 错误的是 A int const size 10 B char const p Good Luck C void const print D const MyClass obj 10 10 答案 C 13 设 Address 表示整型变量 x 的地址 则下列语句执行后 的输出结果为 int x 100 cout x r endl 4 A Address 100B 100 Address C Address AddressD 100 100 答案 D 14 若函数原型为 void Fun int x 9 int y 8 char z 7 则下 列调用错误的是 A Fun B Fun 3 0 C Fun 1 2 D Fun 2 4 a 答案 B 15 若有如下函数声明 void Fun int x 则下列 不 能与该函数进行重载 A void Fun int x int y B void Fun double x C void Fun int x int y 1 D void Fun int x const 答案 C 16 下列对构造函数和析构函数的描述中 正确的是 A 析构函数不可以重载 B 构造函数不能定义为内联函数 C 构造函数中不能设置参数的缺省值 D 析构函数名与类名不同 答案 A 17 下面对静态成员的描述中 错误的是 A 静态成员的提出是为了解决数据共享问题 B 静态数据成员的初始化在类体外进行 C 类的不同对象有不同的静态数据成员值 D 静态成员函数可以直接访问类中的静态数据成员 答案 C 18 下列对友元的描述中 正确的是 5 A 友元可以在类外声明和定义 B 友元降低了程序的运行效率 C 友元不能访问类中的保护成员 D 友元破坏了类的封装性 答案 D 19 下列对继承的描述中 错误的是 A 派生类对象不能访问基类的保护成员 B 派生类对基类成员的访问权限随着继承方式而改变 C 派生类成员可以访问基类的私有成员 D 派生类继承了基类的所有成员 答案 C 20 程序中 编译时出错的语句是 class Base class Derived public Base Derived objD1 Base objB objD1 A Base pb B Base C Derived objD2 objB D 答案 D 21 下面对派生类的描述中 错误的是 A 派生类是对基类的具体化 B 派生类能够作为基类继续派生新类 C 派生类可以有多个直接基类 D 派生类的缺省继承方式是 private 答案 A 22 实现动态联遍不能通过 调用虚函数 A 构造函数B 对象引用C 对象指针 D 成员函数 6 答案 A 23 下面 不是抽象类的特性 A 可以说明纯虚函数 B 不能说明抽象类的对象 C 用做基类 提供公共的接口 D 可以定义虚构造函数 答案 D 24 C 流中重载的运算符 是一个 A 用于输出操作的成员函数B 用于输出操作的 非成员函数 C 用于输入操作的成员函数D 用于输入操作的 非成员函数 答案 B 25 下列有关类的说法不正确的是 A 对象是类的一个实例 B 任何一个对象只能属于一个具体的类 C 一个类只能有一个对象 D 类与对象的关系和数据类型与变量的关系相似 答案 C 分析 对象是类的一个实例 类与对象的关系和数据与变量的 关系相似 所以一个类可以有多个对象 26 下面 项是对构造函数和析构函数的正确定义 A void X X void X X B X X 参数 X X C X X 参数 X X 参数 D void X X 参数 void X X 参数 答案 B 7 分析构造函数无返回类型 可带参数 可重载 析构函数无返 回类型 不可带参数 不可重载 27 的功能是对象进行初始化 A 析构函数 B 数据成员 C 构造函数 D 静态 成员函数 答案 C 分析 当一个对象定义时 C 编译系统自动调用构造函数建 立该对象并进行初始化 当一个对象的生命周期结束时 C 编译系统自动调用析构函数注销该对象并进行善后工作 28 下列表达方式正确的是 A class P B class P public public int x 15 int x void show cout x void show cout x C class P D class P int f public int a f 25 void Seta int x a x 答案 D 分析 在类体内不可对数据成员进行初始化 类定义结束时需 用分号 只有类中的成员函数才能存取类中的私有数据 29 拷贝构造函数具有的下列特点中 是错误的 8 A 如果一个类中没有定义拷贝构造函数时 系统将自动 生成一个默认的 B 拷贝构造函数只有一个参数 并且是该类对象的引用 C 拷贝构造函数是一种成员函数 D 拷贝构造函数的名字不能用类名 答案 D 分析 如果一个类中没有定义拷贝构造函数时 系统将自动生 成一个默认的 拷贝构造函数只有一个参数 并且是该类对象 的引用 拷贝构造函数的名字与类同名 并且不被指定返回类 型 拷贝构造函数是一种成员函数 30 关于静态成员的描述中 是错误的 A 静态成员可分为静态数据成员和静态成员函数 B 静态数据成员定义后必须在类体内进行初始化 C 静态数据成员初始化不使用其构造函数 D 静态数据成员函数中不能直接引用非静态成员 答案 B 分析 静态成员可分为静态数据成员和静态成员函数 静态数 据成员被定义后 必须对它进行初始化 初始化在类体外进 行 一般放在该类的实现部分最合适 也可以放在其他位置 例如 放在主函数前面等 静态数据成员初始化与该类的构 造函数和析构函数无关 在静态成员函数的实现中 可以直 接引用静态成员 但不能直接引用非静态成员 31 关于友元的描述中 是错误的 A 友元函数是成员函数 它被说明在类体内 B 友元函数可直接访问类中的私有成员 C 友元函数破坏封装性 使用时尽量少用 D 友元类中的所有成员函数都是友元函数 答案 A 9 分析 友元函数是非成员函数 在类体内说明了 在类体外定 义 定义和调用等同于一般的普通函数 由于它可以直接访问 类的私有成员 因此破坏了类的封装性和隐藏性 尽量少用 二 填空题 1 下列运算符既可以作为类的成员函数重载 也可以作为类的 友元函数重载 请在表格中的空白处填上正确的表达式 表达式成员函数友元函数 a b 1 2 a 3 operator a 0 aa operator 4 1 答案 1 a operator b 2 operator a b 3 a operator 0 4 operator 0 2 下列程序执行后的输出结果是 12 21 22 请将下列程序补充 完整 include void fun1 1 int b int c c a a b b c void fun2 2 int b int c c a 3 b c void fun3 4 int b int c c a 5 b c void main int x y x 1 y 2 fun1 x y cout x y x 1 y 2 fun2 cout x y x 1 y 2 fun3 x y cout x y endl 2 答案 1 int a 2 int a 3 a b 4 int cout B x Base cout B x private int x class Derived public Base int y z public 1 Constructor 2 Destructor void main Derived obj1 Derived obj2 1 2 3 3 答案 1 Derived int a 0 int b 0 int c 0 Base a y b z c cout D y z 2 Derived cout D 4 设有如下程序结构 class Box void main Box A B C 11 该程序运行时调用 1 次构造函数 调用 2 次析 构函数 答案 1 3 2 3 分析 每创建一个对象自动调用一次构造函数 在这里创建了 A B C 三个对象 所以共调用了三次构造函数 每释放一 个对象 系统自动调用一次析构函数 A B C 对象释放时 分别调用析构函数 所以析构函数共调用了三次 5 设 A 为 test 类的对象且赋有初值 则语句 test B A 表示 答案 将对象 A 复制给对象 B 分析 执行 test B A 语句相当于调用了默认复制构造函数 将 A 对象的属性复制给 B 对象 6 利用 对象名 成员变量 形式访问的对象成员仅限于被声 明为 1 的成员 若要访问其他成员变量 需要通过 2 函数或 3 函数 答案 1 public 2 成员函数 3 友元函数 分析 类体内的数据成员可声明为公有的 私有的和保护的 公有的数据成员可利用 对象名 成员变量 形式来进行访问 私有的数据成员能被类中的其他成员函数或友元函数所调用 保护的数据成员可以在类体中使用 也可以在派生类中使用 但不能在其他类外通过对象使用 三 阅读程序题 1 include class Test public Test double m double n double d p d x m y n void Show 12 void Show const private double x y const double p void Test Show cout x y endl cout p p endl void Test Show const cout x y const endl cout p p const endl void main Test a 8 9 2 5 3 1416 a Show const Test b 2 5 8 9 3 14 b Show 答案 8 9 2 5 p 3 1416 2 5 8 9 const p 3 14 const 2 include class A public A int i cout Constructor endl p new int i 13 A Ap new int r p A cout Destructor endl delete p A void output cout p endl private int p A if this delete p p new int r p return this void main A a 5 A b a A c 6 c a c output 答案 Constructor Copy constructor Constructor Assignment 5 Destructor Destructor Destructor 3 include 14 class Base1 public Base1 int x cout Base1 s con x endl Base1 cout Base1 s des endl class Base2 public Base2 int x cout Base2 s con x endl Base2 cout Base2 s des endl class Derived public Base2 public Base1 public Derived int x int y Base1 y Base2 x cout Derived s con endl Derived cout Derived s des endl void main Derived obj 1 2 答案 Base2 s con 1 Base1 s con 2 Derived s con Derived s des Base1 s des Base2 s des 4 include class A int a b public 15 A a b 0 cout Default Constructing Object a b endl A int aa int bb a aa b bb cout Constructing Object a b endl A cout Destructing Object a b endl void main A x y 2 3 z 4 5 16 答案 Default Constructing Object 0 0 Constructing Object 2 3 Constructing Object 4 5 Destructing Object 4 5 Destructing Object 2 3 Destructing Object 0 0 5 include template class FF TT a1 a2 a3 public FF TT b1 TT b2 TT b3 a1 b1 a2 b2 a3 b3 TT Sum return a1 a2 a3 void main FF x 2 3 4 y 5 7 9 17 cout x Sum y Sum endl 答案 9 21 6 分析找出以下程序中的错误 说明错误原因 给出修改方 案使之能正确运行 include class one int a1 a2 public one int x1 0 x2 0 void main one data 2 3 cout data a1 endl cout data a2 endl 分析 出错原因 构造函数参数表语法错 构造函数没有函数 体 类的对象不能直接访问类的私有成员变量 改正后的程序如下 include class one int a1 a2 public one int x1 0 int x2 0 a1 x1 a2 x2 int geta1 return a1 int geta2 return a2 void main one data 2 3 cout data geta1 endl cout data geta2 endl 18 7 分析以下程序的错误原因 给出修改方案使之能正确运行 include class Amplifier float invol outvol public Amplifier float vin float vout invol vin outvol vout float gain Amplifier float gain return outvol invol void main Amplifier amp 5 0 10 0 cout gain endl 分析 成员函数在类体外定义格式是 函数返回类型 类名 成员函数名 参数表 成员函数调用格式是 对象名 成员 函数名 参数表 改正后的程序如下 include class Amplifier float invol outvol public Amplifier float vin float vout invol vin outvol vout float gain float Amplifier gain return outvol invol void main Amplifier amp 5 0 10 0 cout amp gain endl 19 8 下列程序的运行结果是 include class point int x y public point int a int b x a y b cout calling the constructor function endl point point friend point move point q point cout calling the destructor function n int getx return x int gety return y point point point y p y cout calling the copy initialization constructor function n point move point q cout OK n int i j i q x 10 j q y 20 point r i j return r void main point m 15 40 p 0 0 point n m 20 p move n cout p p getx p gety ms cout Error endl exit 1 MS ms n nn a new int MS for int i 0 i n i a i aa i int Count int x 从数组 a 的前 n 个元素中统计出其 值等于 x 的个数并返回 22 答案 int AA Count int x int i c 0 for i 0 ims cout Error endl exit 1 MS ms 23 n nn a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版室内设计师离职保密及客户信息保护合同
- 2025年二手房交易定金及房屋维修基金缴纳协议
- 2025版桩基工程劳务分包与施工进度控制合同
- 2025年防水施工质量检测与分包合同
- 2025第二行政小区居民楼道清洁与安全巡查合同
- 海南省临高县2025年上半年公开招聘村务工作者试题含答案分析
- 2025版高端住宅售房协议范本及细则
- 2025版商业物业服务与绿色建筑认证合同
- 贵州省织金县2025年上半年公开招聘城市协管员试题含答案分析
- 2025电商运营入职合同范本:试用期规定及转正流程
- 2025年心理辅导:声音疗愈《听听声音》课件设计
- 2025年七年级上册生物知识点总结样本(2篇)
- 变化与更新-2025中国家居家装行业发展研究报告-树懒生活fine-202501
- 丹毒的健康宣教
- 主要施工机械设备、劳动力、设备材料投入计划及其保证措施
- 《柴油机的维护保养》课件
- 4S店企业职业卫生培训
- 石油化工设备维护与检修手册
- 拆迁工程成本控制方案
- 原发性肝癌的CT表现和诊疗
- 竞选竞选大学心理委员参考课件
评论
0/150
提交评论