5面向对象复习题.docx
- 格式:docx
- 大小:89.73 KB
- 文档页数:9
(完整word版)面向对象程序设计期末复习题及答案C++面向对象程序设计复习试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
15题,每小题2分,共30分) [主要从作业题目中抽出来]2。
填空题。
(10题,每小题3分,共30分)3、阅读程序,写出程序运行结果。
【也称计算题】(3题,每小题5分,共15分)4、程序编制题【也称综合分析题】. (第1、2题每题8分,第3题9分,共25分)重点复习内容打*号是重点,打▲号是编程题出题范围*基本概念,对象,消息,类。
面向对象系统特性,封装性,继承性,多态性.*▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套.静态成员,对象数组,友元。
*函数重载。
运算符重载。
*引用定义与引用参数* 基类与派生类的定义。
*基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。
多继承与虚基类.*多态性与虚函数.纯虚函数、抽象类。
*▲函数模板。
*▲使用类来定义对象并在程序中的应用题型样题填空题1。
假定AB为一个类,则执行“AB a[10];"语句时,系统自动调用该类的构造函数的次数为_________。
答案:102。
可以用p。
a的形式访问派生类对象P的基类成员a,其中a是_________。
答案:公有继承的公有成员3.能作为重载函数的调用的依据是_________。
答案:参数个数、参数类型4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________答案:eof5。
函数重载是指_________。
答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同(完整word版)面向对象程序设计期末复习题及答案6。
在派生类中重新定义虚函数时必须在_________ 方面与基类保持一致。
答案:参数个数阅读程序例题【计算题】1.分析以下程序的执行结果#include〈iostream.h>class Sample{int x,y;public:Sample() {x=y=0;}Sample(int a,int b) {x=a;y=b;}~Sample(){if(x==y)cout〈〈“x=y”〈<endl;elsecout〈〈“x!=y"〈〈endl;}void disp(){cout〈〈“x=”<〈x〈<“,y”=<<y<<endl; }};void main(){Sample s1,s2(2,3);s1.disp();s2.disp();}解:x=0,y=0x=2,y=3x!=y x=y2.分析以下程序的执行结果#include〈iostream。
面向对象程序设计考试题型:1)选择题10题,共20分2)填空题10题,共20分3)程序阅读题3题,共15分4)程序填空题,10空,共20分5)简答题3题,共15分6)编程题1题,共10分一、选择题:1.属于C#语言的关键字( )。
A. abstractB. camelC. SalaryD. Employ答案:A2.C#语言中,值类型包括:基本值类型、结构类型和()。
A.小数类型B.整数类型C.类类型D.枚举类型答案:D3. 假定一个10行20列的二维整型数组,下列哪个定义语句是正确的()。
A. int[]arr = new int[10,20]B. int[]arr = int new[10,20]C. int[,]arr = new int[10,20]D. int[,]arr = new int[20;10]答案:C4.在类作用域中能够通过直接使用该类的()成员名进行访问。
A. 私有B. 公用C. 保护D. 任何答案:D5.小数类型和浮点类型都可以表示小数,正确说法:( )A. 两者没有任何区别B. 小数类型比浮点类型取值范围大C.小数类型比浮点类型精度高D. 小数类型比浮点类型精度低答案:C6.能作为C#程序的基本单位是( )。
A. 字符B. 语句C. 函数D. 源程序文件答案:B7. 可用作C#程序用户标识符的一组标识符是( )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof答案:B8.引用类型主要有4种:类类型、数组类型、接口类型和()。
A.对象类型B.字符串类型C.委托类型D.整数类型答案:C9.StreamWriter对象的下列方法,可以向文本文件写入一行带回车和换行的文本的是()。
A.WriteLine()B.Write()C.WritetoEnd()D.Read()答案:A10.建立访问键时,如“新建(N)”菜单中的“N”键,需在菜单标题的字母前添加的符号是( )。
面向对象考试题目和答案一、单项选择题(每题2分,共20分)1. 面向对象程序设计中,对象的状态由()来表示。
A. 属性B. 方法C. 消息D. 类答案:A2. 在面向对象程序设计中,封装的目的是()。
A. 隐藏对象的属性B. 隐藏对象的方法C. 隐藏对象的实现细节D. 隐藏对象的消息答案:C3. 面向对象程序设计中,继承的主要优点是()。
A. 重用代码B. 减少代码量C. 提高程序的可读性D. 所有以上选项答案:D4. 在面向对象程序设计中,多态性是指()。
A. 一个对象可以有多个类B. 一个类可以有多个对象C. 一个消息可以有多个行为D. 一个类可以有多个属性答案:C5. 在面向对象程序设计中,以下哪个不是类的组成部分()。
A. 属性B. 方法D. 函数答案:D6. 在面向对象程序设计中,以下哪个概念不是面向对象的核心概念()。
A. 封装B. 继承C. 多态D. 过程答案:D7. 在面向对象程序设计中,以下哪个概念是面向对象的核心概念之一()。
A. 函数B. 过程C. 消息D. 抽象8. 在面向对象程序设计中,以下哪个不是类的成员()。
A. 属性B. 方法C. 函数D. 消息答案:C9. 在面向对象程序设计中,以下哪个不是类的属性()。
A. 私有属性B. 保护属性C. 公共属性D. 全局属性答案:D10. 在面向对象程序设计中,以下哪个不是类的访问修饰符()。
B. 保护C. 公共D. 静态答案:D二、多项选择题(每题3分,共15分)1. 面向对象程序设计中,以下哪些是类的属性()。
A. 私有属性B. 保护属性C. 公共属性D. 全局属性答案:ABC2. 面向对象程序设计中,以下哪些是类的成员()。
A. 属性C. 函数D. 消息答案:ABD3. 面向对象程序设计中,以下哪些是类的访问修饰符()。
A. 私有B. 保护C. 公共D. 静态答案:ABC4. 面向对象程序设计中,以下哪些是面向对象的核心概念()。
面向对象期末考试题及答案一、选择题(每题2分,共20分)1. 面向对象编程中的三大特性是?A. 封装、继承、多态B. 抽象、继承、封装C. 继承、封装、多态D. 封装、抽象、多态答案:A2. 在Java中,哪个关键字用于定义类?A. classB. structC. typeD. interface答案:A3. 以下哪个不是面向对象设计原则?A. 单一职责原则B. 开闭原则C. 里氏替换原则D. 模块化原则答案:D4. 在面向对象编程中,构造函数的作用是什么?A. 用于创建对象B. 用于销毁对象C. 用于实现继承D. 用于实现多态答案:A5. 以下哪个是Java中的访问修饰符?A. privateB. publicC. protectedD. 全部都是答案:D...(此处省略剩余选择题)二、简答题(每题10分,共30分)1. 简述面向对象编程的基本思想。
答案:面向对象编程是一种编程范式,它将现实世界中的实体抽象成对象,这些对象具有属性和行为。
面向对象编程的基本思想是将数据和处理数据的方法结合在一起,形成对象。
通过对象之间的交互来实现程序的功能。
2. 解释什么是多态性,并给出一个简单的例子。
答案:多态性是指允许不同类的对象对同一消息做出响应,但具体的行为会根据对象的实际类型而有所不同。
例如,在Java中,可以通过重载和重写来实现多态。
假设有一个动物类Animal,它有一个方法makeSound()。
然后有一个子类Dog,它重写了makeSound()方法。
当我们创建一个Dog对象并调用makeSound()时,会执行Dog类中的makeSound()方法,而不是Animal类中的。
3. 什么是封装?封装的好处是什么?答案:封装是将对象的数据(属性)和行为(方法)组合在一起,并隐藏对象的内部细节,只暴露出一个可以被外界访问的接口。
封装的好处包括:保护数据、减少错误、提高代码的重用性、增强模块化。
三、编程题(每题25分,共50分)1. 编写一个Java程序,实现一个简单的银行账户类Account,包含以下特性:- 私有属性:账户余额balance- 公共方法:存款deposit(double amount)、取款withdraw(double amount)、获取余额getBalance()答案:```javapublic class Account {private double balance;public Account() {this.balance = 0;}public void deposit(double amount) {if (amount > 0) {balance += amount;}}public void withdraw(double amount) {if (amount > 0 && balance >= amount) {balance -= amount;}}public double getBalance() {return balance;}}```2. 假设有一个名为Car的类,它有两个属性:品牌brand和颜色color。
一、填空题1、面向对象的特征是、、和。
2、面向对象有三个基本要素,它们是、和。
3、类具有属性,它是的抽象,用来描述类的属性。
4、类具有操作,它是的抽象,用和实现来描述。
5、在类层次中,子类只继承一个父类的属性和方法,则称为。
子类继承了多个父类的属性和方法,则称为。
6、OMT方法是RumBaugh等人提出的面向对象开发方法。
开发工作的基础是对,然后围绕这些对象使用来进行独立于语言的设计。
7、Coad和Yourdon方法完成了从需求角度出发的认定工作,面向对象设计可以在此基础上,从设计的角度进一步进行的认定。
8、Booch方法通过分析问题陈述正文,将其中的映射为对象,将其中的映射为方法,从而为对象和方法的认定提供了一种简单的策略,虽然Booch方法原是面向的语言,但仍处于面向对象开发方法的奠基性地位。
9、不仅统一了Booch方法、OMT方法、OOSE方法的表示方法,而且对其作了进一步的发展,最终成为为国际对象组织(OMG)认可的同一建模语言。
10、在客观世界中有若干类,这些类之间有一定的结构关系。
通常有两种主要的结构关系,即和整体-部分关系。
11、在面向对象设计中存在三种内聚,即、和。
二、单选填空题1、对象是面向对象开发方法的基本成分,每个对象可用它本身的一组( )和它可以执行的一组操作来定义。
A. 服务B. 参数C. 属性D. 调用2、在面向对象方法中,把一组具有相同数据结构和相同操作的对象的集合定义为( )。
此定义包括一组数据属性和在数据上的一组合法操作。
A. 聚合B. 类C. 结构D. 主题3、面向对象技术的许多强有力的功能和突出的优点都来源于把系统组织成一个类的层次结构。
一个类的上层可以有父类,下层可以有子类。
这种系统的类层次结构的一个重要性质是( ),通过它,一个类可共享其父类的全部数据和操作。
A. 传递性B. 复用性C. 并行性D. 继承性4、一个面向对象软件的体系结构通过它的成分对象及各对象之间的关系来确定,与传统的结构化开发方法相比,它具有( )的优点。
《面向对象程序设计》复习题1、(C++的输入输出)天猫优惠券,我就要券定义一个函数max,实现输入两个数a、b,比较并从小到大输出。
2、(函数的重载)(1)定义一个带两个参数的函数max,输出最大值。
(2)再定义一个带三个参数的函数max,输出最大值。
(3)主函数测试之。
3、(有默认参数的函数)将题2用带默认参数的函数实现。
4、(变量的引用)(1)定义一个swap1函数,以普通形参传入两个变量a、b,互换a、b的值。
(2)定义一个swap2函数,以指针形参传入两个变量a、b,互换a、b的值。
(3)定义一个swap3函数,以引用形参输入两个变量a、b,互换a、b的值。
(4)主函数定义两个变量x、y传入三个函数,观察x、y值前后的变化。
5、(类的定义)定义一个student类,数据成员包括:学号num,姓名name,年龄age,性别sex,成员函数包括:(1) set函数,键盘输入学号,姓名,年龄,性别(2) display函数,输出学生信息。
6、(构造函数和析构函数)定义一个student类,数据成员包括:学号num,姓名name,年龄age,性别sex,成员函数包括:(1)构造函数,初始化学号,姓名,年龄,性别(2)display函数,输出学生信息。
(3)析构函数,输出学生学号。
(4)主函数定义多个对象,并注意构造函数和析构函数的调用顺序。
7、(构造函数的重载)在题6基础上增加一个默认构造函数,实现构造函数的重载8、将题6用带默认参数的构造函数实现。
9、(对象数组和对象的动态建立及释放)在题8基础上,实现如下主函数:(1)在主函数中定义一个包含三个学生的数组,并初始化之。
(2)在主函数中定义一个student类指针p并用new运算符分配动态内存(3)用delete删除p指向的动态内存。
(4)观察构造函数和析构函数的调用。
10、(复制构造函数)在题8基础上新增加一个复制构造函数,并主函数新增复制构造对象。
《面向对象程序设计》复习要点及复习题(一)复习要点1.标识符、基本数据类型(字节数)、构造数据类型、运算符的种类、运算符的优先级和结合性、控制台输入和输出2.三种基本控制结构、if…else语句、switch语句、for语句、while语句、do…while语句、跳转语句;函数参数传递、函数重载、内联函数;标识符的作用域和生存期。
3.类的定义和使用、this指针、构造函数和析构函数、组合技术、静态成员、友元、运算符重载4.指针与数组、二级指针、动态内存的分配与释放、深复制与浅复制、递归。
5.派生类的构造与析构、派生类与基类的赋值兼容、多重继承与虚基类。
6.虚函数与动态绑定、纯虚函数与抽象类(二) 复习题一、单项选择题。
1.在switch语句中,为了结束分支,一般应在每个分支的结尾处加上语句(C)。
A. continueB. gotoC. breakD. default2.说明友元函数的关键字是(D)。
A. inlineB. virtualC. staticD. friend3.下面对指向常量的指针描述正确的是(C)。
A. 只能指向常量B. 指向的数据可以被修改C. 可以指向普通变量D. 必须进行初始化4.友元函数没有(A)。
A. this指针B. 返回类型C. 函数名D. 参数5.关于重载,(A)不正确。
A. 类名可以重载B. 函数名可以重载C. 运算符可以重载D. 缺省参数是重载的一种方式6.用new分配n维数组空间,首地址赋予指针p,则p应为指向(C)维数组的指针。
A. 0B. 1C. n-1D. n7.为类X重载前缀自增运算,则函数返回类型应为(C)。
A. XB. X*C. X&D. int8.以下(A)未调用构造函数(X为类名)。
A. X*p;B. X obj;C. X obj(1);D. X obj=2;9.若在类外有函数调用X::func();则函数func是类X的(C)函数。
面向对象程序设计复习题专科一、单项选择题1. 在类定义之外定义成员函数时,下列哪些说法是正确的()。
A. 必须在函数名之前加上类名和作用域符B. 类的成员函数不可重载C. 类定义中可以不声明该函数D. 函数名前作用域符课省略2. 多重继承的构造顺序一般可分为4步,下面给出这4个步骤:step1: 任何非虚拟基类的构造函数按照它们被继承的顺序构造。
step2: 任何虚拟基类的构造函数按照它们被继承的顺序构造。
step3: 任何成员对象的构造函数按照它们声明的顺序构造。
step4: 类自己的构造函数。
这4个步骤的正确顺序是()。
A. step4、step3、step1、step2B. step2、step4、step3、step1C. step2、step1、step3、step4D. step3、step4、step1、step23. 假设MyClass是一个类,则该类的拷贝构造函数的声明语句为( ) 。
A. MyClass(MyClass p);B. MyClass& (MyClass p);C. MyClass(MyClass& p);D. MyClass(MyClass * p);4. 重载运算符与原运算符可以不一致的是什么 ( )。
A.优先级 B.操作数个数 C.操作内容 D.结合性5. 当用户进行鼠标操作时,释放鼠标左键会发出()消息。
A.WM_lBUTTONDOWN B.WM_lBUTTONUPC.WM_lBUTTONBLOCK D.WM_RBUTTONUP6. 下面描述中,表达错误的是()。
A. 公有继承时基类中的public成员在派生类中仍是public的B. 公有继承是基类中的private成员在派生类中仍是private的C. 公有继承时基类中的protected成员在派生类中仍是protected的D. 私有继承时基类中的public成员在派生类中是private的7. 可以用p.a的形式访问派生类对象p的基类成员a,其中a是什么成员()A. 私有继承的公有成员B. 公有继承的私有成员C. 公有继承的保护成员D. 公有继承的公有成员8. 考虑函数原型void test(int a,int b=7,char="*"),下面的函数调用中,属于不合法调用的是()A. test(5);B. test(5,8);C. test(6,"#");D. test(0,0,"*");9. 如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是()A. virtual show( )=0;B. virtual void show( );C. virtual void show( )=0;D. void show( )=0 virtual;10. 在 ( ) 情况下适宜采用 inline 定义内联函数。
一、填空题1. 以面向对象方法构造的系统,其基本单位是__________。
对象2. 对象将其大部分实现细节隐藏起来,这种机制称为__________。
封装3. 类中的数据成员的访问属性通常被指明为________。
私有4. 假定x=5,y=6,则表达式x++*++y的值为__________。
355. 把一个类的定义体和所有成员函数的定义体所构成的程序范围叫做该类的____________。
作用域6. 静态数据成员必须在所有函数的定义体外进行__________。
初始化7. 派生类的成员函数可以直接访问基类的__________成员,不能直接访问基类的______成员。
公有、保护;私有8. 若要保证一个公共的基类在派生类中只产生一个基类子对象,则必须都以____________的方式直接继承它。
虚基类9. 如果一个派生类只有一个唯一的基类,则这样的继承关系称为__________。
单继承10. 一个函数定义由________和________两部分组成。
函数头函数体二、选择题1. 以下说法中正确的是()。
BA. C++程序总是从第一个定义的函数开始执行B. C++程序总是从main函数开始执行C. C++函数必须有返回值,否则不能使用函数D. C++程序中有调用关系的所有函数必须放在同一个程序文件中2. 函数重载是指()。
AA. 两个或两个以上的函数取相同的函数名,但形参的个数或类型不同B. 两个以上函数取相同的名字和具有相同的参数个数,但形参的类型可以不同C. 两个以上的函数名字不同,但形参的个数或类型相同D. 两个以上的函数取相同的函数名,并且函数的返回类型相同3. 关于消息,下列说法中不正确的是()。
BA. 发送消息的对象请求服务,接受消息的对象提供服务B. 消息的发送者必须了解消息的接收者如何响应消息C. 在C++中,消息的发送具体体现为对接收消息的对象的某个函数的调用D. 每个对象只能接收某些特定格式的消息4. 关于封装,下列说法中不正确的是()。