太原理工大学复试题 面向对象

合集下载

太原理工大学软件工程复习题

太原理工大学软件工程复习题

软件工程复习题一、单选题1、软件开发的结构化设计(SD)方法,全面指导模块划分的最重要原则应该是( c )A模块高内聚B模块低耦合C模块独立性D程序模块化2、软件工程方法的提出起源于软件危机,而其目的应该是最终解决软件的什么问题?( D )A产生危机B质量保证C开发效率D生产工程化3、软件工程开发的可行性研究是决定软件项目是否继续开发的关键,而可行性研究的结论主要相关于( A)A软件系统目标B软件的性能C软件的功能D软件的质量4、软件需求分析一般应确定的是用户对软件的( D)A.功能需求B.非功能需求C.性能需求D.功能需求和非功能需求5、软件测试是满足软件的功能和性能要求,保证软件正确性的措施,一般软件测试计划的制订应始于软件开发的哪个阶段? ( D)A.需求分析B.软件设计C.程序编码D.软件计划6、软件工程方法是在实践中不断发展的方法,而早期的软件工程方法主要是指( B )A.原型化方法B.结构化方法C.面向对象方法.D.功能分解法7、数据流图描述数据在软件中流动和被处理变换的过程,它是以图示的方法来表示,即.( A )A.软件模型B.软件功能C.软件结构D.软件加工8、软件工程学涉及到软件开发技术和工程管理两方面的内容,下述内容中哪一个不属于开发技术的范畴?(D)A.软件开发方法B.软件开发工具C.软件工程环境D.软件工程经济9、软件文档是软件工程实施中的重要成份,它不仅是软件开发的各阶段的重要依据,而且也影响软件的()A.可理解性B.可维护性C.可扩展性D.可靠性10、从( )语言开始,软件摆脱了对硬件的依赖。

A.第一代B.第二代C.第三代D.第四代11、在下面列出的基本成分中,哪个不是实体关系图的基本成分? ( )A.实体B.数据存储C.关系D属性12、结构化程序设计主要强调程序的(C)A.效率B.速度C.可读性D.大小13、在软件工程中根据程序的功能说明,而不关心程序内部逻辑的测试方法为( A)A.黑盒法B.白盒法C.灰盒法D.综合法14、软件开发的结构化分析方法,常用的描述软件功能需求的工具有( C)A业务流程图,数据字典 B.软件流程图,模块说明C.数据流图,数据字典D.系统流程图,程序编码15、结构化程序设计思想的核心是要求程序只由顺序、循环和( A)三种结构组成。

研究生面向对象考试题

研究生面向对象考试题

复习题1. 请指出UML的三个主要的特性。

1)UML是一种语言2)UML是用来建模的3)UML是统一的标准2. 请指出三种以上现实生活中的常用模型,并说明它们分别在各自的领域中发挥了什么样的作用。

1)电路图:电子产品设计、生产、维修2)园区沙盘:直观、立体化地展示园区的景观、布局3)地图:导航、指路等3. 说明UML适用的建模领域,以及其作用和主要的参与人员。

∙业务建模,用来加强对业务领域的了解,以领域专家为主,需求分析人员是主力,系统分析员、架构师可参与。

∙需求模型,用来加强需求了解,便于技术决策,以需求分析人员为主,系统分析员是主力,领域专家提供指导,架构师和资深开发人员参与。

∙设计模型:包括高层设计模型和详细设计模型。

高层设计模型以架构师为主,系统分析员从需求方面提供支持,资深开发人员从技术实现方面提供支持。

详细设计模型则以资深开发人员为主,架构师提供指导。

∙实现模型:架构师、资深开发人员(设计人员);以资深开发人员(设计人员)为主,架构师提供总体指导。

∙数据库模型:架构师、数据库开发人员、资深开发人员(设计人员);以数据库开发人员为主,架构师提供指导,资深开发人员(设计人员)予以配合。

4. 请简要说明UML和面向软件开发之间的关系。

UML和面向对象软件开发之间有很强的关联关系,甚至可以说是面向对象软件开发催生了UML。

但是由于在UML的标准化和发展过程,有机地吸纳了业务建模、工作流建模、数据库建模等领域的标准规范,形成了一个适用性很强的标准。

5. UML是由哪三个部分组成的,请分别说明它们的作用。

∙基本构造块:也就是建模元素,是模型的主体∙UML规则:也就是支配基本构造块如何放在一起的规则∙公共机制:运用于整个UML模型中的公共机制、扩展机制6. 如果你想对一个类的意义进行描述,那么应该采用C?请简要说明原因。

A. 标记值B. 规格描述C. 注释D.构造型标记值是用来为事物添加新特性的;规格描述用来对构造块的语法和语义进行文字叙述,使得可视化视图和文字视图的分离;构造型是用来增加新事物的。

太原理工大学Java考试题

太原理工大学Java考试题

一、单项选择(每题2分,共20分)1.Java中的int型变量在内存中占几个字节?A.2B.4C.6D.82.下面几条代码执行后,变量i,j,k的值分别是int i = 10;int j = 10;boolean k = ((i++)>4 || (j--)>5);A.10,10,trueB.11,9,trueC.9,11,trueD.11,10,true3.有一个类Student,有一个成员方法public String info(String name)将下面哪条代码添加到Student类中会产生错误4.A.public String info (int name){}B.public int info (String name){}C.public String info (String name, String age){}D.public String info (String age){}5.下面的代码中哪条语句是错误的class A{private int i;int f;protected j;public int p;}class B{public static void main(String[] args){A a = new A();a.i = 10;………………………………………………Aa.f = 100; ……………………………………………Ba.j = 1000;……………………………………………Ca.p = 10000; …………………………………………D}}5.下面关于类成员和实例成员叙述错误的是A.类成员可以通过类名.类成员名的语法来进行访问B.当一个类的对象没有被创建时,也可以使用类成员C.JVM为类成员和实例成员分配内存的时机是一样的D.实例成员必须要创建这个类的对象之后,才能访问6.如果想要对两个String按字典顺序排序,要用到String类的哪一个方法A.equalsB.equalsIgnoreCaseC.sortStringpareTo7.关于JAVA的GUI编程,下面叙述错误的是A.java.awt包中的组件大部分是重量级的,javax.swing包中的组件大部分是轻量级的B.JAVA中的布局是用来控制容器中的组件如何排列的C.JAVA中绝大多数组件都能触发事件D.JAVA中的组件触发一个事件后,会创建一个事件对象,这个事件对象需要我们在编写事件处理代码的时候手工创建8.使用JDBC访问数据库时首先需要建立和数据库的连接,当连接成功建立后会返回下面哪种类型的对象A.ConnectionB.StatementC.PreparedStatementD.ResultSet9.如果要启动一个线程,需要调用下面的哪一个方法A.run()B.start()C.notify()D.notifyAll()10.下面关于线程叙述正确的是A.JAVA中的线程类只能通过继承Tread类的方式建立B.在程序运行过程中,我们可以通过代码调度线程的执行顺序C.当run()方法执行结束后,线程也结束D.sleep方法和wait方法都可以使线程停止运行,他们的作用是一样的二、填空(每空2分,共20分)1.面向对象的编程语言都有三个特性,分别是、和2.在JAVA程序中要得到当前的系统时间语句是:3.在一个类中要声明一个常量需要用的关键字是4.StringBuffer和String的区别在与5.请写出JAVA中任意两种布局的类名、6.子类和父类不在同一个包下时,子类能够从父类继承到的成员三、判断(每题1分,共10分)1.JAVA程序使用构造方法来初始化对象的成员,使用析构方法销毁对象2.JAVA程序中的异常处理语句try-catch,一个try只能有一个catch子句3.JAVA中的抽象类中只能声明抽象方法,不能定义普通方法4.Java的AWT中一个监视器只能监视一个组件5.当两个线程访问同一个对象的同一个成员变量的时候,可能会产生线程同步的问题6.JAVA中没有指针的概念,所以函数调用时,参数的传递都是按值传递,形式参数如果发生改变,不会影响到实际参数7.Java中创建对象的方法只有使用new关键字一种方式8.在一个类的类体中,只能声明成员变量、成员方法和构造方法,绝不能有其他的内容了9.Java中的class中默认的成员访问权限是public的10.使用super关键字可以在一个类的构造方法中调用其父类的构造方法四、综合题(每题5分,共25分)1.阅读以下程序,输出结果为public class B4_01 {public static void main(String[] args){int sum = 0;for(int i = 1; i <= 10; i = i + 2){sum = sum + i * i;}System.out.println(sum);}}2.阅读以下程序,输出结果为public class B4_02 {public static void main(String[] args){ int i = 1;int j = 2;int k = 3;String str = null;try{i = 123;j = str.length();k = 100;}catch(NullPointerException e){j = 200;}finally{k = 300;}System.out.println(i+","+j+","+k);}}3.阅读以下程序,输出结果为public class B4_03 {public static void main(String[] args){ int arr[] = {1,2,3,4,5,6,7,8,9,10};C c = new C();c.f(arr);for(int i = 0; i < arr.length; i++){System.out.print(arr[i]+" ");}}}class C{public void f(int arr[]){for(int i = 0 ; i < arr.length; i++){ arr[i] = 11 - arr[i];}}}4.阅读以下程序,输出结果为public class B4_04 {public static void main(String[] args){ String str = "ab45dc361jgh78rt";StringBuffer sb = new StringBuffer();char c[] = str.toCharArray();for(int i = 0; i < c.length; i ++){if(c[i]>='0'&&c[i]<='9'){sb.append(c[i]);}}System.out.println(sb.toString());}}五、编程题(10,15,共25)1.编写应用程序,定义一个班级类Classes,再定义一个学生类Student。

软件开发工程师面试题及答案

软件开发工程师面试题及答案

软件开发工程师面试题及答案在软件开发领域,面试是选拔优秀人才的关键环节。

以下是一些常见的软件开发工程师面试题及相应的答案参考。

一、基础知识类1、什么是面向对象编程(OOP)?它的主要特点有哪些?答:面向对象编程是一种编程范式,它将数据和对数据的操作封装在对象中。

主要特点包括封装、继承和多态。

封装是将数据和方法包装在一个类中,隐藏内部实现细节;继承允许一个类从另一个类继承属性和方法,实现代码复用;多态则是同一个方法在不同的对象中有不同的实现方式。

2、解释一下进程和线程的区别。

答:进程是程序的一次执行过程,拥有独立的内存空间;线程是进程中的一个执行单元,多个线程共享进程的内存空间。

进程的创建和销毁开销较大,而线程相对较小。

进程间通信相对复杂,线程间通信较为简单。

3、谈谈你对数据库索引的理解。

答:数据库索引是一种用于提高数据库查询效率的数据结构。

它就像是一本书的目录,可以快速定位到所需的数据。

常见的索引类型有B 树索引、哈希索引等。

索引可以加快查询速度,但过多或不恰当的索引会导致数据插入、更新和删除的性能下降。

二、编程语言类1、如果让你用 Python 实现一个冒泡排序算法,你会怎么做?答:```pythondef bubble_sort(arr):n = len(arr)for i in range(n):for j in range(0, n i 1):if arrj > arrj + 1 :arrj, arrj + 1 = arrj + 1, arrj```2、在 Java 中,如何实现线程同步?答:在Java 中,可以使用`synchronized` 关键字来实现线程同步。

可以将方法声明为`synchronized` ,或者使用同步块。

另外,还可以使用`Lock` 接口和相关实现类来实现更灵活的线程同步。

3、谈谈 C++中的指针和引用的区别。

答:指针是一个变量,存储的是另一个变量的内存地址;引用则是一个别名,必须在初始化时绑定到一个对象,并且之后不能再重新绑定。

太原理工复试题《软件工程》题库及答案

太原理工复试题《软件工程》题库及答案

太原理工复试题《软件工程》题库及答案1.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(C)A.软件工程B.软件周期C.软件危机D.软件产生2.研究开发所需要的成本和资源是属于可行性研究中的(B )研究的一方面。

A.技术可行性B.经济可行性C.社会可行性D.法律可行性3.IDEF0图不反映出系统( B )A.系统做什么B.系统功能如何实现C.系统由谁来做D.系统实现的约束条件4.模块的内聚性最高的是( D )A.逻辑内聚B.时间内聚C.偶然内聚D.功能内聚5.在SD方法中全面指导模块划分的最重要的原则是( D )A.程序模块化B.模块高内聚C.模块低耦合D.模块独立性6.软件详细设计主要采用的方法是( D )A.模块设计B.结构化设计C.PDL语言D.结构化程序设计7.下列关于JSP方法不正确的说法是( D )A.JSP方法主要用于规模不大的数据处理系统B.JSP方法不明确的划分软件概要设计和详细设计的两个阶段C.JSP方法适用于输入数据和输出数据之间有对应关系的问题求解D.JSP方法根据输入、输出的数据结构,按一定的规则映射成软件的体系结构。

因此它只适用于详细设计阶段8.不适合作为科学工程计算的语言是( D )A. PascalB. CC. FortranD. Prolog9.黑盒测试在设计测试用例时,主要需要研究( A )A.需求规格说明与概要设计说明B.详细设计说明C.项目开发计划D.概要设计说明与详细设计说明10.若有一个计算类型的程序,它的输入量只有一个X,其范围是[-1.0,1.0],现从输入的角度考虑一组测试用例:-1.001,-1.0,1.0,1.001。

设计这组测试用例的方法是( C )A.条件覆盖法B.等价分类法C.边界值分析法D.错误推测法11.下列属于维护阶段的文档是( C )A.软件规格说明B.用户操作手册C.软件问题报告D.软件测试分析报告12.快速原型模型的主要特点之一是( D )A.开发完毕才见到产品B.及早提供全部完整的软件产品C.开发完毕后才见到工作软件D.及早提供工作软件13.因计算机硬件和软件环境的变化而做出的修改软件的过程称为( B )A.较正性维护B.适应性维护C.完善性维D.预防性维护14.类库这种机制是( D )级别的信息共享。

c#面试问题及答案

c#面试问题及答案

c#面试问题及答案C#面试问题及答案在进行C#面试时,面试官通常会涵盖各种主题,包括语言基础、面向对象编程(OOP)、.NET框架、多线程编程等等。

本文将为您准备一些常见的C#面试问题及其答案,以帮助您在面试中脱颖而出。

一、C#基础1. 什么是C#的特性?C#是一种面向对象的、类型安全的编程语言,与.NET框架紧密相关。

它具有自动内存管理、强类型检查和异常处理等特性。

C#在可扩展性、可维护性和性能方面表现出色。

2. 什么是值类型和引用类型?值类型是直接存储其数据值的变量类型,如整数、浮点数和布尔值。

引用类型是指向对象内存地址的变量类型,如字符串和数组。

3. C#中的boxing和unboxing是什么?Boxing是将值类型转换为引用类型的过程,而unboxing是将引用类型转换回值类型的过程。

boxing和unboxing会导致性能损失,因为它们涉及到数据的拷贝。

4. 什么是命名空间?命名空间是用于组织相关代码的一种方式。

它可以包含类、接口、结构体和枚举等。

C#中的命名空间是层级结构的,用于避免冲突和提高代码的可读性。

5. 什么是接口?接口是一种约定,定义了一组方法,而不关心具体的实现。

实现接口的类必须提供接口定义的所有成员。

6. C#中的委托是什么?委托是一种引用类型,用于封装方法。

它可以用于回调函数、事件处理等场景。

委托可以作为参数传递给其他方法,也可以作为返回值。

二、面向对象编程(OOP)1. 什么是面向对象编程?面向对象编程(OOP)是一种编程范式,通过模拟现实世界的结构和行为来组织代码。

它以类为基本单位,将数据和操作封装在一起。

OOP具有封装、继承和多态等特性。

2. 什么是类和对象?类是对象的蓝图,用于定义对象的属性和方法。

对象是类的实例,具有类定义的属性和方法。

3. 什么是封装?封装是一种面向对象编程的核心概念,通过隐藏实现细节,只公开必要的接口。

它可以防止外部访问和修改数据,使代码更加安全和可维护。

太原理工大学计算机科学与技术专业大二2017-2018学年java面向对象试题

太原理工大学计算机科学与技术专业大二2017-2018学年java面向对象试题

太原理工大学计算机科学与技术专业大二2017-2018学年java面向对象试题1. 类和对象之间关系是() [单选题]联接关系包含关系抽象与具体的关系(正确答案)类是对象的具体化2. 类是具有相同()的集合,是对对象的抽象描述 [单选题]属性和方法(正确答案)变量和方法变量和数据对象和属性3. 下列哪个类声明是正确的() [单选题]public void H1{…}public class Move(){…}public class void number{…}public class Car{…}(正确答案)4. 定义类头时,不可能用到的关键字是() [单选题]classvoid(正确答案)extendspublic5. 关于方法功能描述错误的是() [单选题]使程序结构清晰实现代码模块化重用方法是类功能的封装重复代码(正确答案)6. 关于方法形参描述正确的是() [单选题]可以没有形参(正确答案)至少有一个形参必须定义多个形参形参只能是基本变量类型7. 在定义方法时在最后一个形参的类型后增加“...”,相关描述错误() [单选题] 可变参数接受的对象是一个数组“...”表示可变参数“...”表示省略号(正确答案)“...”只能出现在参数列表的最后8. 利用方法中的()语句可为调用方法返回一个值 [单选题]return(正确答案)backend以上答案都不对9. 以下关于return语句使用描述错误的有()不能用来返回对象(正确答案)只可以返回数值(正确答案)方法中都必须包含return语句(正确答案)一个方法可以有多个return语句10. void的含义描述正确的是() [单选题]方法体为空方法体没有意义方法没有返回值(正确答案)定义方法时必须使用11. main()方法的返回类型是() [单选题] booleanvoid(正确答案)intstatic12. 下面的方法声明中,哪个是正确的() [单选题] public class methodName(){…}public void int methodName(){…}public void methodName(){…}(正确答案)public methodName{…}13. 下列方法定义中,不正确的是() [单选题] float x(int a,int b){return a-b;}int x(int a,int b){return a-b;}int x(int a,int b);{return a*b;}(正确答案)int x(int a,int b){return a*b;}14. 以下关于构造方法特点理解正确的选项有()构造方法主要用于对象创建时初始化对象(正确答案)构造方法没有返回值,也不能用void来修饰(正确答案)构造方法的命名必须和类名完全相同(正确答案)一个Java类只能有一个构造方法15. 下面关于构造方法描述不正确的是() [单选题]当无其他构造方法时,系统提供默认的构造方法同一个类的多个构造方法的名称可以不同(正确答案)构造方法可以重载构造方法可以设置参数16. 有一个类A,以下为其构造方法的声明,其中正确的是() [单选题]void A(int x){…}public A(int x){…}(正确答案)public a(int x){…}static A(int x){…}17. 设i,j为类X中定义的double型变量名,下列X类的构造方法中不正确的是() [单选题]double X(double k){i=k;return i;}(正确答案)X(){i=6;j=8;}X(double m,double n){i=m;j=n;}X(double k){i=k;}18. 对于任意一个类,用户所能定义的构造方法的个数至多为() [单选题]0个1个2个任意个(正确答案)19. 构造方法何时被调用() [单选题]类定义时创建对象时(正确答案)调用对象方法时使用对象的变量时20. 以下()是专门用于创建对象的关键字 [单选题]new(正确答案)doubleintclass21. 在方法调用过程中,位于方法名之后圆括号的变量被称为() [单选题]变元参数(正确答案)语句声明22. 关于面向对象的说法正确的是() [单选题]类可以让我们用程序模拟现实世界中的实体(正确答案)有多少个实体就要创建多少个类对象的行为和属性被封装在类中,外界通过调用类的方法来获得,但是要知道类的内部是如何实现现实世界中的某些实体不能用类来描述23. 一条return语句将给调用程序返回()个值0(正确答案)1(正确答案)2任意24. 下列关于成员变量描述正确的有()成员变量在类中方法外面(正确答案)成员变量在内存的栈中随着对象的创建而存在,随着对象的消失而消失(正确答案)对象初始化后成员变量没赋值会有默认的初始值(正确答案) 25. 在Java中,变量可以分为全局变量和()变量 [单选题]静态实列局部(正确答案)普通26. 下列关于局部变量描述正确的有()局部变量在代码块中,或者方法的声明上(正确答案)局部变量在内存的堆中随着方法的调用执行完代码块后局部变量会消失(正确答案)局部变量使用前需要赋值(正确答案)27. 下列关于成员变量与局部变量的说法不正确的是( ) [单选题] 局部变量的作用域仅限于定义它的方法成员变量的作用域在整个类内部都是可见的创建对象时Java会给成员变量一个初始值创建对象时Java会给局部变量赋予初始值(正确答案)28. 关于this关键字描述正确的选项有() [单选题]this代表类自身对象的引用(正确答案)this不能在构造方法中使用this不能在普通方法中使用以上描述都不正确29. 下列选项中关于Java中super关键字的说法正确的是() [单选题] super关键字是在子类对象内部指代其父类对象的引用(正确答案) super关键字不仅可以指代子类的直接父类,还可以指代父类的父类子类通过super关键字只能调用父类的方法,而不能调用父类的属性子类通过super关键字只能调用父类的属性,而不能调用父类的方法30. 下列选项中,那个不是Java的访问修饰符() [单选题]privatepublicfriendly(正确答案)protected31. 在定义抽象类需要用到关键字() [单选题]staticfinalabstract(正确答案)interface32. 关于抽象类,下列说法错误的是() [单选题]抽象类中可以存在普通方法和抽象方法抽象类中可以存在属性抽象类中可以实例化(正确答案)一个非抽象类继承抽象类必须实现抽象类中的所有抽象方法33. 关于访问修饰符访问权限由小到大描述正确的是() [单选题]private->protected->default->publicprivate->protected->public->publicprivate->default->protected->public(正确答案)default->private->protected->public34. 下列关于static关键字的使用描述正确的选项有()被static修饰的变量即为静态变量(正确答案)被static修饰的方法称为静态方法(正确答案)所有的静态变量都可以通过类名直接访问(正确答案)所有的静态方法都可以通过类名直接访问(正确答案)35. 下列关于静态代码块的描述中,正确的是()静态代码块指的是被static关键字修饰的代码块(正确答案)静态代码块随着类的加载而加载(正确答案)使用静态代码块可以实现类的初始化(正确答案)每次创建对象时,类中的静态代码块都会被执行一次36. 类的()成员只能被该类的成员访问,而不能被非该类的成员访问 [单选题] publicprivate(正确答案)protectedabstract37. 下列选项中关于Java中封装的说法错误的是() [单选题]封装可以将属性私有化,提供公有的方法访问私有属性属性的访问方法包括setter方法和getter方法setter方法用于赋值、getter方法用于取值类的属性必须进行封装,否则无法通过编译(正确答案)38. 在Java中,关于包以下描述正确的是()要使用Java SE API 的System 类必须import ng.System要使用Java SE API 的System 类不须要import ng.System(正确答案)要使用Java SE API 的Scanner类必须import java.util.Scanner(正确答案)要使用Java SE API 的Scanner类不须要import java.util.Scanner39. 在Java中,关于包的导入的关键字是() [单选题]import(正确答案)classimplementsextends40. 在java中,下列关于继承的说法哪个是正确的() [单选题]子类只继承父类public方法和属性子类继承父类的非私有属性和方法(正确答案)子类只继承父类的方法,而不能继承父类的属性子类将继承父类的所有的属性和方法41. 在java中,下面选项中关于继承的说法错误的是() [单选题]继承可以描述类与类之间的关系继承实现了代码的重用具有继承关系的子类和父类层次结构更加清晰子类中可以重写父类中的所有方法(正确答案)42. Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是() [单选题]C可以继承了B中的成员,同样也可以继承了A中的成员(正确答案)C只继承了B中的成员C只继承了A中的成员C不能继承A或B中的成员43. 在Java 语言中,下列关于类的继承的实现描述,正确的是() [单选题]一个类可以继承多个父类一个类可以具有多个子类(正确答案)子类一定比父类有更多的成员方法以上描述都不正确44. 在java中,继承所使用的关键字是() [单选题]implementsimportextends(正确答案)abstract45. 下面对Java中方法重载的描述,错误的是()重载的各方法必须方法名称相同重载的各方法必须参数数量不同(正确答案)重载的各方法必须参数类型不同(正确答案)重载的各方法必须有相同的返回值(正确答案)46. 下面对Java中方法重写的描述,错误的是() [单选题]子类重写父类的方法(正确答案)重写方法的参数数量可以不同重写方法的参数类型可以不同重写方法的返回值可以不同47. 在Java中,以下关于方法重载和方法重写描述正确的是() [单选题]方法重载和方法的重写实现的功能相同方法重载出现在父子关系中,方法重写是在同一类中方法重载的返回值类型必须一致,参数项必须不同方法重写的返回值类型必须相同(正确答案)48. 在java中,关于instanceof 运算符的用法描述错误的是()instanceof运算符是用来在运行时指出对象是否是特定类的一个实例(正确答案) instanceof的返回值是一个布尔值(正确答案)instanceof运算符前面操作数的编译时的类型要么与后面的类相同,要么与后面的类具有父子继承关系,否则会引起编译错误(正确答案)以上描述都正确(正确答案)49. 面向对象的三大特性为()封装(正确答案)继承(正确答案)多态(正确答案)重载50. 以下关于abstract的说法,正确的是() [单选题]abstract只能修饰类abstract只能修饰方法抽象类中必须有abstract方法abstract方法所在的类一定是抽象类(正确答案)51. 下面关于抽象类与抽象方法描述正确的选项有()抽象类不能被实例化(正确答案)抽象类不能被继承抽象方法不能与final、private和static复合使用(正确答案)抽象方法可以与public、protected复合使用(正确答案)52. 以下关于final关键字的使用描述错误的是() [单选题] final关键字可以用于修饰类final关键字可以用于修饰变量final关键字可以用于修饰方法被final修饰的类可以被继承(正确答案)53. 以下关于被final修饰的对象,说法错误的是() [单选题] final修饰的成员变量一旦赋初始值就不能被改变final修饰的类不能被继承final修饰的方法可以被继承final修饰的方法可以被重写(正确答案)54. 在java中,定义接口的关键字是() [单选题]classinterface(正确答案)methodobject55. 以下关于接口对象的说法中正确的是()接口对象只能等于实现该接口的类的对象(正确答案)接口只能被类实现,不能用来声明对象(正确答案)接口对象可以通过当前接口用关键词new创建接口对象可以等于任何类的对象56. 下列关于接口的说法不正确的是() [单选题]接口中只能定义公有的、静态的常量接口中的方法只能是公有的抽象方法用于定义接口的关键字是implements(正确答案)接口只能继承多个接口,接口不能继承类,也不能实现其他接口57. 在java中,实现接口的关键字是() [单选题]extendsinterfaceimplements(正确答案)import58. 不能用来修饰interface的有()private(正确答案)publicprotected(正确答案)static(正确答案)59. 以下关于抽象类与接口描述正确的选项有()抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。

太原理工大学C面向对象程序设计实验报告

太原理工大学C面向对象程序设计实验报告

本科实验报告课程名称:C++面向对象程序设计实验地点:专业班级:学号:学生姓名:指导教师:2016年 5 月3 日Complex::Complex(int real, int image) { real = 20;image = 40; }Complex::Complex(Complex &c){ real = c.real;image = c.image; }int main(){ Complex c1;Complex c2(0, 0);Complex c3(c1);cout <<"c1=";c1.Display();cout <<"c2=";c2.Display();cout <<"c3=";c3.Display();return 0; }二.#include"stdafx.h"#include<iostream>using namespace std;class score{int No,Math,Phi,Data,ave;char Name[8];public:void Write(score &b){ cout<<"请输入学号:"<<endl;cin>>b.No;cout<<"请输入姓名:"<<endl;cin>>;cout<<"请输入数学成绩:"<<endl;cin>>b.Math;cout<<"请输入物理成绩:"<<endl;cin>>b.Phi;cout<<"请输入数据结构成绩:"<<endl; cin>>b.Data; }int Average(score &a){ a.ave=(a.Data+a.Math+a.Phi)/3;return a.ave; }void Display(){ cout<<No<<'\t'<<Name<<'\t'<<Math<<'\t'<<Phi<<'\t'<<Data<<'\t'<<ave<<endl; }};int main (){ score s[3];int i;for(i=0;i<3;i++){ s[i].Write(s[i]);s[i].Average(s[i]); }cout<<"学号\t"<<"姓名\t"<<"数学\t"<<"物理\t"<<"结构\t"<<"平均\t"<<endl;for(i=0;i<3;i++)s[i].Display();}三. #include"stdafx.h"#include"iostream"using namespace std;class Rectangle{public:Rectangle(double l, double t, double r, double b) :left(l), top(t), right(r), bottom(b) {}三. #include"stdafx.h"#include"iostream"using namespace std;class Person {public:char Name[8];char Sex;int Birthday;};class Student :public Person{public:int Class;int No;char Professnation[50];int English;int Math;void Display(char Name[8], char Sex, int Birthday, int Class, int No, char Professnation[50], int English, int Math){cout <<"学生姓名为"<<Name<< endl;cout <<"学生性别为"<<Sex<< endl;cout <<"出生年月"<<Birthday<< endl;cout <<"班级为"<<Class<< endl;cout <<"学号为"<<No<< endl;cout <<"专业为"<<Professnation<< endl;cout <<"英语成绩"<<English<< endl;cout <<"数学成绩"<<Math<< endl;};};class Employee :public Person{public:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.面向对象程序设计将数据与A放在一起,作为一个相互依存、不可分割的整体来处理。

A.对数据的操作 B. 信息 C. 数据隐藏 D. 数据抽象2.下面关于对象概念的描述中,A是错误的。

A. 对象就是C语言中的结构体变量B. 对象代表这正在创建的系统中的一个实体C. 对象是一个状态和操作(或方法)的封装体D. 对象之间的信息传递是通过消息进行的3.C++对C语言作了很多改进,从面向过程变成为面向对象的主要原因为D。

A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念4. 在下列关键字中,用以说明类中公有成员的是A。

A. publicB. privateC. protectedD. friend5. D是一个类的多个对象共享的。

A. 公有数据成员B. 私有数据成员C. 保护数据成员D. 静态数据成员6.对定义重载函数的下列要求中, D 是错误的。

A. 要求参数的个数不同B. 要求参数中至少有一个类型不同C. 要求参数个数相同是,参数类型不同D. 要求函数的返回值不同7. 关于成员函数特征的下述描述中,____A____是错误的。

A.一定是内联函数B.可以重载C.可以设置缺省参数D.可以是静态的8.下列的各类函数中,C不是类的成员函数。

A. 构造函数B. 析构函数C. 友元函数D. 拷贝初始化构造函数9. 下列不能作为类的成员的是B。

A. 自身类对象的指针B. 自身类对象C.自身类对象的引用D.另一个类的对象10. 下述静态成员的特性中,D是错误的。

A. 说明静态数据成员时前面要加修饰符staticB. 静态数据成员要在类体外进行初始化C. 引用静态数据成员,要在静态数据成员名前加<类名>和作用域运算符D. 静态数据成员不是所有对象所共用的11.已知类Sample中的一个成员函数说明如下:void set(Sample &a); 其中,Sample &a 的含义是C 。

A. 指向类Sample的指针aB. 将a的地址值赋给变量setC. a是类Sample的对象引用,用来作函数set()的形参D. 变量Sample与a按位相与作为函数set()的参数12、下列表示引用的方法中,A 是正确的。

已知:int m=10;A. int &x=m;B. int &y=10;C. int &z;D. float &t=&m;13、关于delete运算符的下列描述中,( C )是错误的。

A.它必须用于new返回的指针;B.它也适用于空指针;C.对一个指针可以使用多次该运算符;D.指针名前只有一对方括号符,不管所删除数组的维数。

14、一个类的友元函数能够访问该类的D。

A. 私有成员B. 保护成员C. 公有成员D. 所有成员15.下列析构函数的特征是___A__。

A. 一个类中只能定义一个析构函数B. 析构函数名与类名无关C. 析构函数的定义只能在类体内D. 析构函数可以有一个或多个参数1.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(B)A.类B.对象C.函数体D.数据块2.面向对象的程序设计语言必须具备的关键要素是( C )A.抽象和封装B.抽象和多态性C.抽象、封装、继承和多态性D.抽象、封装和继承性3.类的构造函数被自动调用执行的情况是在定义该类的(C)A.成员函数时B.数据成员时C.对象时D.友元函数时4.设有函数模板template<class Q> Q Sum(Qx,Qy){ return(x)+(y); } 则下列语句中对该函数模板错误..的使用是( D)A.Sum(10,2);B.Sum(5.0,6.7);C.Sum(15.2f,16.0f);D.Sum(″AB″,″CD″);5.已知类A是类B的友元,类B是类C的友元,则(D)A.类A一定是类C的友元B.类C一定是类A的友元C.类C的成员函数可以访问类B的对象的任何成员D.类A的成员函数可以访问类B的对象的任何成员6.如果表达式++i*k中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可表示为(B )A.operator*(i.operator++(),k)B.operator*(operator++(i),k)C.i.operator++().operator*(k)D.k.operator*(operator++(i))7.下列说法中正确的是( B )A.类定义中只能说明函数成员的函数头,不能定义函数体B.类中的函数成员可以在类体中定义,也可以在类体之外定义C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中D.在类体之外定义的函数成员不能操作该类的私有数据成员8.若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的(A)A.私有成员B.公有成员C.保护成员D.保护成员或私有成员9.对基类和派生类的关系描述中,错误的是( B)A.派生类是基类的具体化B.基类继承了派生类的属性C.派生类是基类定义的延续D.派生类是基类的特殊化10.类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A::func()将( A )A.调用类A中的函数func()B.调用类B中的函数func()C.根据p所指的对象类型而确定调用类A中或类B中的函数func()D.既调用类A中函数,也调用类B中的函数1.下列特性中,C与C++共有的是(D)A.继承B.封装C.多态性D.函数定义不能嵌套2.通常情况下,函数模板中的类型参数个数不能是( A )A.0B.2C.4D.33.在下列成对的表达式中,运算符“+”的意义不相同的一对是(C)A.5.0+2.0和5.0+2B.5.0+2.0和5+2.0C.5.0+2.0和5+2D.5+2.0和5.0+24.类的指针成员的初始化是通过函数完成的,这个函数通常是(B)A.析构函数B.构造函数C.其它成员函数D.友元函数5.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为(D)A.const char *p=“ABCD”;B.char const *p=“ABCD”;C.char *const p=“ABCD”;D.const char * const p=“ABCD”;6.静态成员函数没有(B)A.返回值B.this指针C.指针参数D.返回类型7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中(A)A.都是虚函数B.只有被重新说明时才是虚函数C.只有被重新说明为virtual时才是虚函数D.都不是虚函数8.下面叙述不正确的是(D )A.派生类一般都用公有派生B.对基类成员的访问必须是无二义性的C.赋值兼容规则也适用于多重继承的组合D.基类的公有成员在派生类中仍然是公有的9.在C++中实现封装是借助于(B)A.枚举B.类C.数组D.函数10.所有在函数中定义的变量,都是(B)A.全局变量B.局部变量C.静态变量D.寄存器变量1.在C++中,函数原型不能标识(D)A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能2.在C++程序中,对象之间的相互通信通过(B)A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现3.对于任意一个类,析构函数的个数最多为(B)A.0B.1C.2D.35.友元关系不能(A)A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.提高程序的运行效率1.面向对象程序设计中的数据隐藏指的是(D)A.输入数据必须输入保密口令B.数据经过加密处理C.对象内部数据和代码合并在一起D.对象内部数据结构的不可访问性2.在C++中,编写一个内联函数Fun,使用int类型的参数,求其平方并返回,返回值也为int类型,下列定义正确的是(B)A.int Fun(int x){return x*x;}B.inline int Fun(int x){return x*x;}C.int inline Fun(int x){return x*x;}D.int Fun(int x){inline return x*x;}3.下面关于重载函数的叙述中正确的是(C)A.重载函数必须具有不同的返回值类型B.重载函数的形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数的函数名可以不同4.若有定义“int x=17;”,则语句“cout<<oct<<x;”的输出结果是(D)A.11B.0x11C.21D.0215.下列关于析构函数的描述中正确的是(B)A. 析构函数可以重载B.析构函数可以是虚函数C.析构函数名与类名相同D.析构函数的返回类型为void6.下列关于纯虚函数的描述中,正确的是(D)A. 纯虚函数是一种特殊的虚函数,它是个空函数B. 具有纯虚函数的类称为虚基类C.一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数D. 具有纯虚函数的类不能创建类对象7.下列关于运算符重载的描述中,正确的是(D)A.可以改变运算符的目数B.可以改变运算符的优先级C.可以改变运算符的结合性D.可以改变运算符的功能8.要将类A说明是类B的虚基类,正确的描述是(B)A. class virtual B: public AB. class B: virtual public AC. virtual class B: public AD. class B: public A virtual9.下面关于静态成员的描述中,正确的是(A)A.静态数据成员是类的所有对象共享的数据B.类的每个对象都有自己的静态数据成员C.类的不同对象有不同的静态数据成员值D.静态数据成员不能通过类的对象访问10.假设Sample是个类,则语句“Sample a[2],*p[3];”调用构造函数的次数为(B )A.0 B.2 C.3 D.5构造函数1构造函数是在(创建对象)时被执行的。

2通过一个构造函数调用虚函数时,c++编译系统对该调用采用(静态链接)3构造函数不能是虚函数。

友元函数1友元函数是独立于当前类的外部函数。

2友元的作用之一是提高程序的执行效率。

3能用友元函数重载的运算符是+析构函数1类的析构函数的作用是(删除对象)2在定义析构函数时不能指定参数3定义析构函数时应注意(无形参,也不可重载)1使用派生类的主要原因是提高代码的可重用性。

2不能将一个声明为指向派生类对象的指针指向其基类的一个对象3声明为指向基类对象的指针,当其指向派生类对象时,只能利用它来直接访问派生类中从基类继承来的成员,不能直接访问公有派生类中特定的成员。

相关文档
最新文档