2010-2011学年第一学期面向对象技术及应用试卷A卷参考答案
面向对象的程序设计A卷答案

学年第学期考试科目:面向对象的程序设计考试类型:(闭卷)考试时间:120 分钟学号姓名年级专业一、选择题(单选,每题2分,共30分)二、判断题(正确的画勾,错误的画叉)三、简答题1、什么是标识符?什么是保留字?java中标识符的命名规则是?(6分)答:编写程序的时候使用的各种单词称为标识符。
在编程语言中有特殊意义的标识符称为保留字。
Java语言中程序自定义的标识符何以是任何字母、数字、下划线(_)和美元符号($)的组合,但不能以数字开头。
2、按要求完成下面问题。
(8分)(1) 编写一条赋值语句,计算num1、num2之和的平方根,并将结果保存在num3中。
(2分)(2) 方法hypotenuse 带两个参数,第一个参数是整型数据side1,第二个是浮点型参数side2. 并且返回一个双精度浮点型结果。
(3分)(3) Object类的意义是什么?(3分)(1)num3=Math.sqrt(num1+num2);(2)double thpotenuse(int side1, float side2);(3)java中所有类都是直接或者间接地有object类派生,因此object类的所有public方法可供每个对象使用。
3、编写一个方法isIsosceles,以表示三角形的三边长的三个整数为参数,如果该三角形是等腰三角形则返回true,其他情况返回false。
(6分)public boolean isIsoceles (int side1, int side2, int side3){boolean result = false;if ( (side1 == side2) && side1 != side3) ||(side2 == side3) && side2 != side1) ||(side1 == side3) && side1 != side2) )result = true;return result;}4、声明一个枚举型Season变量,可能的取值是winter、spring、summer和fall (4分)enum Season{ winter, spring, summer, fall}5、什么是多态?如何实现多态?(6分)多态性是指一个引用变量在不同时刻可以指向不同类型的对象。
面向对象期末试卷 A(答案)

******************************************班级:******************************学号:************************************姓名:************************************共3页第1页得分 阅卷人************ ****** ****** ****** ****** ****** ****** 班级: ****** ****** ****** ****** ****** 学号: ****** ****** ****** ****** ****** ****** 姓名: ****** ****** ****** ****** ****** ******共3页 第21. (9分)class Point { private: int x, y; public:Point(){x=y=0;} Point(int x0,int y0) {x=x0;y=y0;} int GetX() { return x; } int GetY() { return y; }void Print(){cout<<"Point("<<x<<","<<y<<")"<<endl;} ___(1)___; //友元函数声明 ___(2)___; //友元函数声明};Point operator+(Point& pt,int dd) //加号操作符重载函数,实现Point 类对象与整数加法 { Point temp=pt; temp.x+=dd; temp.y+=dd; return temp;}Point operator+(Point& pt1,Point& pt2) //加号操作符重载函数,实现两个Point 类对象的加法 { Point temp=pt1; temp.x+=pt2.x; ___(3)___; return temp;}答案:(1) friend Point operator+(Point& pt,int dd) ----3分(2) friend Point operator+(Point& pt1,Point& pt2) ----3分 (3) temp.y+=pt2.y ----3分 2.(12分) 已知一个类的定义如下: #include<iostream.h> class AA { private:int a[10]; int n;public:void SetA(int aa[], int nn); //用数组aa 初始化数据成员a ,用nn 初始化数据成员n int MaxA(); //从数组a 中前n 个元素中查找最大值void SortA(); //采用选择排序的方法对数组a 中前n 个元素进行从小到大排序void InsertA();//采用插入排序的方法对数组a 中前n 个元素进行从小到大排序 void PrintA(); //依次输出数组a 中的前n 个元素};该类中InsertA()函数的实现如下,请在标号位置补充适当的内容。
2010-2011第1学期面向对象试题A卷答案及其评分标准

2010-2011学年第1学期面向对象程序设计试题(A)卷答案及其评分标准1.(20分)这只是参考,只要相近都可以#include <iostream.h>#include <math.h>class Point //Point类定义{public:Point(int xx=0, int yy=0) {X=xx;Y=yy;}Point(Point &p);int GetX() {return X;}int GetY() {return Y;}private:int X,Y;};……………………….5分Point::Point(Point &p) //拷贝构造函数的实现{X=p.X;Y=p.Y;cout<<"Point拷贝构造函数被调用"<<endl;}class Distance //Distance类的定义{public: //外部接口Distance(Point xp1, Point xp2);double GetDis(){return dist;}private: //私有数据成员Point p1,p2; //Point类的对象p1,p2double dist;};……………………….5分Distance::Distance(Point xp1, Point xp2):p1(xp1),p2(xp2){cout<<"Distance构造函数被调用"<<endl;double x=double(p1.GetX()-p2.GetX());double y=double(p1.GetY()-p2.GetY());dist=sqrt(x*x+y*y);}……………………….5分void main(){Point myp1(1,1),myp2(4,5); //定义Point类的对象Distance myd(myp1,myp2); //定义Distance类的对象cout<<"The distance is:";cout<<myd.GetDis()<<endl;}……………………….5分2. (10分)#include <iostream.h>const float PI = (float)3.14159; //给出p的值const float ConcretePrice = 20.; //过道水泥单价class Circle //定义类Circle 及其数据和方法{public: //外部接口Circle(float r); //构造函数float Area(); //计算圆面积private: //私有数据成员float radius;}; ……………………….3分// 类的实现Circle::Circle(float r) { radius=r; } // 构造函数初始化数据成员radiusfloat Circle::Area() // 计算圆的面积{return PI * radius * radius;} ……………………….3分//主函数实现void main (){float radius, ConcreteCost;Circle Pool(5); // 定义Circle 对象Circle PoolRim(10);ConcreteCost = (PoolRim.Area() - Pool.Area())*ConcretePrice;cout << "Concrete Cost is $" << ConcreteCost << endl; ……………………….4分}3.(10分)常属性:是指该类的对象的属性被初始化后不再发生变化,如人的性别。
2011面向对象程序设计 -信管10A答案

兰州交通大学试卷(主卷)年 月 日装订线 班级: 姓名: 学号: 评分:___________________考题书写要求:上下不得超过黑线,左右不得超过黑线两端点。
密封线课程名称 面向对象程序设计(A 卷) 成绩 参考答案 班级 姓名 学号一、选择题,请把答案填到下列表格中(共24分,每小题1分)1、int[][] myArray3=new int[3][]{new int[3]{5,6,2},new int[5]{6,9,7,8,3},new int[2]{3,2}}; myArray3[1][4]的值是( )。
A.3B.6C.9D.越界 2、下列选项中,( )不是是引用类型。
A.DateTime 类型B.Object 类型C.string 类型D.int 类型 3、下列关于构造函数的描述不正确的是( )A.构造函数不可以声明返回类型。
B.构造函数可以用private 修饰C. 构造函数不能带参数D.构造函数必须与类名相同4、在C#中设计时,如何将一个可读写的公有属性Nmae 修改为只写属性?( )A .为Nmae 添加修饰符B .将Nmae 的get 块删除C .将Nmae 的set 块删除D .在Nmae 的set 块前加修饰符pravite 5、以下关于ref 和out 的描述哪些项是不正确的?( )A.使用ref 参数,传递到ref 参数的参数必须最先初始化。
B.使用out 参数,传递到out 参数的参数必须最先初始化。
C.使用ref 参数,必须将参数作为ref 参数显式传递到方法。
D.使用out 参数,必须将参数作为out 参数显式传递到方法。
6、在ComboBox 控件的SelectedChangeConmited 事件处理方法中,应使用ConboBox 对象的( )属性获取用户新选项的序号。
A .SelectedIndexB .NewvalueC .SelectedItemD .Text 7、通过继承( )类,用户可以创建自己的异常类.A .System.ExceptionB .System.SystemExceptionC .System.ApplicationExceptionD .erException8、在C#语法中,在派生类中对基类的虚函数进行重写,要求在声明中使用( )关键字。
(完整版)武汉理工大学《面向对象技术及应用试题》(带答案)

(完整版)武汉理工大学《面向对象技术及应用试题》(带答案)《面对对象技术及应用》试题一、多选题:下列题中有一个或多个正确答案,请将正确答案的编号填在括号里。
(每题2分,共40分)1.状态图中常用的动作有(ABC )A.动作B.入口动作C.出口动作D.触发动作2.UML中表示类之间“关系”的视图有(ABC )A.关联B.泛化C.依靠D.实现3.用例描述中包含的内容有(ABCD )A.发起用例的参加者B.用例的前置条件C.用例的后置条件D.从用例中获益的参加者4.类之间的关系包括(BCD )A.链B.继承C.多重性D.聚拢5.完整的类可视化表示包括元素(ABC )A.职责和约束B.属性C.操作D.接口6.在UML提供的图中,用于描述系统与外部系统及用户之间的交互的是( D )A)用例图B)类图C)对象图D)部署图7.UML背后的两个分量级概念是。
(BD )A)类B)用例C)面对过程D)面对对象8.用例是从____的观点对系统行为的一个描述。
( A )A)用户B)类C)系统D)对象9.关于用例对于系统开发来说的存在价值,以下说法正确的是。
(ABD )A)便于从用户的观看角度收集系统需求B)使系统更符合用户的需求C)禁止了分析员与用户的沟通D)便于分析员与客户和用户沟通10.以下哪些标记符在活动图中存在。
(BC )A)大事触发器B)分叉与汇集C)泳道D)决策点11.用UML建立业务模型是理解企业业务过程的第一步。
业务人员饰演业务中的角XXX及其交互方式,表示企业业务的工作流。
这种图显示出工作流中的步骤、决策点,以及完成每一步骤的角群和对象。
这种图是以下哪种图。
( A )A)活动图B)交互图C)用例图D)状态图12.面对对象理论中,对象之间发送信号,在UML状态图里就是。
( B )A)入口动作B)大事。
2010-2011第一学期面向对象分析与设计试题

2010-2011第一学期面向对象分析与设计试题一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1 分,共20 分)1. ( D )是对具有相同属性和行为的一组对象的抽象描述。
A. 实体B. 对象C. 类模板D. 类2. 一类对象向另一类对象所发消息的格式中不包括(D )。
A. 对象名B. 操作函数名C. 参数表D. 类名3.面向对象技术的三大机制不包括(A )。
A. 抽象B. 封装C. 多态D. 继承4.从整体功能层面考虑类的设计应遵循下列三条原则,除了(B)。
A. 单一功能原则B. 封装原则C. 最小惊讶原则D. 开放/封闭原则5. 可以在类外访问类的(C )。
A. 私有成员B. 受保护性成员C. 公有成员D. 纯虚函数6. 类的(D)是供创建类的实例对象时调用,完成对象的初始化。
A. 内联函数B. 析构函数C. 友员函数D.构造函数7. 派生类可以继承( B )。
A. 私有成员B. 部分公有成员C. 构造函数D. 析构函数8. 如果合理地利用(B),就可以在类的复杂层次关系中为共享访问与成员隐蔽之间找到一个平衡点,既实现部分成员隐蔽,又能方便部分成员的继承,实现代码的高效重用和扩充。
A. 私有继承B. 保护继承C. 公有继承D. 多继承9. 如果将某类族中的一个同名成员函数说明为虚函数,则可用(C )来调用不同派生类的虚函数,实现运行时多态。
A. 基类对象B. 派生类对象C. 基类对象的指针D. 派生类对象的指针10. C++中既可实现文件输入又可实现文件输出的类是( D )A. ifstreamB. ofstreamC. iostreamD. fstream11.基类中的protected 成员,通过public派生,其在派生类中的可见性为(C)。
A. 不可访问B. privateC. protectedD. public12. 在C++程序中,对象之间的相互通信可以通过(B )来实现。
(完整版)面向对象分析与设计练习题含答案

面向对象分析与设计试题B卷一、单项选择题( 在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题2 分,共20 分)/* 上个世纪80年代开始至今还盛行的以Smalltalk,C++等为代表的面向对象软件开发方法(00)*/1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。
A. Simula67语言(20世纪70年代的Simula-67是第一个面向对象的语言)B. Smalltalk语言(80年代初的Smalltalk语言)C. Java语言(对流行的语言进行面向对象的扩充得到的语言或C++)D. 统一建模语言(UML)的标准2. 面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。
A. SmalltalkB. EiffelC. C++D. Java3.下列不属于面向对象技术的基本特征的是(B)。
A. 封装性B. 模块性C. 多态性D. 继承性4. 面向对象程序设计将描述事物的数据与( C ) 封装在一起,作为一个相互依存、不可分割的整体来处理。
A. 信息B. 数据隐藏C. 对数据的操作D. 数据抽象5. 关于面向对象方法的优点,下列不正确的叙述是(C)。
A. 与人类习惯的思维方法比较一致B. 可重用性好C. 以数据操作为中心D.可维护性好6.(D)是从用户使用系统的角度描述系统功能的图形表达方法。
A. 类图B. 对象图C. 序列图D. 用例图7. (C ) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图和其他图的基础。
A.对象图 B. 组件图 C. 类图 D. 配置图**8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之间传递消息的时间顺序。
面向对象技术(答案)

●下面关于面向对象方法中消息的叙述,不正确的是____(2)__。
(2)A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同正确答案:B【解析】在系统中既使用对象又使用类和继承等机制,而且对象之间仅能通过传递消息实现彼此的通信,这样的方法才称为"面向对象的方法"。
●面向对象技术中,对象是类的实例。
对象有三种成份:____(3)____、属性和方法(或操作)。
(3) A. 标识B. 规则C. 封装D. 消息正确答案:A解析:对象有三种成份:标识(对象名)、属性和方法(或操作)。
●在面向对象技术中,类属是一种__(1)__机制。
一个类属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与__(2)__的那些部分,而用变元来表示与__(3)__的那些部分。
(1)A.包含多态B.参数多态C.过载多态D.强制多态(2)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关(3)A.具体对象无关B.具体类型无关C.具体对象相关D.具体类型相关解析:在面向对象技术中,对象在收到信息后要予以响应。
不同的对象收到同一消息可产生完全不同的结果,这一现象称为多态。
多态有多种不同的形式,其中参数多态和包含多态称为通用多态,过载多态和强制多态成为特定多态。
参数多态应用比较广泛,被称为最纯的多态。
这是因为同一对象、函数或过程能以一致的形式用于不同的类型。
包含多态最常见的例子就是子类型化,即一个类型是另一类型的子类型。
过载多态是同一变量被用来表示不同的功能,通过上下文以决定一个类所代表的功能。
即通过语法对不同语义的对象使用相同的名,编译能够消除这一模糊。
强制多态是通过语义操作把一个变元的类型加以变换,以符合一个函数的要求,如果不做这一强制性变换将出现类型错误。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
河南大学计算机与信息工程学院2010-2011学年第一学期期末考试面向对象技术及应用试卷A卷参考答案与评分标准(卷面总分:100分)一、单项选择题(每个小题2分,共34分)1.main方法是Java Application程序执行的入口点,以下描述哪项是合法的( B )?A、public static void main()B、public static void main(String args[] )C、public static int main(String [] arg )D、public void main(String arg[] )2.关于如下程序的描述哪个是正确的?( C )public class Person{static int arr[] = new int[5];public static void main(String a[]){System.out.println(arr[0]);}}A、编译将产生错误B、编译时正确,但运行时将产生错误C、正确,输出0D、正确,输出 null3.假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( C )class A{int i;static String s;void method1() { }static void method2() { }}A、System.out.println(a.i);B、a.method1();C、A.method1();D、A.method2()4.创建一个标识有“关闭”按钮的语句是( D )。
A、TextField b = new TextField(“关闭”);B、Label b = new Label(“关闭”);C、Checkbox b = new Checkbox(“关闭”);D、Button b = new Button(“关闭”);5.对于子类的构造函数说明,下列叙述中错误的是( D )。
A、子类不能继承父类的无参构造函数。
B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。
C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数。
D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。
6.有以下程序片段,下列哪个选项不能插入到行1。
(A)1.2.public class A{3.//do sth4. }A、public class MainClass{ }B、package mine;C、class ANotherClass{ }D、import java.util.*;7.类ABC定义如下:1.public class ABC{2.public int max( int a, int b) { }3.4.}将以下哪个方法插入行3是不合法的。
( B )A、public float max(float a, float b, float c){ }B、public int max (int c, int d){ }C、public float max(float a, float b){ }D、private int max(int a, int b, int c){ }8.以下哪项可能包含菜单条( B )。
A、PanelB、FrameC、AppletD、Dialog9.paint()方法使用哪种类型的参数? (A)A、GraphicsB、Graphics2DC、StringD、Color10.以下哪个方法用于定义线程的执行体?( C )A、 start()B、init()C、run()D、synchronized()11.当浏览器暂时离开含applet 程序的页面时,以下选项中的哪个方法将被执行?( D )A、init()B、start()C、destroy()D、stop()12.A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:1.A a0=new A();2.A a1 =new B();3.A a2=new C();问以下哪个说法是正确的?( D )A、只有第1行能通过编译B、第1、2行能通过编译,但第3行编译出错C、第1、2、3行能通过编译,但第2、3行运行时出错D、第1行、第2行和第3行的声明都是正确的13.关于以下程序的说明,正确的是(C)。
1.class StaticStuff{2.3.static int x;4.static { x+=5;}5.public static void main(String args[ ])6.{7.System.out.println(“x=” + x);8.}9.static { x/=5;}10.}A、4行与9行不能通过编译,因为缺少方法名和返回类型B、9行不能通过编译,因为只能有一个静态初始化器C、编译通过,执行结果为:x=1D、能通过编译,但程序运行结果不可预知,因为变量x没有初始化14.以下哪个接口的定义是正确的?( D )A、interface B{ void print() { } ;}B、i nterface B{static void print() ;}C、a bstract interface B extends A1, A2 //A1、A2为已定义的接口{ abstract void print(){ };}D、interface B{ void print();}15.关于Socket通信编程,以下描述错误的是:( D )A、服务器端通过new ServerSocket()创建TCP连接对象B、服务器端通过TCP连接对象调用accept()方法创建通信的Socket对象C、客户端通过new Socket()方法创建通信的Socket对象D、客户端通过new ServerSocket()创建TCP连接对象16.关于数据库连接的程序,以下哪个语句的注释是错误的( A)A、Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); //指定MySQL JDBC驱动程序B、String url=”jdbc:odbc:student_access”; //指定数据源为student_accessC、Connection con=DriverManager.getConnection(url); //创建连接指定数据库的对象D、Statement stmt=con.creatStatement();//创建执行SQL语句的Statement对象17.关于异常的编程,以下描述错误的是:( A)A、在有除法存在的代码处,为了防止分母为零,必须抛出并捕获异常B、int i=Integer.parseInt(”123a”);将产生NumberFormatExceptionC、int a[]=null; a[0]=1; 将产生NullPointerExceptionD、输入输出流编程中,读和写时都要抛出IOException二、读程序,给结果(共17分)1.设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 };将输出结果填写在输出语句后的注释中。
(本题3分)int s = 0 ;for ( int i = 0 ; i < MyIntArray.length ; i + + )s += MyIntArray[i] ;System.out.println( s ); //( 550 )2.写出以下程序的运行结果,填写在每个输出语句后面的注释中。
(每空1分,共12分) public class ATest{public static void main(String args[]) {Sub sub = new Sub();System.out.println(sub.x); //( 1 )System.out.println(sub.n); //( 50 )System.out.println(sub.method1()); //( 2 )System.out.println(sub.method2()); //( 50 )Super supsub=new Sub();System.out.println(supsub.x); //( 1 )System.out.println(supsub.n); //( 49 )System.out.println(supsub.method1());//( 2 )System.out.println(supsub.method2());//( 49 )Super sup=new Super();System.out.println(sup.x); //( 1 )System.out.println(sup.n); //( 50 )System.out.println(sup.method1()); //( 1 )System.out.println(sup.method2()); //( 50 ) }}class Super{int x=1 , y=2 ;static int n=50;int method1(){r eturn (x<y)?x:y;}static int method2(){r eturn n++;}}class Sub extends Super{int method1() {return (x>y)?x:y;}static int method2(){r eturn n--;}}3.写出以下程序的运行结果。
(每空1分,共2分)class First {First() {System.out.println ("in First");}}public class Second extends First {Second() {System.out.println("in Second");}public static void main(String[] args) {Second mine= new Second();}}(in First)(in Second)三、补程序以及给出程序结果(共49分)1.利用多态编程创建一个图形(Shape)类,实现求正方形(Square),三角形(Triangle),圆(Circle)的面积。
(每个空1分,共8分,结果每个2分,共8分,本题共36分)public class Shape { //⑴abstractpublic abstract double (); //⑵getArea}public class Square Shape { //⑶extendsprivate double height = 0; // 正方形的边长Square(double height) { //⑷public= height; //⑸this.height}public double getArea() {(this.height * this.height); //⑹return}}public class Circle extends Shape {private double r = 0;private final static double PI = 3.14;public Circle( r) { //⑺doublethis.r = r;}public double getArea() {return (PI * r * r);}}public class Triangle extends Shape {private double a = 0;private double b = 0;private double c = 0;private double h = 0;public Triangle(double a, double h) { /*( ①)⑻四选一:①构造方法②成员方法③类方法④实例方法*/this.a = a;this.h = h;}public Triangle(double a, double b, double c) { //( ②) ⑼四选一:①隐藏②重载③继承④多态this.a = a;this.b = b;this.c = c;}public double getArea() { //( ④) ⑽四选一:①隐藏②重载③继承④覆盖if (h == 0) {double s = (a+b+c)/2; // 根据海伦公式求三角形的面积return Math.pow(s*(s-a)*(s-b)*(s-c), 0.5);}else {return ( a * h / 2); // 普通公式}}}public class TestShape {public static void main(String[] args) {//以下四个语句为多态square = new Square(3) ; //⑾Shapecircle = new Circle(2) ; //⑿Shapetriangle1 = new Triangle(3, 4, 5); //⒀Shapetriangle2 = new Triangle(3, 4); //⒁ShapeSystem.out.println(square.getArea());System.out.println(circle.getArea());System.out.println(triangle1.getArea());System.out.println(triangle2.getArea());}}运行结果: ⒂( 9.0 ),⒃( 12.56 ),⒄( 6.0 ),⒅( 6.0 )2.图形用户界面程序填空。