5面向对象复习题.docx
(完整word版)面向对象程序设计期末复习题及答案
(完整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。
5面向对象复习题(参考模板)
一、填空题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、一个面向对象软件的体系结构通过它的成分对象及各对象之间的关系来确定,与传统的结构化开发方法相比,它具有( )的优点。
面向对象程序设计复习题汇总.doc
面向对象程序设计复习题汇总
面向对象程序设计C复习资料与答案2012年5月第
一、
二、
六、七章习题
一、选择题1、系统约定C源程序文件名的缺省的扩展名为()A、bccB、cC、cppD、vcc 2、面向对象的程序设计将数据与()放在一起,作为一个相互依存、不可分割的整体来处理。
A、对数据的操作B、信息C、数据隐藏D、数据抽象3、当一个函数无返回值时,函数的类型应定义为()A、voidB、任意C、int D、无4、对于C的函数,正确的叙述是A、函数的定义不能嵌套,但函数的调用可以嵌套B、函数的定义不能嵌套,但函数的调用不能嵌套C、函数的定义和调用都不能嵌套D、函数的定义和调用都可以嵌套5、下列语句中错误的是()A、int *pnew int10;B、int *pnew int[10] C、int *pnew int;D、int *pnew int[40]0; 6、假设已经有定义const char *const name”chen”;,下面的语句中正确的是()A、name[3]’a’;B、name”lin”;C、namenew char[5];D、cout T maxT x,T y{ returnxyxy;}并定义了int i;char c;错误的调用语句是()A、maxi,iB、maxc,cC、maxintc,i;D、maxi,c 11、模板的使用是为了()A、提高代码的可重用性B、提高代码的运行效率C、加强类的封装性D、实现多态性12、设有二个语句int x[‘a’];cinx;则编译器认为()A、说明语句int x[‘a’]错B、二个语句都错C、语句cinx错D、二个语句正确,没有语法错13、设有语句void fint a[10],int int y[10],*pyy,n;则对函数f的正确调用语句是A、fpy[10],n;B、fpy,nC、f*py,语句打开文件Sales.dat后,则()A、使输出追加到文件尾部B、打开一个文件进行读操作C、打开一个文件进行读和写操作D、文件以二进制方式打开,默认时为文本文件
《面向对象程序设计》编程题复习及其答案.doc
《面向对象程序设计》复习题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)函数。
面向对象程序设计复习题专科Word版
面向对象程序设计复习题专科一、单项选择题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. 关于封装,下列说法中不正确的是()。
面向对象程序设计复习题(附参考答案)
【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】机器语言中的指令编码为()编码。
[A.]二进制[B.1符号[c.1十进制[D.]数字【答案】A【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】JaVa语言的主要特点不包括()。
[A.]面向对象[B.]自动垃圾回收[CJ处理文件[D.]可移植性【答案】C【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】Java开发工具包简称为()。
[A.]JKD[B.]JRK[C.]JDK[D.]JRE【答案】C【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】具有相同属性和服务的一组对象的模板称为()。
1B.]类[c.1代码[D.]概念【答案】B【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】类是对具有共同属性和行为的对象的抽象描述,每个对象称为该类的一个()。
[A.]产品[B.1元素[c1成分[D.]实例【答案】D【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】Java是一门()语言。
[A.]机器[B.]汇编[C.)面向过程的高级[D.]面向对象的高级【答案】D【知识点】01106.1.1.1【解析】无【题目】【题型:单选题】【难度:中】【考核能力:理解】【漏选得分:是】【自动判分:是】【应用类别:终考】【特殊标签:】使用JDK编译JaVa程序时使用的命令是()。
面向对象程序设计复习资料(可编辑修改word版)
面向对象程序设计复习资料(可编辑修改word版)面向对象程序设计期末总复习题一、单项选择题1.下面关于对象概念的描述中,是错误的。
(B)A.对象代表着正在创建的系统中的一个实体B.对象就是C 语言中的结构体变量C.对象是一个状态和操作(或方法)的封装体D.对象之间的信息传递是通过消息进行的2.继承机制的作用是:(C)A.信息隐藏B.数据封装C.定义新类D.数据抽象3.有关析构函数的说法不正确的是(D)A.析构函数有且只有一个B.析构函数无任何函数类型C.析构函数没有形参D.析构函数不能是虚函数4.友元的作用之一是(A)A.提高程序的运行效率B.加强类的封装性C.实现数据的隐藏性D.增加成员函数的种类5.通常拷贝构造函数的参数是。
(C)A.某个对象名B.某个对象的成员名C.某个对象的引用名D.某个对象的指针名6.如果在基类中将show 声明为不带返回值的纯虚函数,正确的写法是。
(C)A.irtual show()=0;B.virtual void show();C.virtual void show()=0;D.void show=0 virtual;7.下面关于友元的描述中,错误的是。
(D)A.友元函数可以访问该类的私有数据成员B.一个类的友元类中的成员函数都是这个类的友元函数C.友元可以提高程序的运行效率D.类与类之间的友元关系可以继承8.在C++中,运算符不能重载。
(B)A. +B.?:C.-D.<=9.下列关于运算符重载的描述中,是正确的。
(D)A.运算符重载可以改变操作数的个数B.运算符重载可以改变优先级C.运算符重载可以改变结合性D.运算符重载不可以改变语法结构10.在下列函数原型中,可以作为类AA 构造函数的是(D)A.void AA(int) ; B.int AA( ) ; C.AA(int)const; D.AA(int);11.在声明类时,下面的说法正确的是。
(C)A.可以在类的声明中给数据成员赋初值B.数据成员的数据类型可以是 registerC.private,public,protected 可以按任意顺序出现D.没有用private,public,protected 定义的数据成员是公有成员12.继承具有,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
(完整版)面向对象专题练习
5.在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。
6.一般Java程序的类主体由两部分组成:一部分是属性,另一部分是方法。
7.分别用class关键字来定义类,用new关键字来分配实例存储空间。
public abstract void k();
}
class B extends A{
protected void f(){ }//子类修饰符必须大于父类
void k(){//子类修饰符必须大于父类
System.out.print("I am subclass");
}
public static void main(String[] args) {
A.抽象类中必须有抽象方法,接口中也必须有抽象方法
B.抽象类中可以有非抽象方法,接口中也可以有非抽象方法
C.含有抽象方法的类必须是抽象类,接口中的方法必须是抽象方法
D.抽象类中的变量定义时必须初始化,而接口中不是
29、从下列程序中你发现了几处错误D。
abstract class A{
abstract void f(){};//抽象方法没有方法体。
public void f(){//修饰符必须大于接口的范围,对了
System.out.print(s);
}
}
class ClassB{
void g(InterfaceA a){//g方法传入的a为interfaceA类(接口类型引用)
a.f();
}
}
public class E {
public static void main(String[] args) {
面向对象程序设计考试
面向对象程序设计考试(答案见尾页)一、选择题1. 面向对象程序设计(OOP)的基本概念是什么?A. 类和实例B. 过程和函数C. 数据结构和算法D. 对象和封装2. 在面向对象程序设计中,什么是封装?A. 将数据隐藏在对象内部B. 提供统一的接口C. 包含数据和处理数据的函数D. 以上所有3. 在面向对象编程中,什么是继承?A. 重用已有的代码B. 创建新的类C. 在现有类的基础上添加新特性D. 以上所有4. 面向对象编程中的“继承”与“多态”有什么不同?A. 继承允许我们定义新的类,多态允许我们使用父类的接口处理不同的对象B. 继承是创建新类的过程,多态是使用父类接口处理不同对象的行为C. 继承是基于已有的类创建新类,多态是同一接口处理不同对象D. 继承是代码重用,多态是接口一致但实现不同5. 在面向对象编程中,什么是多态?A. 不同的对象对同一消息作出响应B. 同一个接口可以被不同的对象以不同的方式实现C. 对象的属性都是相同的类型D. 对象的状态可以改变6. 面向对象编程中,什么是抽象类?A. 包含抽象方法的类B. 包含常量的类C. 包含事件的类D. 以上所有7. 在面向对象编程中,什么是局部变量?A. 在方法内部定义的变量B. 在类内部定义的变量C. 在对象内部定义的变量D. 在包内部定义的变量8. 面向对象编程中,什么是静态方法?A. 使用静态修饰符定义的方法B. 不依赖于任何对象的方法C. 通过类名调用的方法D. 以上所有9. 在面向对象编程中,什么是构造函数?A. 初始化对象的函数B. 定义对象状态的方法C. 没有参数的方法D. 以上所有10. 面向对象编程中,什么是析构函数?A. 销毁对象并释放资源的方法B. 定义对象行为的方法C. 没有返回值的方法D. 以上所有11. 在面向对象程序设计中,什么是类和对象?它们的关系是什么?A. 类是一种抽象的数据类型,而对象是类的实例。
B. 类是用来描述具有相同属性和行为的对象的集合,对象是类的实例。
《面向对象技术》期末复习资料.docx
《面向对象技术》期末复习资料试卷题型说明:、填空题(10分)选择题(20道题40分)、判断题(10分)、简 答题(3道16分)、写出程序运行结果(4道16分)、程序填空题(1道4分) 编程题(1道4分)。
一〜二、基础题(各章的编程实例不考)1、第一章主要重点在1・2节,1・5节,其中1・6节最为重要。
1- 2:面向对彖程序语言的特征:抽彖、封装、继承和多态。
1- 5:数值型数据的输入:读取时省略数据前的空白,如果遇到正负号或数字,就开始 读数,包括浮点型数据的小数点,并在遇到空口符或其他非数字字符时停止。
1- 5-4:输出格式控制符:Setprecision (n ) n 代表输出的有效数位,包括整数的数位和小数的数位。
Setw (n ) n 代表输出的数据占有的列宽(域宽)SetiosflagsO / Resetiosflags ()用于设置或取消输入或输出的各种格式包括改变数制基数、设置浮点数的精度、转换字母的大小写、设置对齐方式等。
Ios::left/ios::right 左右对齐函数用法:Setiosflagsflos::left / ios::right ) / Resetiosflags (Ios::left / ios::right )1- 5-5: h ex十六进制 输入时在具前加Ox oct八进制 输入时在其丽加0dec 十进制 2、第二章主要重点为:(1) 指针的定义与使用(特殊指针类型不做为重点)(2) 引用的定义与使用注意事项(3) 类型转换有所涉及,但分值不是很大(4) 重点中的重点是2.7节函数部分,尤其是函数重载。
(5) 内联函数与预处理器了解一下。
(6) 作用域和生命期理解掌握,特点是变量类型与初始化。
2- 3:指针用于存放一个对象在内存中的地址,同个指针能操作这个对彖。
具有两个属 与类型无关;长度则与指针类型和关 pi 是指向int 的指针pc 是指向指针的指针 pa 是指向指针的数组f 是指向具有两个参数的函数的指针 f 是一个函数,返回一个指向int 的指针2-3-3:堆内存也成动态内存。
面向对象C考试复习Word版
面向对象C++语言程序设计期末考试复习1、面向对象相关概念:类:具有相同属性和行为的对象集合,把数据和操作封装在一起对象:数据+操作。
面向对象特征:抽象,封装,继承,多态2、输入输出:输入cin>>a>>b;输入不能有endl。
输出cout<<a<<b<<endl;3、const修饰符:●指向常量的指针:如const char *p=”abcd”;不允许改变指针所指的常量,如p[3]=’x’是错误的,但是可以改变指针p的值p=“mn”;是对的。
●常指针:char *const p =“abcd”;指针本身是常量,不能移动,但是所指内容为变量,可以更改,如p[3]=’x’是对的。
●常数据成员,常成员函数,常对象:在类中声明的数据或函数可以是常量,对于常数据成员要用初始化列表初始值,在C++类中,const关键字可以修饰对象和成员函数,const对象不能被修改,一个常对象只能调用它的常成员函数,不能调用普通成员函数。
常成员函数格式:类型说明符函数名(参数表)const;常成员函数可以参加重载。
常成员函数不能更新对象的数据成员,也不能调用该类中的普通成员函数,const成员函数不能修改数据成员。
4、内联函数:在函数说明前冠以关键字inline,目的是消除函数调用时的系统开销,提高运行速度。
注意:内联函数体内不能有循环语句和switch语句。
内联函数的声明必须出现在内联函数第一次被调用之前。
类结构中所有在类说明体内定义的函数都是内联函数。
5、带有缺省参数值的函数:在说明函数原型时,可以给一个或多个形参指定缺省值,调用时如给出实参,则采用实参值,否则采用预先给出的默认形参值。
如某一个类point的构造函数原型为point(int x=1, int y=0);则参数x和y的缺省值为1和0.注意:在函数原型中,所有缺省值的参数都必须从右往左缺省,在函数调用时从左往右将实参与形参结合,如point(int x=1, int y=0) {X=x;Y=y;},那么执行point p(3)之后p的X和Y值分别为3,0.6、函数重载:C++允许功能相近的函数在相同的作用域内以相同函数名声明,从而形成重载。
(完整word版)面向对象技术样题(附答案)
北京大学软件与微电子学院期末试题—面向对象分析与设计一、选择题( 20 分,共 10 题,每题 2 分)1.关于方法论与方法的关系的描述错误的是( B )A .方法论是一种观点,是一个有理论意义的架构。
B.方法包括理论与模型两个重要的方面。
C.面向对象的方法论的重要观点是:封装、数据隐藏、多态、关系等。
D.不同的方法可以属于同一种方法论。
2.关于信息隐藏的描述错误的是(C)A .信息隐藏是指对象在与外界的交互中,尽可能地隐藏对象的内部细节,仅保留有限的对外接口与外部进行联系。
B.信息隐藏既可以隐藏属性,也可以隐藏操作。
C.一个对象信息隐藏的内容对任何对象都是一样的,并不随与之交互的对象的不同而改变。
D.信息隐藏的原则是公开不变的操作,隐藏易变的操作。
3.关于多态的描述正确的是(D)A .多态是指在聚合关系中的各个类中名字相同的属性和操作具有不同的意义。
B.多态的实现机制是编译时静态链接。
C.函数名重载 (overload) 会导致多态现象出现。
D.多态可实现接口复用,节省大量的编码工作量.4.关于重载( overload)与覆盖( override)的说法正确的是( D)。
A .如果子类中的成员函数(f x)具有父类中成员函数f(x) 相同的函数名,那么称子类对父类的f(x) 进行了覆盖。
B.如果子类中的成员函数f(x )具有父类中成员函数f(x) 相同的基调,那么称子类对父类的f(x) 进行了重载。
C.重载导致多态,覆盖与多态无关。
D.覆盖由动态链接实现,重载由静态链接实现。
5.关于用况图与类图的描述正确的是( D)。
A.参与者是用况图中的元素,类是类图中的元素,二者没有关系。
B.用况图中用况应全部识别为类图中的同名类。
C.用况图中参与者应全部识别为类图中的同名类。
D.用况图中参与者有可能识别为类图中的主动类6.关于状态图的陈述正确的是( C)A.一个对象自身的属性值变化不能作为其状态图中的事件。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A.服务
B.参数
C.属性
D.调用
2、在而向对象方法屮,把一纟R具有相同数据结构和相同操作的对象的集合定义为()。 此定义包括一组数据属性和在数据上的一组合法操作。
A.聚合
B.类
C.结构
D.主题
3、面向对象技术的许多强有力的功能和突出的优点都来源于把系统组织成一个类的层次结 构。一个类的上层可以有父类,下层可以有子类。这种系统的类层次结构的一个重要性质是 (),通过它,一个类可共享其父类的全部数据和操作。
供选择的答案:
A〜C.①分析 ②系统设计 ③模块设计 ④子系统设计
⑤対象设计 ⑥数据设计 ⑦操作设计 ⑧行为设计
D〜E.①对象 ②数据结构 ③算法 ④消息传递
A.事件追踪图
B.进程图
C.脚本
D.状态序列图
三、选择填空题
1、从供选择的答案中选择适合下血有关范型的叙述的正确答案,将答案编号与叙述的题号 对应起来。
⑴问题的解决是基于规则的,它把有关问题的知识分解成一纟fl具体规则,用语言的if.then等结构来表示这些规则。
(2)问题的解决把软件视为由一系列步骤构成的算法。每一步骤都是带有预定输入和特定 输出的一个过程,连贯起來产生合理的稳定的贯通于整个程序的控制流。
(3)把一个问题分解成独立执行的模块。让不只一个程序(进程)同时运行。这些进程互相配 合,解决问题。
(4)把标识和模型化问题论域屮的主要实体做为系统开发的起点,主要考虑对象的行为而 不是必须执行的一系列动作。
供选择的答案:
1面向存取 ②面向对象 ③过程性 ④逻辑性
⑤函数型 ⑥而向进程 ⑦说明型 ⑧原型
E.F.①修改 ②更新③照原样④演化
4、从供选择的答案屮选出与卜-面有关类设计的叙述最适合的答案,将具编号填入相应的括 号内。
类常常被看做是一个抽象数据类型的实现,更合适的是把类看做是某种(A)的一个 模型。事实上,类是单个的(B)语义单元。类的用户能够操纵的操作叫做类的(C)。 类定义的其余部分给出数据定义和辅助功能定义,包括类的实现。
供选择的答案:
A.①功能
②概念
③结构
④数据
B.①语法
②词法
③语义
④上下文环境
C.①界血
②操作
③行为
④活动
D.①可自rfl地 ②可有控制地③可通过继承④应受保护不
E.①可移植性 ②可重复性 ③可访问性 ④继承性
5、从供选择的答案屮选出与下面有关需求定义的叙述最适合的答案,将其编号填入相应的 括号内。
有一种非形式的技术,对于捕获信息有时很有用,它就是CRC卡片。。只(2是(A)、(B) 和(C)的缩写。它可以用来组织在每一个了系统屮的类。以CRC卡片为辅助工具的设计 冇以下儿个步骤:识别(A)和(B),分配(B),找寻(C),细化。CRC的作 者强调模拟在执行每个基本功能吋系统内部出现的(D),以此推动细化工作的进行。在 这个过程中,CRC卡片是十分重要的一个工具。
语义数据模型来源于Codd的(C)数据模型和实体一联系模型,并对这类模型进行了扩 充和一般化。语义数据模型口J以表达问题论域的内涵,还町以表示复杂对彖和对彖Z间的联 系。语义数据模型与(C)数据模型本來都是在(D)设计时使用的,但它们的范围已经 扩展到系统的开发。作为(D)结构标准的ANSI/SPARC建议提出了三层模型:外部模 型、概念模型和(E)模型。这三层可以被映象到面向对象设计的三个层次上去。外部模 型与概念模型层相当于高层设计阶段。
类的实现常常包括了其它类的实例,这些实例(D)被其它对彖存取,包括同一个类 的其它实例。类的实现可能还包括某些私有方法,实现它们的类可以使用,而其它任何对象 都不能使用。
类,就它是一个数据值的聚合的意义上来看,Ai Pascal的记录或C屮的结构类似,但 又有差别。类扩展了通常的记录语义,可提供各种级别的(E )o类不同于记录,因为 它们包括了操作的定义,这些操作与类中声明的数据值有相同的地位。
A.论域分析
B.高层设计
C.实例建立
D.类的开发
9、应用程序可以通过执行对象的操作来改变对象的属性值,但它必须通过()的传递。
A.接口
B.控制
C.消息
D.实例
10、在软件开发过程中,抽取和整理用户耍求并建立问题论域精确模型的过程叫做()。
A.生存期
B.面向对象分析
C.面向对象程序设计
D.面向对象设计
一、填空题
1、面向对象的特征是、、和。
2、而向对彖有三个基本要素,它们是、 和 。
3、类具有属性,它是 的抽象,用 来描述类的属性。
4、类具有操作,它是的抽象,用和实现來描述。
5、在类层次中,子类只继承一个父类的属性和方法,则称为。子类继承了多个父类的属 性和方法,则称为。
6、OMT方法是RumBaugh等人提出的面向对象开发方法。开发工作的基础是对,然
则可让该对象(E
)o
供选择的答案:
A.①基木单位
②最小单位③最人单位
④语法单位
B〜C.①行为
②功能
③操作
④数据
⑤属性
D.①接口
②消息
③信息
④操作
⑤过程
E.①撤消
②歇着
③缺省
④隐式引用⑤引用自己
3、从供选择的答案中选出与下面冇关面向对象开发过程的叙述最适合的答案,将其编号填
入相应的括号内。
在血向对象软件开发过程中特别重视复用。软件构件应独立于当初开发它们的应用而存 在。在以后的应用开发中,对以调整这些独立构件以适应新问题的需要。因此,应使得类成 为一个(A)的单元。这样就有一个(B)生存期问题。(B)生存期有自己的 步骤,与任一特定应用的开发(C)。按照这些步骤,可以完整地描述一个基本(D)。 而不仅仅考虑当前正在开发的系统。系统开发的各个阶段都可能会标识新的类。随着各个新 类的标识,(B)生存期引导开发工作逐个阶段循序渐进。
2、从供选择的答案中选出•下面有关面向对象范型的叙述最适合的答案,将其编号填入相 应的括号内。
对象是面向对象范型的(A)。每个对象可用它自己的一组(B)和它可以执行的 一组(C)来表征。应用执行对象的(C)可以改变该对象的(B)。它的应用 必须通过(D)的传递。可以认为,这种(D)的传递大致等价于过程性范型中的 函数调ቤተ መጻሕፍቲ ባይዱ。某些语言提供了特殊功能,允许对象引用自己。若一个对象没侑显式地被引用,
9、不仅统一了Booch方法、OMT方法、OOSE方法的表示方法,而fl对其作了进一步 的发展,最终成为为国际对象组织(OMG)认可的同一建模语言。
10、在客观世界中有若干类,这些类之间有一定的结构关系。通常有两种主要的结构关系, 即和整休■部分关系。
11、在面向对象设计屮存在三种内聚,即、 和。
二、单选填空题
A.传递性
B.逐步求精
C.继承性
D.全局性
15、继承有单继承和多继承。单继承指的是子类只有一个父类,在一个类层次结构中若只 有单继承,则该类层次结构是树形结构。多继承指的是子类可以有多个父类,在一个类层次 结构中若有多继承,则该类层次结构是()层次结构。
A.树形
B.星形
C.网状
D.环形
16、动态模型描述与时间和变化冇关的系统的性质。该模型描述了系统的控制结构,表示 了瞬吋的行为化的系统控制性质,它关心的是系统的控制、操作的执行顺序。它从系统涉及 的事件和对象的()出发,表现了对象及对象间的相互行为。
供选择的答案:
A,B.
①控制
②输出
③输入
④处理
⑤计算
⑥解释
⑦比较
⑧创建
C.
①变换
②关系
③抽象
④事务
D.
①网络
②程序
③算法
④数据库
E.
①低层
②底层
③内部
④存储
7、从供选择的答案屮选出与下而的叙述最适合的答案,将其编号填入相应的括号内。
从分析到设计的过程流如图所示。一旦已经开发完成一个合理完整的(A)模型后,就 要着手(B)的设计。这需要描述(B)的特征,以准确表达待实现的用户需求,以及实 现需求所必须的支持坏境。一旦定义了各个(B),就开始(C)设计,这时,可利用CRC卡片,将属性转换为(D),将关系转换为(E)。
A.逻辑
B.顺序
C.控制
D.算法
22、状态是对象属性值的抽象,状态指明了对象对()的响应。
A.输入事件
B.输入信息
C.输入数据
D.输入序列
23、活动是一种有时间间隔的操作,它是依附于状态的操作。动作是一种瞬时操作,它是 与()联系在一起的操作。
A.时间
B.事件
C.控制
D.状态
24、事件可以看成是信息从一个对象到另一个对象的单向传送。因此要确定各事件的发送 对象和接收对象。()用来表示事件、事件的接收对象和发送对象。
A.使用方式
B.界面
C.调用
D.继承
6、属性指的是类中对象具有的特性(数据)。不同对象的同一属性可具有相同的或不同的 ()。
A.属性值
B.操作
C.服务
D.控制
7、操作是类中对象所使用的一•种功能或变换。类中的各个对象町以共享操作,方法是类中 操作的()o
A.别名
B.实现步骤
C.功能
D.脚本
8、()应当在应川分析之前进行,因为我们在了解问题之前应对问题敞开思想考虑,不 应加以限制。
A.状态
B.属性
C.操作
D.控制
17、动态模型描述的系统属性是他发事件、事件序列、状态、事件和状态的组织。使用() 作为描述工具。
A.状态图
B.顺序图
C.活动图
D.进程图