面向对象期末考试答案汇总
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案
最新国家开放大学电大本科《面向对象程序设计》期末题库及答案考试说明:本人针对该科精心汇总了历年题库及答案,形成一个完整的题库,并且每年都在更新。
该题库对考生的复习、作业和考试起着非常重要的作用,会给您节省大量的时间。
做考题时,利用本文档中的查找工具,把考题中的关键字输到查找工具的查找内容框内,就可迅速查找到该题答案。
本文库还有其他网核及教学考一体化答案,敬请查看。
《面向对象程序设计》题库及答案一一、单项选择题(每小题2分,共20分)1.设x和y均为bool量,则x||y为假的条件是( )。
A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}”,则元素a[1][2]的值为( )。
A.2 B.4 C.6 D.83.假定P是具有int* *类型的指针变量,则给P赋值的正确语句为( )。
A.p=new int B.p=new int*C.p=new int** D.p=new int[10]4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( )。
A.可维护性 B.可复用性C.兼容性 D.正确性5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( )放在函数原型或函数头的前面。
‘A.in B.inlineC.inLine D.InLiner .6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( )。
A.1ength+1 B first+lengthC.(first+1ength—1)%MS D.(first+length)%MS7.假定一个类的构造函数为“A(int aa,int bb){a=aa;b=aa*bb;)”,则执行“A x(4,5);”语句后,X.a和x.b的值分别为( )。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案一、单选题1.在下列概念中,Java语言只保留了DA.运算符重载B.结构和联合C.指针D.方法重载2.下列类定义中,不正确的是BA.cla某{....}B.taticcla某implementy1,y2{....}D.cla某e某tendy{....} C.publiccla某e某tendApplet{....}3.下列语句序列执行后,k 的值是Bintm=3,n=6,k=0;while((m++)<(--n))++k;i++先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增1作为i的值。
如i=1,则表达式(i++)的值等于1,而i的值变为2。
++ii先自增1,再把自增后的值赋给表达式(++i)。
如i=1,则表达式(++i)的值等于2,i的值也为2,A.0B.1C.2D.34.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是AA.a[0]=7;B.i=i+2C.i++---j;D.a(0)=66;5.Java语言的类间的继承关系是BA.多重的B.单重的C.线程的D.不能继承6.下列语句序列执行后,k的值是Cinti=10,j=18,k=30;witch(j-i){cae8:k++;cae9:k+=2;cae10:k+=3;default:k/=j;}A.31B.3C.2D.337.设有定义float某=3.5f,y=4.6f,z=5.7f;则以下的表达式中,值为true的是CA.某>y||某>zB.z>(y+某)C.某!=yD.某<y&!(某<z)8.下列修饰符中,定义类头时能使用的修饰符是CA.privateB.taticC.abtractD.protected9.设i、j、k为类某中定义的int型变量名,下列类某的构造函数中不正确的是BA.某(intm){...}B.void某(intm){...}D.某(inth,intm,intn){...}C.某(intm,intn){...}10.下列对封装性的描述中,错误的是DA.封装体包含了属性和行为B.封装使得抽象的数据类型提高了可重用性C.被封装的某些信息在封装体外是不可见的D.封装体中的属性和行为的访问权限是相同的11.下列关于包的描述中,错误的是BA.包是若干个类的集合B.包是一种特殊的类型D.包有有名包和无名包两种C.包是使用package语句创建的12.下列关于Applet程序的描述中,错误的是CA.Applet程序的主类必须是Applet类得子类B.Applet不是完整的独立程序C.Applet程序的主类中应有一个main()方法D.Applet的字节码文件必须嵌套在一个HTML文件中13.下列界面元素中,不是容器的是A.DialogB.FrameCC.LitD.Panel14.下列关于异常处理的描述中,错误的是DA.程序运行时异常由Java虚拟机自动进行处理B.使用try-catch-finally语句捕获异常C.使用throw语句抛出异常D.捕获到的异常只能在当前方法中处理,不能在其他方法中处理15.以下方法不属于迭代器(Iterator)接口所定义的方法的是D A.haNe某t()B.ne某t()16.主线程属于A.守护线程C.remove()D.ne某tElement()(C)B.Thread线程C.用户线程D.Runnable线程二、填空题1.2.三目运算符的3个操作数中,第一个操作数的类型必须是逻辑型的。
《面向对象程序设计C++》期末试卷及标准答案
《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是()。
A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。
A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。
A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是()。
A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是()。
A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。
已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
成人教育 《面向对象程序设计》期末考试复习题及参考答案
面向对象程序设计复习题二一、填空1.程序的三种常见结构是、、,其中结构是程序的默认结构。
2.同名方法给出不同的实现,并通过参数类型或个数进行区分,称为。
3.和“继承”匹配的概念是。
4.由类构建对象的过程称为。
5.抽象类是含有的类。
6.实现软件复用有两种方式,分别为、、。
7.有定义const int *p,p称为。
8.通过继承产生的类称为。
9.virtual关键字在C++中有两个用处,分贝是,和。
10.方法重载和实现了多态性。
11.请给出C++外的另外一种支持面向对象设计语言。
12.类的三个要素是、、。
13.对象释放前执行的函数是。
二、名词解释1、构造函数2、对象3、运算符重载4、析构函数5. 面向对象6. 继承三、简答1.比较类和结构体?2.重载的意义?3.抽象类的作用和意义?4.组合与继承的区别?四、辩析1.任何父类对象都可以被子类对象替代。
2.public修饰符号破坏了数据的开放性。
3.private继承方式不能产生子类。
4.不能实例化的类一定是抽象类。
五、综合回答1.简述多态的实现机制。
2.谈谈多态的意义。
3.面向对象程序设计思想的优点和缺点。
面向对象程序设计复习题二答案一、填空(1)顺序(2)选择(3)循环(4)顺序(5)函数重载(6)抽象(7)实例化(8)纯虚函数(9)继承(10) 组合(9)和(10)不区分顺序(11)常量指针(12)派生类(13)虚函数(14)虚拟继承(13)和(14)不区分顺序(15)覆盖(16)Java或者C#(17)类的标识(18)类的状态(19)类的操作(17)(18)(19)不区分顺序(20)析构函数二、名词解释1、当类实例化时自动调用的成员函数,负责实现对象的初始化2、按照数据类型分配的内存空间,可以实现方法的调用3、将系统定义的运算符操作对象的类型扩展的过程,一般针对自定义类型4、对象空间释放之前自动调用的函数5、是程序设计思想,相对面向过程而言更加强调封装性6、两个类之间的一种关系,其中一个类的某个成员类型是另一个类三、简答1、C++中类和结构体具有同等的功能,唯一区别是类缺省成员属性是private,而结构体缺省为public2、重载的意义在于丰富了动作的多样性,但是并不加重程序员的负担。
c面向对象程序设计期末考试题及答案
c面向对象程序设计期末考试题及答案一、选择题(每题2分,共20分)1. 下列哪个是面向对象程序设计的特点?A. 封装B. 继承C. 多态D. 所有选项都是2. 在Java中,以下哪个关键字用于定义类?A. classB. structC. typeD. classdef3. 以下哪个是Java中不允许的类成员访问修饰符?A. publicB. protectedC. privateD. global4. 以下哪个是Java中实现多态的方式?A. 函数重载B. 函数重写C. 接口D. 抽象类5. 在Java中,哪个关键字用于声明一个方法,该方法没有返回值?A. voidB. returnC. noneD. null6. 以下哪个是Java中创建对象的语法?A. new ClassName();B. create ClassName;C. make ClassName;D. ClassName();7. 在Java中,以下哪个是正确的构造方法声明?A. public ClassName();B. public ClassName new();C. public new ClassName();D. public ClassName create();8. 以下哪个是Java中实现继承的方式?A. 使用extends关键字B. 使用implements关键字C. 使用interface关键字D. 使用new关键字9. 在Java中,以下哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. class10. 以下哪个是Java中实现封装的方式?A. 使用public关键字B. 使用private关键字C. 使用protected关键字D. 使用default关键字答案:1. D2. A3. D4. B5. A6. A7. A8. A9. A10. B二、简答题(每题10分,共20分)1. 简述面向对象程序设计中的“封装”概念及其重要性。
面向对象期末考试题及答案
面向对象期末考试题及答案一、选择题(每题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。
《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案4
《面向对象程序设计JA V A语言程序设计》期末考试试题及部分答案1一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。
1.下列语句序列执行后,k 的值是( B )。
int m=3, n=6, k=0;while( (m++) < ( -- n) ) ++k;A) 0 B) 1 C) 2 D) 32.设i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( B )。
A) i = i + 2 B) a[0] = 7;C) i++ - --j; D) a(0) = 66;3.Java语言的类间的继承关系是( B )。
A) 多重的B) 单重的C) 线程的D) 不能继承4.设有定义int i = 6 ;,则执行以下语句后,i 的值为( C )。
i += i - 1;A) 10 B) 121 C) 11 D) 1005.下列选项中,用于在定义子类时声明父类名的关键字是( C )。
A)interface B) package C) extends D) class6.若已定义byte[ ] x= {11,22,33,-66} ;其中0≤k≤3,则对x数组元素错误的引用是( C )。
A) x[5-3] B) x[k] C) x[k+5] D) x[0]7.下列语句序列执行后,ch1 的值是( B )。
char ch1='A',ch2='W';if(ch1 + 2 < ch2 ) ++ch1;A) ‘A' B) ‘B' C) ‘C' D) B8.下列语句序列执行后,i 的值是( D )。
int i=8, j=16;if( i-1 > j ) i--; else j--;A) 15 B) 16 C) 7 D) 89.下列语句序列执行后,k 的值是( C )。
面向对象程序设计期末复习题及答案1
C++面向对象程序设计复习试题类型1、单项选择题(在每小题的四个备4.在进行完任何C++流的操作后,都可以用C++ 流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
15 题,每小题2 分,共30 分) [主要从作业题目中抽出来]答案:eof 5.函数重载是指____________ 。
答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同3 题,每小题5 分,共15 分)程序编制题【也称综合分析题】每题8 分,第3题9分,共25 分)容打*号是重点,打▲号是编程题出题范围*基本概念,对象,消息,类。
面向对象系统特性,封装性,继承性,多态性。
*▲ C++ 类的构成,类与对象,构造与析构,动态存储,类嵌套。
静态成员,对象数组,友元。
*函数重载。
运算符重载。
*引用定义与引用参数*基类与派生类的定义。
*基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。
多继承与虚基类。
*多态性与虚函数。
纯虚函数、抽象类。
* ▲函数模板。
* ▲使用类来定义对象并在程序中的应用样题填空题1. 假定AB 为一个类,则执行“ a[10]; ”语句时,系统自动调用该类的构造函数的次数为。
答案:102. 可以用p.a 的形式访问派生类对象P 的基类成员a, 其中a 是__________________ 。
答案:公有继承的公有成员阅读程序例题【计算题】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=0 x=2,y=3 x!=y x=y2.分析以下程序的执行结果#include<iostream.h> int add(int x,int y){return x+y;2. 填空题。
《面向对象程序设计C 》期末试卷及标准答案
《面向对象程序设计C++》期末考试试卷(B)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( )就是错误的。
A.C语言就是C++语言的一个子集B.C语言与C++语言就是兼容的C.C++语言对C语言进行了一些改进D.C++语言与C语言都就是面向对象的2、已知:int m=10; 下列表示引用的方法中,( )就是正确的。
A.int &x=m;B.int &y=10;C.int &z;D.float &t=&m;3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的就是( )。
A.testDefaulParam(5);B.testDefaulParam(5,8);C.testDefaulParam(5,'#');D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的就是( )。
A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的就是( )。
A.类就是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了( )次构造函数。
A.0B.1C.2D.37、有关析构函数的说法,不正确的就是( )。
A.析构函数有且仅有一个B.析构函数与构造函数一样可以有形参C.析构函数的功能就是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的就是( )。
java面向对象程序设计期末考试题及答案
java面向对象程序设计期末考试题及答案一、单项选择题(每题2分,共20分)1. 在Java中,哪个关键字用于声明一个类?A. classB. structC. interfaceD. enum答案:A2. 下列哪个是Java中的访问修饰符?A. publicB. privateC. protectedD. All of the above答案:D3. 在Java中,哪个关键字用于创建对象?A. newB. createC. makeD. instantiate答案:A4. Java中的继承是通过哪个关键字实现的?A. extendsB. inheritC. deriveD. superclass答案:A5. 在Java中,哪个关键字用于实现接口?A. implementsB. extendsC. interfaceD. abstract答案:A6. 下列哪个不是Java中的方法重载的条件?A. 方法名相同B. 参数列表不同C. 返回值类型不同D. 访问修饰符不同答案:C7. 在Java中,哪个关键字用于声明一个抽象方法?A. abstractB. virtualC. overrideD. final答案:A8. Java中的多态性可以通过哪种方式实现?A. 方法重载B. 方法覆盖C. 接口实现D. 继承答案:B9. 在Java中,哪个关键字用于声明一个内部类?A. innerB. nestedC. staticD. inner class答案:B10. Java中的垃圾回收机制是自动的吗?A. YesB. NoC. SometimesD. Depends on the JVM答案:A二、填空题(每题2分,共20分)1. Java中,一个类可以继承另一个类的______方法和属性。
答案:非私有2. Java中的______关键字用于声明一个类是不可被继承的。
答案:final3. 在Java中,______关键字用于声明一个类是抽象的。
《面向对象系统分析与设计》期末综合练习题(答案版)
面向对象系统分析与设计期末综合练习题一、选择题1.Heave学院请Decoder软件公司开发一个新的OO课程系统,院长Tom宣布该系统一定要成为学院的great software,下面对于great software的说法正确的是?()(A)Decoder公司程序员满意软件。
(B)Heave学院师生满意的软件。
(C)价格最贵的软件。
(D)Decoder公司程序员和Heave学院师生都满意的软件。
2.Heave学院准备开发一个新的Java版的OO课程注册系统,该系统可以供学生查询期末成绩、教师统计班级成绩正态分布、教务统计GUITARIO各项能力在各门课程中的落实情况,而且随着历史数据的积累,今后还可能引入数据挖掘技术,为院长提供各届学生的整体进步情况,请问Decoder公司的系统架构师应该采用哪种设计模式来设计成绩统计模块()(A)状态模式(B)观察者模式(C)工厂模式(D)装饰者模式3.Heave学院原有的课程目录系统是用SmallTalk语言开发的,并向外部发不了一套访问接口。
学院为了节约成本,不准备重新开发该目录系统,为此Decoder需要设计一套与之兼容的Java接口对其进行封装。
这样可以更方便地将旧课程目录系统集成到新的系统中,同时为将来的升级留有余地。
请问系统设计师在设计时应该采用哪个设计模式?()(A)模版方法模式(B)适配器模式(C)观察者模式(D)外观模式4.Heave学院新的OO课程注册系统,可以与签约银行联网直接代收学费,但银行的业务逻辑错综复杂,为此Heave学院希望银行能够提供一套新的接口以屏蔽并简化原有业务操作的复杂性。
这套新接口设计上体现了哪个设计模式的思想()(A)适配器模式(B)观察者模式(C)装饰者模式(D)外观模式5.Heave学院的期末成绩统计可以饼状图、柱状图、曲线、表格等多种形式进行显示。
但不论何种形式显示,其统计算法census()需要通过prepareData()、generateChart()、saveChart()、showData()四个步骤,其中第1步与第2步对于不同的显示方式是不同的,那么系统设计师在设计该系统时,会使用哪个设计模式()(A)模版方法模式(B)观察者模式(C)适配器模式(D)外观模式6.Heave学院的历史数据挖掘器的设计很有挑战性,其难点在于院方要求各种形式的挖掘组件可以任意组合,任意拼装,每个挖掘组件完成独立的挖掘任务,互不干扰,组装后的挖掘器套件运行后,会形成一份报表,用以呈现挖掘结果。
《面向对象程序设计C--》期末试卷及标准答案集总解析
《面向对象程序设计C++》期末考试试卷(B)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第8页上)】一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( D )是错误的。
A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的2、已知:int m=10; 下列表示引用的方法中,(A )是正确的。
A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m;3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是( C )。
>A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是( A )。
A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的是( D )。
A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的^D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了(D )次构造函数。
A.0 B.1 C.2 D.37、有关析构函数的说法,不正确的是( B )。
A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型。
《面向对象程序设计C++》期末试卷及标准答案集总
《面向对象程序设计C++》期末考试试卷(B)班级:姓名:学号: 分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第8页上)一、单项选择题(每小题2分,共40分)1、关于C++与C语言关系的描述中,( D )是错误的。
A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的2、已知:int m=10; 下列表示引用的方法中,(A )是正确的。
A.int &x=m; B.int &y=10;C.int &z;D.float &t=&m;3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z=’*’);下面函数调用中,不合法的是( C ).A.testDefaulParam(5); B.testDefaulParam(5,8);C.testDefaulParam(5,’#’); D.testDefaulParam(0,0,'*');4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是( A )。
A.函数的返回值类型B.参数的类型C.函数名称D.参数个数5、下列有关C++类的说法中,不正确的是( D )。
A.类是一种用户自定义的数据类型B.只有类中的成员函数或类的友元函数才能存取类中的私有成员C.在类中,如果不做特别说明,所有成员的访问权限均为私有的D.在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array[3];时,调用了(D )次构造函数。
A.0 B.1 C.2 D.37、有关析构函数的说法,不正确的是( B ).A.析构函数有且仅有一个B.析构函数和构造函数一样可以有形参C.析构函数的功能是在系统释放对象之前作一些内存清理工作D.析构函数无任何函数类型8、类定义的内容允许被其对象无限制地存取的是( C )。
《面向对象程序设计C++》期末试卷及标准答案
《面向对象程序设计C++》期末考试试卷(A)班级::学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是()。
A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括()。
A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=()。
A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*');下面函数调用中,不合法的是()。
A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是()。
A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,()是正确的。
已知:int a=1000;A. int &x=a;B. char &y;C. int &z=1000;D. float &t=&a;7、在一个函数中,要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用()。
电大面向对象程序期末复习题目与答案(精选)
电大面向对象程序期末复习题目与答案(精选)一、单选题,在括号内填写正确的选项编号{每小题2分,共20分)1.对象是构成现实世界的一个独立单位,它具有自己的静态特征和()特征。
A.颜色B.动态 c.状态 D 重量2.使用JDK编译Java程序时使用的命令是( )。
A. javaB. javacC. appletviewer D javadoc3.包含主方法的类被称为主类,主方法的存储控制属性应定义为()。
A. finalB. abstractC. short Do static4.在类的定义中,若需要把一个属性或方法定义为类成员,而不是实例成员,则使用的修饰符为( )。
A. constB. finalC. static D public5.JaV3 语言中规定的转义字符,以()字符作前缀。
A. B.I C. / D.\6.把对象的属性和服务组合成一个独立的整体,尽可能隐蔽其内部的细节,这称为对象的()。
A.封装性B.多态'性C.继承性D.开放性7.具有()访问权限的成员能够被本类和其他任何类中的成员所访问。
A. publicB. protectdC. privateD.缺省8.在类定义首部的语法格式中,()不能作为其中的修饰符。
A. publicB. protectdC. extendsD. abstract9.下面的关键字( )与异常处理无关。
A. throwB. throwsC. importD. finally10.下面( )既可以作为流的数据源,又可以作为流的目的地。
A.键盘B.磁盘文件c.显示器D.扫描仪二、是非判断题,在每小题后面括号内打上对号、/表示叙述正确,打上叉号×表示叙述错误11. Java既支持类的单继承,又支持类的多重继承。
( )12.在一个派生类中,能够定义与上层父类中的成员具有相同名称的成员。
( )13.派生类可以直接访问从父类中继承下来的所有成员。
( )14.在Java语言中,可以把实现了一个接口的类对象,赋给这个接口的引用对象。
面向对象程序设计》期末试卷及标准答案
《面向对象程序设计C++》期末考试试卷(A)班级:姓名:学号:分数:试卷说明:本套试题共四个大题,全部题目都答在答题纸上,写在其他地方均无效。
(答题纸在本套试卷的第10页上)一、选择题(每小题2分,共40分)1、C++是(C )。
A. 面向对象的程序设计语言B. 面向过程的程序设计语言C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( D )。
A. 封装性B. 多态性C. 继承性D. 功能分解,逐步求精3、若定义:string str; 当语句cin>>str; 执行时,从键盘输入:Microsoft Visual Studio 6.0!所得的结果是str=( B )。
A. Microsoft Visual Studio 6.0!B. MicrosoftC. Microsoft VisualD. Microsoft Visual Studio 6.04、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是( C )。
A. testDefaulParam(5);B. testDefaulParam(5,8);C. testDefaulParam(5,'#');D. testDefaulParam(0,0,'*');5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。
A. float sum(int x, int y);B. int sum(int a, int b);C. float sum(float x, float y);D. double sum(int y, int x);6、下列表示引用的方法中,( A )是正确的。
c面向对象程序设计期末考试题及完整参考答案
3.distanee/400.0改为distanee/400或者distanee/400.0f;
4.public float ISwimmable.Run(float distanee)改为float ISwimmable.Run(float distanee)
7.类索引函数的参数类型必须为或。
8.类对接口方法的实现时,在方法名称之前加上接口名,这叫做对接口方法的实现,此时这个方法是这个
类的员,不能通过类的实例来访问。
9.作为一种特殊的函数成员,重载类的操作符时,被重载的操作符必须被声明为公有的和,并通过在关键
字operator后跟操作符来声明。
二、判断题(每小题1分,共5分)
public virtual float Run( float dista nce)
{
retur n dista nce/Speed;
}
public Automobile(float speed)
{
Speed = speed;
}
}
public class Amphicar:Automobile, ISwimmable
Console.WriteLine("{0}空中飞行1000公里需{1}小时", plane, plane.Run(1000)); //调用IFlyable接口Run方法
Con sole.ReadL in e();
}
}
public in terface IFIyable
{
public float Run( float dista nee);
Java程序设计(面向对象基础)期末单元测试与答案
一、单选题1、下面关于类的描述错误的是()。
A.类的实现包括类声明和类体两部分B.一个包可以包含多个类C.类的方法都由方法头和方法体组成D.一个Java程序可以有多个公共类正确答案:D2、关于面向对象概念的描述不正确的是()。
A.程序中的对象等同于现实生活中的对象B.对象描述的是客观世界的实体C.在Java中通过类来描述对象D.类是具有相同特征的若干对象的模板正确答案:A3、下列构造方法的调用方式中,正确的是()。
A.按照一般方法调用B.只能通过new自动调用C.被系统调用D.由用户直接调用正确答案:B4、对于下面()类定义,可以通过“new J_Class()”生成类J_Class 的实例对象。
A.public class J_Class {public J_Class(void) {}}B.public class J_Class { }C.public class J_Class {public void J_Class() {}public J_Class(String s) {}}D.public class J_Class {public J_Class(String s) {}}正确答案:B5、在Java中,下面对于构造函数的描述正确的是()。
A.构造函数和类有相同的名称,并且不能带任何参数B.构造函数的返回类型是voidC.一个类可以定义多个构造函数D.类必须显式定义构造函数正确答案:C6、下列关于包的描述中,错误的是()。
A.包是使用package语句创建的B.包是若干个类的集合C.包是一种特殊的类D.包有有名包和无名包两种正确答案:C7、下面关于包的描述中,错误的是()。
A.包分为有名包和无名包两种B.包是若干对象的集合C.使用package语句创建包D.使用import语句引入包正确答案:B二、填空题1、类是一组具有相同()和()的对象的抽象。
()是由某个特定的类所描述的一个个具体的对象。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、填空(15分)
1、类之间的静态联系称作关联。
•在实例化后,由类产生对象,链是关联的实例。
•在系统实现时,关联采用对象的属性来实现。
2、用例图用于建立需求模型,描述用户的需求。
对象图是面向对象分析中的基本模型,属于静态结构模型。
3、顺序图(时序图)、通信图、活动图、状态图用于描述系统的行为方面的特征,属于动态结构模型。
4、时序图构成:参与者、相互协作的对象、对象的生命线、参与者与对象之间发送的消息、执行规约
5、表示
[可见性] 属性名[:类型][ =初始值]
可见性分为+表示:(公有的)、#表示:(受保护的)、-表示:(私有的)、~(包,只有在同一包中声明的类能够使用这一属性)。
二、名词解释(15分)
1、面向对象方法:是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。
2、类:是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作务两个主要部分。
类的作用是用来创建对象,对象是类的一个实例。
3、抽象:指从事物中舍弃个别的、非本质的、与问题域无关的特征,而抽取共同的、本质特征的、相关的做法。
4、多态性:在具有继承关系的类层次结构中可以定义同名的操作或属性,但这些属性或操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。
(“同名不同参”或“同名不同类”)
5、OOA模型:就是通过面向对象的分析所建立的系统分析模型。
用况:一个用况是对参与者使用系统的一项功能的描述,是一组动作序列的描述,是一项请求与响应。
(
三、简答(45分)
1、继承和泛化关系
特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。
一般类对特殊类的抽象关系叫泛化关系(简称泛化)。
2、聚合与组合有区别,请说明他们间的区别,并指出下图中哪图是聚合?
聚合刻画了现实事物之间的构成关系,体现“整体——部分”关系。
而关联没有组成关系或拥有关系。
如例题中的c图
3、简述下图中体现的面向对象的基本思想
答:(1)第一次抽象封装:事物——对象
①首先,直接以问题域(现实世界)中的事物为中心来思考问题、认识问题;②然后,根据这些事物的本质特征和系统责任,把它们抽象地表示为系统中的对象,作为系统的基本构成单位。
(对象) 这可以使系统直接映射问题域,保持问题域中事物及其相互关系的本来面貌.
①用对象的属性(attribute)表示事物的性质(静态特征);用对象的操作(operation)表示事物的行为(动态特征)。
②对象的属性与操作结合为一体,成为一个独立的、不可分的实体,对外屏蔽其内部细节。
(对象的封装)③复杂的对象可以用简单的对象作为其构成部分,对象之间是相互联系的。
(聚合)④对象之间通过消息进行通讯,以实现对象之间的动态联系. (消息)
(2)第二次抽象(分类):对象——类
①通过抽象对对象进行分类。
把具有相同属性和相同操作的对象归为一类,类(class)是这些对象的抽象描述,每个对象是它的类的一个实例。
(分类)
②通过关联表达类(一组对象)之间的静态关系。
(关联)
(3)第三次抽象:子类——父类
通过在不同程度上运用抽象的原则,可以得到较一般的类和较特殊的类。
特殊类继承一般类的属性与操作,从而简化系统的构造过程及其文档。
(继承)
4、为什么说面向对象语言使得从客观世界到计算机世界的语义鸿沟变窄?
5、简单说明OOA与OOD有何区别
答:OOA用面向对象的建模语言对系统要实现的需求进行建模,不考虑与系统的具体实现有关的因素或环境(如编程语言、界面、数据库等);
OOD是针对系统的一组具体实现条件或环境,继续用面向对象的建模语言进行系统设计与实现。
包括两部分工作:
•第一、根据具体实现条件或环境对OOA模型进行修改和调整
•第二、根据具体实现条件或环境建立人机界面、数据存储和控制驱动等。
6、软件复用有何益处、有哪些级别的软件复用,为什么说继承是软件复用的重要形式
益处:
•提高软件开发效率;
•改善软件质量。
复用级别:
•程序(代码)级复用
•分析、设计结果的复用
继承是重要的软件复用形式
7、如何发现参与者?
人员——
系统的直接使用者
设备——
与系统直接相联的设备为系统提供信息
在系统控制下运行
不与系统相联的设备
计算机设备
外系统——
上级系统
子系统
其它原有系统
8、使用扩展用况描述下用例
9、类和对象的联系有何联系?
•对象是类的实例——由类创建出对象,系统是由若干个对象在计算机中的运行协作完成具体的功能;
•属性相似——一个类的所有对象都具有相同个数、名称、类型和含义的属性,但不同的对象属性具有不同的值;
•操作相同——一个类的所有对象的操作都具有相同的声明和实现
•生命周期——对象具有生命周期,类没有。
10、OO方法中有“实例属性”和“类属性” 之分,请说明什么是“实例属性”和“类属性”?答:实例属性包含同一属性的每一个对象(实例)都具有自己的值。
类属性是描述类的所有对象共同特征的一个数据项,对于任何对象实例,它的属性值都是相同的,系统中只存在同一数据空间。
C++中冠以static的成员变量是类属性,这样的属性对一个类的全部对象实例只是一份共同的数据空间,所以对任何对象而言,该属性的值总是相同的。
11、在下图中,根据指定的条件标明A、B间的多重性。
给定类A的一个对象a:
(1) a 可以恰好与类B的一个对象关联
(2) a 可以最多与类B的一个对象关联
(3) a 可以与类B的一个或多个对象关联
(4) a 可以与类B的零个或多个对象关联
12、如果在具有关联关系的类中,存在着一个属性放在哪个类中都不合适的情况,就考虑
使用关联类。
请举例说明:
举例:
13、特殊类继承了一般类的关联。
请对下列类图,加以说明。
答:一个系统管理员可以操作1..*的计算机,那么一个系统管理员也可以操作1..*的服务器或客户机
答:教授可以指导学生、也可以指导教授的含义。
答:学生可以指导学生、教授可以指导教授。
学生可以指导教授,教授可以指导学生的含义(学生和教授都是人)
答:学生可以指导学生、教授可以指导教授,教授可以指导学生的含义
14、简述对象生命线在时序图中的特点
答:
生命线代表着类对象在当前模块中的存活期,即代表了某个对象何时被创建,何时别销毁。
•生命线自上而下,上端出现与对象被创建时,下端结束于对象被销毁时。
否则,生命线应当从图的顶部一直延续到底部。
•创建对象的消息箭头的头部画在对象符号上。
如果对象在图中被销毁,那么用一个大的“×” 标记它的析构,该标记或者放在调用析构的消息箭头处,或者放在从被销毁的对象最终返回处理结果的箭尾处(在自析构的情况下)。
生命线可以分裂成两条或更多条并发的生命线,并在某个后续点处合并,以表示条件性。
即,消息的分支可能导致同一对象在生命周期的同一时刻表现出不同的行为,也就产生了生命线上的分支结构。
15、时序图中,包含下图形,请说明其含义
一个对象的操作递归地调用自己或调用本对象的其他操作,将出现自调用的情形。
四、分析建模(25分)
1、ATM终端处理取款的用况图,动作序列如下:
系统从持卡人处获得取款命令;
系统检查口令;
系统完成用户的取款处理;
判断是否打印回单,并打印回单;
结束操作并退卡
要求使用扩展用例或包含用例转换上同例图
答:
2、很多软件系统都需要登录,若用户登录成功,就可以操作系统的功能,主要有以下方式:
◆打开登录页面,用户输入登录信息,系统执行用户验证;系统验证成功后,系统弹
出功能提示框,等待用户选择执行功能;用户选择执行某个功能。
◆打开登录页面,用户输入登录信息,系统执行用户验证;系统验证成功后,转入主
界面;用户可以执行界面中的任何一个功能。
◆用户执行主界面的某个功能,系统打开登录页面,用户输入登录信息,系统执行验
证,验证通过后,系统继续执行用户选择功能的动作序列,完成用户选择的功能。
如下以一个研究生学籍管理系统为例,描述三种登录方法。
为了简化起见,假设此处仅描述登录、选课和查看学分这3项功能。
要求:分别设计出上三种处理方式的用例图:
3、用关联类为公司和雇员之间的薪水关系建模。
4、使用多重性、聚合建立大学、系、学生、课程、教师间的类图
5、销售部接受到订货单后,进行审核,未被批准的订单,直接送档案科归档;批准的订单,在系统中录入,开具出库单;配送部根据出库单发货并运送货物,财务部对已发货的订单开具销售发票并寄送给客户;客户在收到货物后,验货付款;财务对已经收到的货款,开具收款凭证,连同订单归档。
要求:画出以上活动的活动图。