一、单选题
1. 在编写java Applet程序时,需在程序的开头写上()语句
A. import java.awt.*;
B. import java.applet.Applet;
C. import java.io.*;
D. import java.awt.Graphics;
2. 下面的程序段创建了BufferedReader类的对象in,以便读取本机c盘my文件夹下的文件1.txt。File构造函数中正确的路径和文件名的表示是()。
File f = new File(填代码处);
file = new FileReader(f);
in = new BufferedReader(file);
A. "./1.txt"
B. "../my/1.txt"
C. "c:\\my\\1.txt"
D. "c:\my\1.txt"
11. 关于spring说法错误的是()
A. spring是一个轻量级JAVA EE的框架集合
B. spring是“依赖注入”模式的实现
C. 使用spring可以实现声明事务
D. spring提供了AOP方式的日志系统
解析:
Spring Framework是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,Spring中包含的关键特性:
1.强大的基于JavaBeans的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易。
2.一个可用于从applet到Java EE等不同运行环境的核心Bean工厂。
数据库事务的一般化抽象层,允许声明式(Declarative)事务管理器,简化事务的划分使之与底层无关。
3.内建的针对JTA和单个JDBC数据源的一般化策略,使Spring的事务支持不要求Java
EE环境,这与一般的JTA或者EJB CMT相反。
4.JDBC 抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码),简化了错误处理,大大减少了程序员的编码量。再次利用JDBC时,你无需再写出另一个'终止'(finally)模块。并且面向JDBC的异常与Spring通用数据访问对象(Data
Access Object)异常等级相一致。
5.以资源容器,DAO实现和事务策略等形式与Hibernate,JDO和iBATIS
SQL Maps集成。利用众多的翻转控制方便特性来全面支持,解决了许多典型的Hibernate集成问题。所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范。
6.灵活的基于核心Spring功能的MVC网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术,例如JSP、FreeMarker、Velocity、Tiles、iText以及POI。值得注意的是,Spring中间层可以轻易地结合于任何基于MVC框架的网页层,例如Struts、WebWork或Tapestry。
7.提供诸如事务管理等服务的面向方面编程框架。
另外,Spring并没有提供日志系统,我们需要使用AOP(面向方面编程)的方式,借助Spring与日志系统log4j实现我们自己的日志系统。
答案:D
16. 关于JAVA堆,下面说法错误的是()
A. 所有类的实例和数组都是在堆上分配内存的
B. 对象所占的堆内存是由自动内存管理系统回收
C. 堆内存由存活和死亡的对象,空闲碎片区组成
D. 数组是分配在栈中的
二、多选题
17. java中关于继承的描述正确的是()
A. 一个子类只能继承一个父类
B. 子类可以继承父类的构造方法
C. 继承具有传递性
D. 父类一般具有通用性,子类更具体
18. 下列有关InnoDB和MylSAM说法正确的是()
A. InnoDB不支持FULLTEXT类型的索引
B. InnoDB执行DELETE FROM table命令时,不会重新建表
C. MylSAM的索引和数据是分开保存的
D. MylSAM支持主外键,索引及事务的存储
答案:ABC
19. 下列选项中,有关死锁说法正确的是()
A. 采用“按序分配”策略可以破坏产生死锁的环路等待条件
B. 银行家算法是最有代表性的死锁解除算法
C. 在资源的动态分配过程中,防止系统进入安全状态,可避免发生死锁
D. 产生死锁的现象是每个进程等待着某一个不能得到且不可释放的资源
20. 分布式系统设计包括()
A. 容错,design for fault
B. 多数据中心的数据一致性
C. 数据/服务可靠性
D. 可扩展性
E. 要满足ACID特性
三、编程题
1. Description
Jam是个喜欢标新立异的科学怪人。他不适用阿拉伯数字计数,而是使用小写英文字母计数,他觉得这样做,会使世界更加丰富多彩。在他的计数法中,每个数字的位数都是相同的(使用相同个数的字母),英文字母按原先的顺序,排在前面的字母小于排在它后面的字母。我们把这样的“数字”称为Jam数字。在Jam数字中,每个字母互不相同,而且从左到右是严格递增的。每次,Jam还指定使用字母的范围,例如,从2到10,表示只能使用{b,c,d,e,f,g,h,i,j}这些字母。如果再规定位数为5,那么,紧接在Jam数字“bdfij”之后的数字应该是“bdghi”。(如果我们用U、V依次表示Jam数字“bdfij”与“bdghi”,则U,且不存在Jam数字P,使U
span>)。你的任务是:对于从文件读入的一个Jam数字,按顺序输出紧接在后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。
Input
输入文件counting.in
有2行,第1行为3个正整数,用一个空格隔开:
s t w
(其中s为所使用的最小的字母的序号,t为所使用的最大的字母的序号,w为数字的位数,这3个数满足:1<=s
span><=26,2<=w<=t-s)
第2行为具有w个小写字母的字符串,为一个符合要求的Jam数字。
所给的数据都是正确的,不必验证。
Output
输出文件counting.out
最多为5行,为紧接在输入的Jam数字后面的5个Jam数字,如果后面没有那么多Jam数字,那么有几个就输出几个。每行只输出一个Jam数字,是由w个小写字母组成的字符串,不要有多余的空格。
输入示例:
2 10 5
bdfij
输出示例:
bdghi
bdghj
bdgij
bdhij
befgh
2.description
给定一颗二叉树,要求输出二叉树的深度以及中序遍历二叉树得到的序列。本题假设二叉树的结点数不超过1000。
Input
输入数据分为多组,第一行是测试数据的组数n,下面的n行分别代表一棵二叉树。每棵二叉树的结点均为正整数,数据为0代表当前结点为空,数据为-1代表二叉树数据输入结束,-1不作处理。二叉树的构造按照层次顺序(即第1层1个整数,第2层2个,第3层4个,第4层8个.......,如果某个结点不存在以0代替)
Output
输出每棵二叉树的深度以及中序遍历二叉树得到的序列
输入示例:
2
1 -1
1 2 0 3 4 -1
输出示例:
1 1
3 3 2 4 1