2007年4月全国计算机等级考试二级JAVA笔试试题及答案
一、选择题
(1)已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为
A.GEDHFBCA
B.DGEBHFCA
C.ABCDEFGH
D.ACBFEDHG
(2)树是结点的集合,它的根结点数目是
A.有且只有1
B.1或多于1
C.0或1
D.至少2
(3)如果进栈序列为e1,e2,e3,e4,则可能的出栈序列是
A.e3,e1,e4,e2
B.e2,e4,e3,e1
C.e3,e4,e1,e2
D.任意顺序
(4)在设计程序时,应采纳的原则之一是
A.不限制goto语句的使用
B.减少或取消注解行
C.程序越短越好
D.程序结构应有助于读者理解
(5)程序设计语言的基本成分是数据成分、运算成分、控制成分和
A.对象成分
B.变量成分
C.语句成分
D.传输成分
(6)下列叙述中,不属于软件需求规格说明书的作用的是
A.便于用户、开发人员进行理解和交流
B.反映出用户问题的结构,可以作为软件开发工作的基础和依据
C.作为确认测试和验收的依据
D.便于开发人员进行需求分析
(7)下列不属于软件工程的3个要素的是
A)工具
B.过程
C.方法
D.环境
(8)单个用户使用的数据视图的描述称为
A.外模式
B.概念模式
C.内模式
D.存储模式
(9)将E-R图转换到关系模式时,实体与联系都可以表示成
A.属性
B.关系
C.键
D.域
(10)SQL语言又称为
A.结构化定义语言
B.结构化控制语言
C.结构化查询语言
D.结构化操纵语言
(11)下列哪个选项是合法的标识符?
A.123
B._name
C.class
D.1first
(12)下列哪个选项是Java调试器,如果编译器返回程序代码的错误,可以用它对程序进行调试?
A.java.exe
B.javadoc.exe
C.jdb.exe
D.javaprof.exe
9/33
(13)下列的哪个选项可以正确用以表示八进制值8?
A.0x8
B.0x10
C.08
D.010
(14)下列的哪个赋值语句是不正确的?
A.float f = 11.1;
B.double d = 5.3E12;
C.float d = 3.14f ;
D.double f=11.1E10f;
(15)下列的哪个赋值语句是正确的?
A.char a=12;
B.int a=12.0;
C.int a=12.0f;
D.int a=(int)12.0;
(16)给出下列的代码,哪行在编译时可能会有错误?
① public void modify(){
② int i, j, k;
③ i = 100;
④ while ( i > 0 ){
⑤ j = i * 2;
⑥ System.out.println (" The value of j is " +j );
⑦ k = k + 1;
⑧ }
⑨ }
A.line 4
B.line 6
C.line 7
D.line 8
(17)下列关于继承的哪项叙述是正确的?
A.在java中允许多重继承
B.在java中一个类只能实现一个接口
C.在java中一个类不能同时继承一个类和实现一个接口
D.java的单一继承使代码更可靠
(18)下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问?
A.private
B.无修饰符
C.public
D.protected
(19)给出下列代码,如何使成员变量m 被方法fun()直接访问?
class Test
{
private int m;
public static void fun()
{
...
}
}
A.将private int m 改为protectedint m
B.将private int m 改为 public intm
C.将private int m 改为 static intm
D.将private int m 改为 int m
(20)已知有下列类的说明,则下列哪个语句是正确的?
public class Test
{
private float f = 1.0f;
int m = 12;
static int n=1;
public static void main(String arg[])
{
Test t = new Test();
}
}
A.t.f;
B.this.n;
C.Test.m;
D.Test.f;
(21)给出下列代码,则数组初始化中哪项是不正确的?
byte[] array1,array2[];
byte array3[][];
byte [][] array4;
A.array2 = array1
B.array2=array3
C.array2=array4
D.array3=array4
(22)下列代码的执行结果是
public class Test
{
public int aMethod()
{
static int i=0;
i++;
System.out.println(i);
}
public static void main(String args[])
{
Test test = new Test();
test.aMethod();
}
}
A.编译错误
B.0
C.1
D.运行成功,但不输出
(23)下列关于内部类的说法不正确的是
A.内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用
B.内部类可以使用它所在类的静态成员变量和实例成员变量
C.内部类不可以用abstract修饰符定义为抽象类
D.内部类可作为其他类的成员,而且可访问它所在类的成员
(24)顺序执行下列程序语句后,则b的值是
String a="Hello";
String b=a.substring(0,2);
A.Hello
B.hello
C.Hel
D.null
(25)在oneMethod()方法运行正常的情况下,程序段将输出什么?
public void test()
{
try { oneMethod();
System.out.println("condition 1");
} catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("condition 2");
} catch(Exception e)
{
System.out.println("condition 3");
} finally
{
System.out.println("finally");
}
}
A.condition 1
B.condition 2
C.condition 3
D.condition 1
finally
(26)下列常见的系统定义的异常中,哪个是输入、输出异常?
A.ClassNotFoundException
B.IOException
C.FileNotFoundException
D.UnknownHostException
(27)下列哪个不是nio包的新特点?
A.内存映射技术
B.文件锁定
C.字符及编码
D.阻塞I/O
(28)下列哪个选项是正确计算42度(角度)的余弦值?
A.double d=Math.cos(42);
B.double d=Math.cosine(42);
C.double d=Math.cos(Math.toRadians(42));
D.double d=Math.cos(Math.toDegrees(42));
(29)下列InputStream类中哪个方法可以用于关闭流?
A.skip()
B.close()
C.mark()
D.reset()
(30)下列方法中哪个是执行线程的方法?
A.run()
B.start()
C.sleep()
D.suspend()
(31)下列关于Frame类的说法不正确的是
A.Frame是Window类的直接子类
B.Frame对象显示的效果是一个窗口
C.Frame被默认初始化为可见
D.Frame的默认布局管理器为BorderLayout
(32)下列Java常见事件类中哪个是鼠标事件类?
A.InputEvent
B.KeyEvent
C.MouseEvent
D.WindowEvent
(33)在Applet的关键方法中,下列哪个方法是关闭浏览器以释放Applet占用的所有资源?
A.init()
B.start()
C.paint()
D.destroy()
(34)下列哪个是面向大型企业级用容器管理专用构件的应用平台?
A.J2EE
B.J2ME
C.J2SE
D.J2DE
(35)下列哪个选项的java源文件代码片段是不正确的?
A.package testpackage;
public class Test{ }
B.import java.io.;
package testpackage;
public class Test{ }
C.import java.io.;
class Person{ }
public class Test{ }
D.import java.io.;
import java.awt.;
public class Test{ }
二、填空题
(1)数据结构分为逻辑结构与存储结构,线性链表属于 。
(2)在面向对象方法中,类之间共享属性和操作的机制称为 。
(3)耦合和内聚是评价模块独立性的两个主要标准,其中 反映了模块内各成分之间的联系。
(4)一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体"项目主管"与实体"项目"的联系属于 的联系。
(5)数据库设计分为以下6个设计阶段:需求分析阶段、 、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。
(6)Java语言用 进行解释执行。
(7)在一个类的内部嵌套定义的类称为 。
(8)设有数组定义:int a[ ] = { 11 , 22 , 33 , 44 , 55 , 66 , 77 , 88 , 99 }; 则执行下列几个语句后的输出结果是 。
for ( int i = 0 ; i < a.length ; i ++ )
if( a[i]%3==0 )System.out.println(a[i]+" ");
(9)下面程序的运行结果是 。
import java.io.* ;
public class ABC
{
public static void main(String args[ ])
{ int i ;
int a [ ] = { 11,22,33,44,55,66,77,88,99 };
for ( i = 0 ; i <= a.length / 2 ; i ++ )
System.out.print( a[i]+a[a.length-i-1]+"");
System.out.println( );
}
}
解析: 题中a.length / 2的值应为4,所以for循环执行了5次。第一次输出的是元素a[0]与a[8]的和;第二次输出的是元素a[1]与a[7] 的和; 第三次输出的是元素a[2] 与a[6] 的和; 第四次输出的是元素a[3]与a[5] 的和; 第五次输出的是元素a[4] 与a[4]的和。所以结果是5个110。
(10)URL是 的缩写。
(11) 日历类提供日期和时间的表示,它以格里历(即阳历)来计算。
(12)若x = 5,y = 10,则 x > y && x++ == y --的逻辑值为 。
(13)设 a = 8,则表达式 a >>> 2 的值是 。
(14)Java中访问限定符有 ,protected,private和default等。
(15)凡生成StringBuffer一个对象后,还可用 方法或ensureCapacity()方法来设定缓存大小。
2007年4月全国计算机等级考试二级JAVA笔试参考答案
一、选择题
01-05 B A B D D
06-10 D D A B C
11-15 B C D A D
16-20 C D B C A
21-25 A A C C D
26-30 B D C B A
31-35 C C D A B
二、填空题
1、63
2、黑河
3、BDSM
4、开发
5、DD
6、J2ME
7、换行
8、passed
9、3and3
10、方法
11、Error
12、Writer
13、transient
14、操作
15、java.applet
解析:
(1)解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构;数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。
(2)解析:类是面向对象语言中必备的程序语言结构,用来实现抽象数据类型。类与类之间的继承关系实现了类之间的共享属性和操作,一个类可以在另一个已定义的类的基础上定义,这样使该类型继承了其超类的属性和方法,当然,也可以定义自己的属性和方法。
(3)解析:内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,内聚是从功能角度来度量模块内的联系;耦合性是模块间互相连接的紧密程度的度量。
(4)解析:两个实体集间的联系实际上是实体集间的函数关系,这种函数关系可以有3种,即一对一(1∶1)的联系、一对多(1∶N)或多对一(N∶1)的联系和多对多(N∶N)的联系。
(5)解析:数据库设计分为以下6个设计阶段:需求分析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。
(6)解析:Java语言是用字节码进行解释执行,它本身带有许多编译时产生的信息,可使其连接过程更简单。
(7)解析:内部类是嵌套在一个类的内部使用的,与普通类一样,内部类也具有自己的成员变量和成员方法。
(8)解析:此题是输出数组中能被3整除的元素。a.length可以求出数组a的元素个数。
(9)解析:题中a.length / 2的值应为4,所以for循环执行了5次。第一次输出的是元素a[0]与a[8]的和;第二次输出的是元素a[1]与a[7] 的和; 第三次输出的是元素a[2] 与a[6] 的; 第四次输出的是元素a[3] 与a[5] 的和; 第五次输出的是元素a[4]与a[4]的和。所以结果是5个110。
(10)解析:URL 是统一资源定位器–Uniform Resource Locator的简称,它表示Internet上某一资源的地址。
(11)解析:GregorianCalendar是以格里历(即阳历)来计算的日历类。
(12)解析:此题主要是考查运算符的优先级,首先运算的是++和-两个运算符,然后是>运算符,接着是运算符,最后是&&运算符。x > y && x++ y -等于(x > y)&& ((x++)==( y --))。
(13)解析:>>>为不带符号的右移,8的各比特位右移2位,左边的空位填0。此题将8(1000)变为了2(0010)。
(14)解析:修饰符可分为访问限定符和非访问限定符两类。访问限定符有public,protected,private和default等。其他都属于非访问限定符,有static,final,abstract和syncronized等。
(15)解析:此题考查StringBuffer字符串的知识,生成StringBuffer一个对象后可用setLength()或ensureCapacity()方法设定缓存大小,并保证其数组元素的初值都为0。