程序员(JAVA)_3级

2018-10-28 11:06

《计算机程序员(Java)(三级)-- 指导手册》 ?

第一部分:基本概念

一. 单选题

1. 下面关于Java的说法哪些是错误的? (java面向对象的特征) A. Java是一种完全面向对象的程序设计语言 B. Java支持goto语句

C. Java提供了许多机制来保证程序的健壮性和安全性 D. java是可以跨平台的一门语言

答案:[B]

2. 若要编写一个类Hello,下列说法中哪些是错误的?(java编码规范)

A. 源代码文件必须叫做Hello.java或者hello.java,否则编译出错 B. 编译后生成的二进制码文件为Hello.class C. 运行的命令为java Hello

D. 若将文件Hello.class改名为hello.class,那么用命令java hello也可以运行

答案:[D]

hello.java Hello

javac Hello.java

3. 下面哪些不是Java的基本数据类型?(java编码规范) A. byte B. char C. String D. boolean

答案:[C]

4. 下列选项中不属于软件产业危机的是哪一项?(软件开发的生命周期)

A. B. C. D.

开发周期过长 缺乏技术人才 成本过高

不能在把软件交给客户之前发现所有的错误

答案:[B]

5. List接口描述的是一种什么样的抽象数据结构?(java集合)

A. 一组元素,可以有相同的元素,元素有先后顺序 B. 一组元素,不能有相同的元素,元素有先后顺序 C. 一组元素,可以有相同的元素,元素没有先后顺序 D. 一组元素,不能有相同的元素,元素没有先后顺序

答案:[A]

6. Set接口描述的是一种什么样的抽象数据结构?(java集合)

A. 一组元素,可以有相同的元素,元素有先后顺序 B. 一组元素,不能有相同的元素,元素有先后顺序 C. 一组元素,可以有相同的元素,元素没有先后顺序 D. 一组元素,不能有相同的元素,元素没有先后顺序

答案:[D]

7. Map接口描述的是一种什么样的抽象数据结构?(java集合)

A. 一组元素,可以有相同的元素,元素有先后顺序

B. 一组元素,任意两个元素的关键字不能相同,值也不能相同 C. 一组元素,任意两个元素的关键字不能相同,值可以相同 D. 一组元素,不能有相同的元素,元素没有先后顺序

答案:[C]

8. 存放到HashMap中的对象必须实现哪两个方法才能被正确处理?(java集合)

A. equals和compareTo B. equals和hashCode C. hashCode和toString D. clone和compareTo

答案:[B]

9. 下面关于Java中主要异常类的说法中,错误的是?(java异常处理)

A. Exception类是所有异常类的祖先

B. Error类用于描述系统的内部错误和资源耗尽等严重错误,程序必须捕获这种类型的错误

C. 产生IOException的原因是程序输入输出遇到了意外的情况

D. RuntimeException是虚拟机运行时可能出现的异常,Java默认自动处理

答案:[B]

Throwable是所有错误和异常类的祖先 Exception是所有异常类的祖先 Error

10. 关于异常的概念,下面说法中哪些是错误的?(java异常处理)

A. 有些异常是因为代码编写有问题,可以通过修改代码来消除 B. 有些异常是程序运行的环境造成的,无法通过修改代码消除 C. 出现异常后应该报告用户原因并退出程序

D. 异常是程序运行时导致中断了正常的指令流的一种事件

答案:[C]

11. 要从一个图像文件中读入数据,应该使用哪种流?(流的概念)

A. FileReader

B. FileInputStream C. ObjectInputSream D. ImageInputStream

答案:[B]

流分类:字符流和字节流 ImageInputStream不存在 图像文件是二进制文件。

12. 要从一个文本文件中读入字符串,应该使用哪种流?(流的概念)

A. FileReader

B. FileInputStream C. ObjectInputSream D. ImageInputStream

答案:[A]

13. 下面关于对象序列化的说法那些是错误的?(java序列化)

A. 需要序列化的类,要实现Serializable接口,但不用额外实现任何方法

B. 不同类的对象可以写入一个流中,对象和原始数据类型的变量也可以混合写入 C. 向对象流中写入一个对象时,该对象引用到的其他对象也会写入流中,而且从流中读出时会自动还原为原来的引用关系

D. 向对象流中写入对象时,类 (静态) 变量也会写入

答案:[D]

提示:Serializable接口中没有定义任何方法 ObjectOutputStream

类的静态变量及transient型变量都不会写入

14.利用Socket类进行网络通讯时,首先需要确定哪些信息?(输入输出处理网络编程)

A. 首先需要确定网络接入方式 B. 首先需要确定网络传输速度

C. 首先需要确定所采用的网络接口协议 D. 首先需要确定服务器和客户端

答案:[D]

15.下面的哪一项不是面向过程开发模式的特点?( )(软件开发的步骤)

A. 过程性开发模式侧重建立构成问题解决的处理流 B. 系统的状态保存在各个数据抽象所定义的数据存储中

C. 数据抽象、数据结构根据算法步骤的要求开发,它贯穿于过程,提供过程所要求操

作的信息

D. 系统的状态是一组全局变量,这组全局变量保存状态的值,把它们从一个过程传送到另一个过程

答案:[D]

16.FAST 方法被应用在软件开发的哪个阶段?( )(软件开发的生命周期)

A. 分析和规约的早期阶段 B. 设计阶段 C.实现阶段 D. 测试阶段

答案:[A]

FAST ?

17. 执行一条UPDATE语句,Statement提供的方法中最合适的是哪个?(jdbc)

A. execute

B. executeQuery C. executeBatch D. executeUpdate

答案:[D]

Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。

方法executeQuery

用于产生单个结果集的语句,例如 SELECT 语句。 被使用最多的执行 SQL 语句的方法是 executeQuery。这个方法被用来执行 SELECT 语句,它几乎是使用最多的 SQL 语句。

方法executeUpdate

用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零。

使用executeUpdate方法是因为在 createTableCoffees 中的 SQL 语句是 DDL (数据定义语言)语句。创建表,改变表,删除表都是 DDL 语句的例子,要用 executeUpdate 方法来执行。你也可以从它的名字里看出,方法 executeUpdate 也被用于执行更新表 SQL 语句。实际上,相对于创建表来说,executeUpdate 用于更新表的时间更多,因为表只需要创建一次,但经常被更新。

方法execute:

用于执行返回多个结果集、多个更新计数或二者组合的语句。因为多数程序员不会需要该高级功能

execute方法应该仅在语句能返回多个ResultSet对象、多个更新计数或ResultSet对象与更新计数的组合时使用。当执行某个已存储过程 或动态执行未知 SQL 字符串(即应用程序程序员在编译时未知)时,有可能出现多个结果的情况,尽管这种情况很少见。

因为方法 execute 处理非常规情况,所以获取其结果需要一些特殊处理并不足为怪。例如,假定已知某个过程返回两个结果集,则在使用方法 execute 执行该过程后,必须调用方法 getResultSet 获得第一个结果集,然后调用适当的 getXXX 方法获取其中的值。要获得第二个结果集,需要先调用 getMoreResults 方法,然后再调用 getResultSet 方法。如果已知某个过程返回两个更新计数,则首先调用方法 getUpdateCount,然后调用 getMoreResults,并再次调用 getUpdateCount。

对于不知道返回内容,则情况更为复杂。如果结果是 ResultSet 对象,则方法 execute 返回 true;如果结果是 Java int,则返回 false。如果返回 int,则意味着结果是更新计数或执行的语句是 DDL 命令。在调用方法 execute 之后要做的第一件事情是调用 getResultSet 或 getUpdateCount。调用方法 getResultSet 可以获得两个或多个 ResultSet 对象中第一个对象;或调用方法 getUpdateCount 可以获得两个或多个更新计数中第一个更新计数的内容。

当 SQL 语句的结果不是结果集时,则方法 getResultSet 将返回 null。这可能意味着结果是一个更新计数或没有其它结果。在这种情况下,判断 null 真正含义的唯一方法是调用方法 getUpdateCount,它将返回一个整数。这个整数为调用语句所影响的行数;如果为 -1 则表示结果是结果集或没有结果。如果方法 getResultSet 已返回 null(表示结果不是 ResultSet 对象),则返回值 -1 表示没有其它结果。也就是说,当下列条件为真时表示没有结果(或没有其它结果):

((stmt.getResultSet() == null) && (stmt.getUpdateCount() == -1))

如果已经调用方法 getResultSet 并处理了它返回的 ResultSet 对象,则有必要调用方法 getMoreResults 以确定是否有其它结果集或更新计数。如果 getMoreResults 返回 true,则需要再次调用 getResultSet 来检索下一个结果集。如上所述,如果 getResultSet 返回 null,则需要调用 getUpdateCount 来检查 null 是表示结果为更新计数还是表示没有其它结果。

当 getMoreResults 返回 false 时,它表示该 SQL 语句返回一个更新计数或没有其它结果。因此需要调用方法 getUpdateCount 来检查它是哪一种情况。在这种情况下,当下列条件为真时表示没有其它结果:

((stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))

下面的代码演示了一种方法用来确认已访问调用方法 execute 所产生的全部结果集和更新计数:

stmt.execute(queryStringWithUnknownResults); while (true) {

int rowCount = stmt.getUpdateCount(); if (rowCount > 0) { // 它是更新计数

System.out.println(\stmt.getMoreResults(); continue; }

if (rowCount == 0) { // DDL 命令或 0 个更新

System.out.println(\stmt.getMoreResults(); continue; }

// 执行到这里,证明有一个结果集 // 或没有其它结果

ResultSet rs = stmt.getResultSet; if (rs != null) {

. . . // 使用元数据获得关于结果集列的信息 while (rs.next()) { . . . // 处理结果

stmt.getMoreResults(); continue; }

break; // 没有其它结果

18 执行一条DELETE语句,Statement提供的方法中最合适的是哪个?(jdbc)

A. execute

B. executeQuery C. executeBatch D. executeUpdate

答案:[D]

19.从HTTP请求中,获得请求参数,应该调用哪个方法? (Servlet) (A) 调用HttpServletRequest对象的getAttribute()方法 (B) 调用ServletContext对象的getAttribute()方法

(C) 调用HttpServletRequest对象的getParameter()方法 (D) 以上都不对

答案 [C]

20.ServletContext对象是由谁创建的?() (Servlet) (A)由Servlet容器负责创建,对于每个HTTP请求, Servlet容器都会创建一个ServletContext对象

(B)由Java Web应用本身负责为自己创建一个ServletContext对象

(C)由Servlet容器负责创建,对于每个Java Web应用,在启动时,Servlet容器都会创建一个ServletContext对象 (D)以上说法都不对

答案[C]

二.多选题

1. Java中,变量的命名可以采用下列哪些规范?(java编程规范) A. 用名词作为变量名,全部小写

B. 用名词作为变量名,第一个字母大写 C. 用名词短语作为变量名,全部小写

D. 用名词短语作为变量名,除第一个词首字母小写外,后面每个词第一个字母大写

答案:[A D]

Camel命名法

2. Java代码中可以使用下列哪些注释方式?(java编程规范) A. /* comment */ B. // comment

C. /** @author comment */

D. # comment

答案:[ABC]

行注释 段落注释

文档化注释(JavaDoc)

3.Java垃圾回收机制的两种方法:(java 垃圾回收机制) A标记法

B 整体搬移法 C 垃圾模块处理法 D 以上都不对 答案:[A B]

引用计数(早期JVM使用)

对象引用遍历(现在被大多数JVM采用)

标记法:

首先遍历对象图并标记可以到达的对象,然后扫描堆以寻找未标记对象并释放它们的内存。

整体搬移法 ?

4. 下面哪些说法是正确的?(java内部类) A. 匿名内部类可以在方法内部声明 B. 匿名内部类的构造函数可以有参数

C. 匿名内部类如果是除Object类外的某个类的子类,还可以实现多个接口

D. 匿名内部类如果是除Object类外的某个类的子类,至多只能再实现一个接口

答案:[AB]

int v = 1;

A a = new A(v) { { }

void method() {

} }

a.method();

匿名类尽管没有构造方法,但是可以在匿名类中提供一段实例初始化代码。

5.下列哪些活动属于软件过程的基本活动?(软件开发的步骤) A. 软件需求分析 B. 软件设计 C. 软件实现

D. 软件维护

答案:[ABC]

6.网络拓扑结构分为 (网络拓扑结构) A. 星型网络结构 B.环型网络结构 C.总线型网络结构 D.网状结构

答案[ABCD]

7. 对象流中可以写入哪些类型的数据?(流) A. 原始数据类型 B. 对象

C. 实现了序列化接口的对象 D. 数组

答案:[A C]

D也是正确的

因为Java中的数组也是一种实现了序列化接口的对象

A 原始数据类型? 基本数据类型? Primitive 可以看出题目是从英文翻译过来的

8. 哪些情况会造成当前线程阻塞:(线程) A. 调用Thread类的wait方法 B. 调用Thread类的sleep方法 C. 创建了一个新的线程

D. 当前线程运行的时间太长了

答案:[A B]

9. 建立TCP服务器端需要哪两个步骤?(java网络编程) A. 建立一个ServerSocket对象 B. 建立一个Socket对象 C. 开始监听

D. 建立Socket连接

答案:[A C]

10. Java中的继承有什么特点?(类之间的关系) A. 子类继承父类的构造函数 B. 一个类可以继承自多个类

C. 所有类缺省为Object类的子类 D. 单继承性

答案:[C D]

11.Java面向对象的特征是() (Java面向对象的特征) A 继承 B 封装 C 多态 D 调用

答案:[A B C]

12.面向对象软件开发的特点:(软件开发的特点)

A. 模型从需求开始被开发

B. 模型逐步演化为详细的类模型、类连接和关系、系统设计和分配、以及对象设计 C. 测试的目标是在错误传播到下一次递进前发现错误 D. 以功能进行模块划分

答案:[A B C]

13.在Java中,关于捕获异常的语法try-catch-finally的下列描述正确的是哪个项目? (java异常处理)

A. try-catch必须配对使用 B. try可以单独使用

C. try-finally可以配对使用

D. 在try-catch后如果定义了finally, 则finally肯定会执行

答案:[AD]

正确答案应该是:C

System.exit();

14.MVC模式的优势有哪些?()(MVC模式)

A) MVC模式使应用程序的结构更加清晰,通过将代码按照层次划分为业务逻辑/数据层、用户界面和应用流程控制这三个层次,能够增强代码的稳定性。 B) MVC模式实现了很好的分布式组件架构; C) 对于项目开发而言,MVC三层的分离有利于在项目小组内按照小组成员各自的擅长进行分工,有利于三个部分并行开发、加快项目进度。

D) MVC模块功能的划分有利于在代码修改过程中进行模块的隔离,而不需要把具有不同功能的代码混杂在一起造成混乱。

答案:[A C D]

15. Statement的execute方法、executeQuery方法和executeUpdate方法有何异同?(jdbc) A. 返回值的方式不同 B. 适用的SQL语句不同 C. 作用的数据库不同 D. 三个方法是等价的

答案:[A B]

ResultSet

int

boolean

16. Spring的两种核心思想()(spring) A Spring IOC编程 B Spring AOP编程 C Spring AOP的使用 D Spring 事务管理

答案[ABCD]

我认为答案应该是:A B 注入依赖

面向切面编程(AOP)

17.下面哪一项不是JDBC的用途?(jdbc用途) A)与数据库建立连接

B)操作数据库,处理数据库返回的结果 C)在网页中生成表格

D)向数据库管理系统发送 SQL语句

答案 [CD] C

18.以下关于JDBC的叙述中,正确的是(jdbc概念) A. JDBC是一套API集合

B. JDBC设置了许多允许Java程序连接数据库的框架 C. ODBC不能在Java程序中直接实现,而JDBC可以 D. JDBC提供了JDBC/ODBC之间的桥梁

答案 [A B]

JDBC/ODBC Bridge是Sun公司为了让JDBC能够通过ODBC连接数据库而特意开发的。它独立于JDBC。

19. Java JDBC异常类中包含的成员有(JDBC的数据异常处理) A. Java.Sql.DataTruncation B. Java.Sql.SQLException C. Java.Sql.SQLWarning D. Java.Sql.SQLErrorCode

答案[AC]

A, B, C

DataTruncation与SQLWarning是SQLException的子类,SQLException是Exception的子类。

20. 在XML中,下列关于DOM的叙述()是正确的。(xml dom解析)

(A) DOM是独立于开发语言和平台的,因此使用Visual Basic、Java、Visual C++等开发工具使用的DOM编程API是一致的

B) XML文档通过load方法被装载进内存后,在内存中形成一个DOM文档对象模型树 C) 通过DOM API,软件开发人员可以控制XML文档的结构和内容 D) 通过DOM在XML文档中只能按照顺序方式导航

答案 [A B C]

DOM也可以搜索指定的节点集合

21. 为定义一个XML文档的结构,开发者可以使用的XML技术有()。(xml) a) UML b) DTD

c) Namespace d) XML Schema

答案 [B D]

22.一般情况下,关系数据模型与对象模型之间有哪些匹配关系()(数据库) A) 表对应类 B) 记录对应对象

C) 表的字段对应类的属性

D) 表之间的参考关系对应类之间的依赖关系

答案 [A B C]

提示:UML中的依赖关系常用来描述两个类之间的一种临时的动态的关联关系,这种关系不需要持久化。

23.JDBC有哪两种方式可以连接数据库?()(jdbc获得数据库连接) A. 数据库的管理工具 B. 数据库的JDBC驱动 C. 数据库查询语言SQL D. JDBC-ODBC桥接器

答案:[B D]

24.以下哪些属于Session的方法?(Hibernate中 session内的方法组成) A) load() B) save() C) delete() D) update()

答案:[A B C D]

25.在Struts应用的视图中包含哪些组件?()(struts 框架) 选项:

(A) JSP (B) Servlet

(C) ActionServlet (D) 客户化标签

答案:[A D]

26.在Struts应用的控制器中包含哪些组件?(struts 框架) 选项:

(A) 代表业务逻辑或业务数据的JavaBean (B) Servlet

(C) ActionServlet (D) Action

答案:[B C D]

A应该属于Model

27下面哪些任务是RequestProcessor完成的?()(struts action 的建立) 选项:

(A) 如果需要的话,创建ActionForm实例,组装数据,并进行表单验证 (B) 找到匹配的Action实例,调用其execute()方法

(C) 把请求转发到Action的execute()方法返回的ActionForward代表的组件 (D) 把Struts配置文件信息加载到内存中

答案:[A B C]

参考《Struts In Action》一书9.2节。

ActionServlet接收到客户请求后,会进行一连串的初始化操作,然后就会将客户请求转交给合适的处理器进行处理,这个合适的处理器就是org.apache.struts.action.RequestProcessor。

RequestProcessor的任务就是处理HttpServletRequest请求,并创建HttpServletResponse。

创建响应时,它利用processActionForward方法转发到JSP页面或其它资源。

28.J2EE组件和MVC架构的对应理解正确的是:(mvc)

A)J2EE在Web容器中的Servlet提供了业务流程控制,实现了MVC中的Controller。 B)Bean实现了业务逻辑,也就是Model。 C)J2EE在客户层中的Applet 以及Web层中的JSP实现了面向浏览器的数据表现,是View部分。

D)Application Client实现了面向桌面应用的数据逻辑。这是MVC架构中的Model部分。

答案:[A B C]

29.Struts 框架的包描述错误的是:(struts框架结构)

A)action 包括控制器类ActionForm、ActionMessage、DispatchAction等。 B)config 包括在Struts配置文件内存中表示的配置类。 C)util 包括整个框架使用的通用工具类。 D)plugins 包括支持动态插入和加载组件的

答案:A

A. action包中不包含DispatchAction, DispatchAction在actions包下面

Struts框架包大约包含300个类,分8个核心包。

Validator,config,tiles,actions,action,upload,taglib,util

action包:包含控制器类ActionForm, Actionmessage以及其他少数需要的框架组件;

actions包:包含现成的Action类,比如DispatchAction可以为应用程序所用,或被应用程序扩展; config包:包括在Struts配置文件内存中表示的配置类; taglib包:包含用于Struts标记库的标记处理程序类; tiles包:包含Tiles框架包使用的类;

upload包:包括用于通过浏览器从本地文件系统上载和下载文件的类; util包:包含整个框架包中使用的通用的工具类;

validator包:包含当部署验证器时Struts框架包使用的针对Struts的扩展类。实际的Validator类和接口位于common包,这个包于Struts框架包分离。

30.JSP页面包括以下哪些元素?(三个答案)(JSP元素的组成) A)JSP指令 B)JSP Action C)JSP脚本 D)JSP控件

答案:[A B C]

第四个元素是JSP注释

31.以下方法是Servlet的生命周期接口定义的?(servlet生命周期) A)init() B)service() C)destroy() D)create()

答案:[A B C]

32.多重继承在概念上是比较直接,也是真实世界的体现;然而在实际使用时却要非常谨慎,这主要是因为多重继承存在很多潜在问题,具体表现为()(uml) A. 由于继承多个父类,子类经常存在命名冲突

B. 多重继承增加了系统的复杂程度

C. 有些编程语言不支持多重继承的实现 D. UML语言不支持多重继承的创建

答案:[A C]

33.在下图所示的分层构架中,框架层可以直接使用哪些层次提供的服务:(uml)

A. 应用程序层

B. 框架层

C. 基础设施层

D. 复用层

答案:[B C D]

提示:分层构架中,同一层之间的服务可以相互调用,上一层可以调用下一层的服务,但是下不层不能调用上一层的服务。

34. 在下面的类图中,与卡车有关联的类有():(uml)

A. 人

B. 轿车

C. 卡车

D. 拖车

答案:[A D]

聚合关系是一种特殊的关联。

35.项目计划阶段的目标是()(项目管理) A 做出本项目的计划 B 制定出进度表

C 建立配置与变更管理

D 提出产品上市日期

答案:[A B D]

三.判断题

1.软件开发方法可归纳为三种模式:基于瀑布模型的结构化生命周期法、基于动态需求定义的原型化方法和面向对象的方法。(对)软件开发 2. JDBC是ODBC的升级,适合于各种编程语言调用。( 错 )jdbc 3.CallableStatement 对象是用 Connection 方法 prepareCall 创建的。(对)jdbc

4. 为定义一个XML文档的结构,开发者可以使用的XML技术有DTD, XML Schema, UML(错) xml

5.在XML中,DOM中IXMLDOMNodeList的length属性表示的是该对象中元素节点的数量(错)xml

6.Session有open()方法(错)struts

7 创建jdbc总共有6大步,最后一步是处理结果集(错)jdbc 8,hibernate和jdbc相比能够处理大量的数据(错)hibernate 9. 系统自身的数据库能够作为系统的角色(错)uml

10.在各种不同的软件需求中,下列哪个选项描述了用户使用产品必须要完成的任务,可以在用例模型中予以说明功能需求(对)uml

第二部分:应用操作

一. 单选题

1. 要使用链表存放数字0到9,下面横线上应该填写什么内容?(java集合的遍历)

List l = new ___________; for(int i=0;i<10;i++) { l.add(____________); }

A. List() i

B. ArrayList() Object.newInstance(i) C. HashMap() new Object(i) D. LinkedList() new Integer(i)

答案:【D】

List共有两种实现类:ArrayList和LinkedList

Object.newInstance(i)是什么意思?

2. l是一个ArrayList对象,要用枚举器枚举l中的所有元素,横线上应该填写什么内容? (java集合的遍历)

Iterator iterator = __________; while(iterator.________) { System.out.println(iterator.________); }

A. new Iterator(l) hasNext() next() B. new Iterator(l) next() current() C. l.iterator() hasNext() next() D. l.iterator() next() current()

答案:【C】

foreach

枚举是集合类的基本用法,必须牢记。

3. 在单链表指针为p的结点之后插入指针为s的结点,正确的操作是:( )。 (数据结构链表存储)

A.p->next=s; s->next=p->next; B. s->next=p->next; p->next=s; C.p->next=s; p->next=s->next; D. p->next=s->next; p->next=s;

答案:【B】

4.一个栈的输入序列为123?n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是( )。(数据结构栈的存储)

A. 不确定 B. n-i+1 C. i D. n-i

答案:【B】

5设树T的度为4,其中度为1,2,3和4的结点个数分别为4,2,1,1 则T中的叶子数为( )(数据结构二叉树操作)

A.5 B.6 C.7 D.8

答案:【D】

6..已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为( )。(数据结构二叉树遍历)

A.CBEFDA B. FEDCBA C. CBEDFA D.不定

答案:【A】

首先根据前序的第一个值可以确定二叉树的根是A,然后在中序中找到A的位置,A之前

的序列为节点A的左子树,A之后的序列为A的右子树。因此判断出A的左子树的前序为BC,中序为CB。右子树的前序为DEF,中序为EDF。 按照前面的方法进一步判断中A左子树的根为B… 最终得出整棵树的结果如下图:

7. 构架分析一个很重要的原则是避免包之间的循环依赖,下面四个选项中哪个构架示意图中不存在循环依赖:uml

A. B. C. D.

答案:【B】

8.如下图所示的部署模型中,处理器Process#1和设备Device#1之间的连接,不可能代表:uml

A. TCP/IP协议

B. ODBC协议

C. 关联关系

D. 物理网线

答案:【C】

9.以下是单例模式的()模式(java Singleton模式) public class Singleton { private Singleton(){}

private static Singleton instance = null;

public static synchronized Singleton getInstance() { if (instance == null) {

instance = new Singleton(); }

return instance;

} }

A.硬汉式 B懒汉式 C工厂模式 D以上都不是

答案【B】

单例模式分为“懒汉式”与“饿汉式”,它们的区别在于建立单例对象的时间不同。

“懒汉式”是在你真正用到的时候才去建这个单例对象。“饿汉式”是不管你用不用上,一开始就建立这个单例对象。

10.以下代码是Java的什么模式()(java模式)

Iterator it = list.iterator();

while(it.hasNext()){

//using “it.next();”do some businesss logic

}

A Factory Method模式 B Prototype模式 C Singleton模式 D Iterator模式

答案【D】

11. 下面的代码有没有问题?(java类设计) class Ellipse { private double radiusA; private double radiusB; public Ellipse(double a, double b) { radiusA = a; radiusB = b; } }

class Circle extends Ellipse { }

A. 没有问题

B. 运行时创建Circle类型的对象出错,因为没定义构造函数 C. 编译错误,因为Circle类没有定义构造函数

D. 编译错误,Circle类的缺省构造函数需要调用Ellipse的缺省构造函数,参数不匹配

答案:[D]

Circle中有默认构造函数,而Ellipse中没有。

Circle的默认构造函数会自动调用父类的默认构造函数。

12. 下面的代码中,横线上填写什么内容才没有错误?(Java类设计) class Test1{

private static int classIndex = 0; private ______ int index; public static void main(String[] args) { Test1 t = new Test1(); System.out.println( ________ ); } public ______ Test1() { index = ++classIndex; } }

A. static index static B. static classIndex 空白 C. 空白 index 空白

D. 空白 classIndex 空白

答案:[D]

B ?

13. 下面的代码中有什么错误?(java类设计) 1 interface MyInterface { 2 int var = 0; 3 public void fun1(); 4 }

5 public class MyClass implements MyInterface{ 6 public static void main(String[] args){ 7 MyInterface t = new MyClass(); 8 t.var = 1; 9 t.fun1(); 10 } 11 public void fun1() { 12 System.out.println(var); 13 } 14 }

A. 第2行,变量var必须声明为public static final的 B. 第7行,不能创建接口MyInterface类型的变量 C. 第8行,不能为常量var赋值

D. 第11行,方法fun1必须声明为public static final的

答案:[C]

14现有两个类,父类为Person,子类为Chinese,Person中有如下的定义片段: (java类设计) ??

String name=\

public Person(){name=\??

Chinese中有如下的定义片段: ??

public Chinese(int tmpage) { name=\}

public String getName() { return name; } ??

第三个类Demo是这样定义的: public class Demo { public static void main(String args[]) { Chinese c=new Chinese(25); System.out.println(\

} }

程序进行编译执行时,会产生什么样的执行结果?() A. This chinese's name is: a man B. This chinese's name is: a chinese C. This chinese's name is: noname D 编译运行过程出错

答案【B】

15. 以下JSP与Servlet 的交互调用的代码示例说明错误的是: (层次结构表示层之间的应用)

A)getServletContext().getResponseDispatcher(“/pages/showResults.jsp”).forward(req, res);是在Servlet中使用ResponseDispatcher调用名为showResults的JSP页面。 B)

是通过Form的Action属性在JSP页面中调用名为myServlet的servlet

C)是从JSP或HTML页面的标记中调用名为DateDisplay.jsp 的JSP页面。

D)中,将控制转向myJSP.jsp这个JSP页面。这与使用javax.servlet.http.RequestDispatcher.forward方法调用另一个JSP页面是相同的。

答案【A】

16.MVC 设计模式的含义理解错误的是:(层次结构各层之间的关系应用)

A)模型(model)是应用程序的数据和业务规则集合。通常被称作应用程序的业务逻辑。

4.JSP中form表单对action方法的调用

5.跳转页面的问题。页面注册成功后应该跳转到登陆页面用户在注册过程中,数据库中不能存入重复的数据,请在业务逻辑中作出相应的判断语句 6.避免重复用户可以注册的功能填写部分的逻辑代码

7.业务逻辑层按照订单号删除订单模块提供适当的事务处理功能

请考生进行代码调试通过调试中提示的错误进行修改。

评分细则及参考答案

单元内容 评分大类 标准分值 评分点 代码调错1 代码调错2 代码调错3 代码调试 代码调错 35 代码调错4 代码调错5 代码调错6 代码调错7 评分结构 jsp技术的调错 struts2 技术的调错 业务逻辑代码调错 数据库sql语句的调错 java语法规范的调错 spring技术的调错 hibernate技术以及对事物处理技术的调错 分值 5 5 5 5 5 5 5 运行失败错误代码修改:

1. com.briup.web.servlet包下的AddOrderlineServlet.java文件

第一处:避免存在空指针异常问题 5分

Long bookid=new Long(request.getParameter(\book\

正确答案:bookid

第二处:通过session获取购物车信息 5分

ShoppingCart cart=(ShoppingCart)session.getAttribute(\;

正确答案:(\

2. com.briup.dao.impl包下的CustomerDaoImpl.java文件 第三处:dao层sql语句的使用5分

Query query=session.createQuery(from Customer where name=name);

正确答案: (\Customer where name='\

3.WEB-INF 目录下listBookStore.jsp文件

第四处:jsp中form表单对action方法的调用 5分

正确答案: action=\addOrderline\>

4.com.briup.web.servlet包下的RegisterServlet.java文件

第五处:跳转页面的问题。页面注册成功后应该跳转到登陆页面 5分

try {

}

customerService.register(customer); response.sendRedirect(\register.jsp\);

e.printStackTrace();

request.setAttribute(\,e.getMessage()); request.getRequestDispatcher(

\).forward(request,response);

} catch (CustomerServiceException e) {

正确答案:login.jsp

5. com.briup.service.imp包下的CustomerServiceImpl.java文件

第六处:用户在注册过程中,数据库中不能存入重复的数据,请在业务逻辑中作出相应的判断语句,避免重复用户可以注册的功能填写部分的逻辑代码

if (oldCustomer == null) {

}

throw new CustomerServiceException(\注册失败!用户名已经存在\);

5分

正确答案:if(oldCustomer!=null)


程序员(JAVA)_3级.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:小学交通安全教育主题班会教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: