二级JAVA真题.docx
- 文档编号:11673861
- 上传时间:2023-03-30
- 格式:DOCX
- 页数:25
- 大小:28.71KB
二级JAVA真题.docx
《二级JAVA真题.docx》由会员分享,可在线阅读,更多相关《二级JAVA真题.docx(25页珍藏版)》请在冰豆网上搜索。
二级JAVA真题
二级JAVA真题2012年09月
(总分:
100.00,做题时间:
90分钟)
一、{{B}}选择题{{/B}}(总题数:
40,分数:
40.00)
1.下列链表中,其逻辑结构属于非线性结构的是______。
∙A.二叉链表
∙B.循环链表
∙C.双向链表
∙D.带链的栈
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]对于线性结构,除了首结点和尾结点外,每一个结点只有一个前驱结点和一个后继结点。
线性表、栈、队列都是线性结构,循环链表和双向链表是线性表的链式存储结构;带链的栈是栈的链式存储结构。
二叉链表是二叉树的存储结构,而二叉树是非线性结构,因为二叉树有些结点有两个后继结点,不符合线性结构的定义。
2.设循环队列的存储空间为Q(1:
35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列的元素个数为______。
∙A.15
∙B.16
∙C.20
∙D.0或35
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]循环队列中,front为队首指针,指向队首元素的前一个位置;rear为队尾指针,指向队尾元素。
由题目可知,循环队列最多存储35个元素。
front=rear=15时,循环队列可能为空,也可能为满。
3.下列关于栈的叙述中,正确的是______。
∙A.栈底元素一定是最后入栈的元素
∙B.栈顶元素一定是最先入栈的元素
∙C.栈操作遵循先进后出的原则
∙D.以上三种说法都不对
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]栈是一种先进后出的线性表,也就是说,最先入栈的元素在栈底,最后出栈;而最后入栈的元素在栈顶,最先出栈。
4.在关系数据库中,用来表示实体间联系的是______。
∙A.属性
∙B.二维表
∙C.网状结构
∙D.树状结构
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]关系数据库使用的是关系模型,用二维表来表示实体间的联系。
属性是客观事物的一些特性,在二维表中对应于列。
5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员。
则实体部门和职员间的联系是______。
∙A.1:
1联系
∙B.m:
1联系
∙C.1:
m联系
∙D.m:
n联系
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]实体间的联系有一对一(1:
1)、一对多(1:
m)和多对多(m:
n),没有多对一(m:
1)。
题目中,一个部门可以有多名职员,而每个职员只能属于一个部门,显然,部门和职员间是一对多的联系。
6.有两个关系R和S如下:
R
A
B
C
a
1
2
b
2
1
c
3
1
S
A
B
C
c
3
1
则由关系R得到关系S的操作是______。
∙A.选择
∙B.投影
∙C.自然连接
∙D.并
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]由关系R得到关系S是一个一元运算,而自然连接和并都是多元运算可以排除选项C和选项D。
关系S是由关系R的第3个元组组成,很显然这是对关系R进行选择运算的结果。
投影运算则是要从关系R中选择某些列。
可以简单得理解,选择运算是对行的操作,投影运算是对列的操作。
7.数据字典(DD)所定义的对象包含于______。
∙A.数据流图(DFD)
∙B.程序流程图
∙C.软件结构图
∙D.方框图
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]数据字典用于对数据流图中出现的被命名的图形元素进行确切地解释,是结构化分析中使用的工具。
8.软件需求规格说明书的作用不包括______。
∙A.软件验收的依据
∙B.用户与开发人员对软件要做什么的共同理解
∙C.软件设计的依据
∙D.软件可行性研究的依据
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]需求规格说明书是需求分析的成果,其作用是:
便于开发人员进行理解和交流;反映用户问题的结构,可作为软件开发工作的基础和依据;可作为确认测试和验收的依据。
可行性研究是在需求分析之前进行的,软件需求规格说明书不可能作为可行性研究的依据。
9.下列属于黑盒测试方法的是______。
∙A.语句覆盖
∙B.逻辑覆盖
∙C.边界值分析
∙D.路径分析
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]黑盒测试用于对软件的功能进行测试和验证,不须考虑程序内部的逻辑结构。
黑盒测试的方法主要包括:
等价类划分法、边界值分析法、错误推测法、因果图等。
语句覆盖、逻辑覆盖、路径分析均是白盒测试的方法。
10.下列不属于软件设计阶段任务的是______。
∙A.软件总体设计
∙B.算法设计
∙C.制定软件确定测试计划
∙D.数据库设计
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]软件概要设计阶段的任务有:
软件系统的结构的设计,数据结构和数据库设计,编写概要设计文档,概要设计文档评审。
确认测试是依据需求规格说明书来验证软件的功能和性能,也就是说,确认测试计划是在需求分析阶段就制定了。
11.下列能生成Java文档的命令是______。
∙A.java
∙B.javaprof
∙C.jdb
∙D.javadoc
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]javaprof是Java剖析工具,提供解释器剖析信息。
idb是基于文本和命令行的调试工具。
java是Java类分解器,对.class文件提供字节代码的反汇编,并打印。
Javadoc是Java文档生成器,对Java源码和包以MML的格式产生API文档。
12.下列不是Java位运算符的是______。
∙A.~
∙B.^
∙C.|
∙D.!
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]Java位运算符包括~按位非(NOT),&按位与(AND),|按位或(OR),^按位异或(xOR),>>右移,>>>右移,左边空出的位以0填充,<<左移。
13.下列程序的运行结果是______。
publicclassTest{
publicstaticvoidmain(String[]args){
floati=3.Of;
intn=10;
System.out.print(i++);
System.out.println(","+n*i++);
}
}
∙A.4.0,36.0
∙B.3.0,40.0
∙C.3.0,36.0
∙D.4.0,40.0
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]该程序主要是考查对j++与++j的区分。
i++是先得到i的值,然后i的值加1;而++i是i的值先加1,然后得到i的值。
无论是哪一种,i的值最后都会加1。
所以第一次运算的结果是3.0,由于之前进行了i++运算,所以i的值为4.0,在进行n*i++运算的时候,先运算n*i,然后i的值再加1。
所以第二次运算的结果是40.0,而i的值为5。
14.下列程序的运行结果是______。
publicclassTest{
publicstaticvoidmain(String[]args){
intx=3,y=4,z=5;
if(x>3){
if(y<2)
System.out.println("showone");
else
System.out.println("showtwo");
}
else{
if(z>4)
System.out.println("showthree");
else
System.out.println("showfour");
}
}
}
∙A.showone
∙B.showtwo
∙C.showthree
∙D.showfour
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]该程序主要是考查if语句的用法。
由于x=3,所以第一个if里面的表达式的值为false,进入下面对应的else的运算中。
又由于z=5,使得里面的z>4的值为true,所以程序运行的最后结果为showthree。
15.下列程序的运行结果是______。
publicclassTest{
publicstaticvoidmain(String[]args){
int[]m=newint[]{1,2,3,4,5,6,7,8};
intsum=0;
for(inti=0;i<8;i++){
sum+=m[i];
if(i==3)break;
}
System.out.println(sum);
}
}
∙A.3
∙B.6
∙C.10
∙D.36
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]该程序的功能是将m数组中的前四个数相加,将和保存在sum中,最后输出sum的值。
因为程序中for循环停止的条件有两个,一个是当i<8的时候,另一个是当i==3的时候,即运行到m数组中第四个值的时候,可以跳出for循环。
程序执行的是后者,所以输出的结果是10。
16.下列程序的运行结果是______。
publicclassTest{
publicstaticvoidmain(String[]args){
intpercent=10;
tripleValue(percent);
System.out.println(percent);
}
publicstaticvoidtripleValue(intx){
x=3*x;
}
}
∙A.40
∙B.30
∙C.20
∙D.10
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]static关键字应用的场合有:
①用来修饰类中定义的变量,这样的变量称为类变量或静态变量。
②可以用来修饰类中定义的方法,这样的方法称为静态方法。
③用来修饰初始化语句块,这样的语句块常称为静态初始化语句块。
static在这里表示这个方法为类方法,不属于任何对象实例,而是类所有,描述对象的共有动作,可以用类名直接调用。
在调用了tripleValue函数之后,函数的值没有返回,所以percent的值还是10。
17.下列程序的运行结果是______。
classShape{
publicShape(){
System.out.print("Shape");
}
}
classCircleextendsShape{
publicCircle(){
System.out.print("Circle");
}
}
publicclassTest{
publicstaticvoidmain(String[]args){
Shapedd=newCircle();
}
}
∙A.Shape
∙B.Circle
∙C.ShapeCircle
∙D.程序有错误
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]继承是而向对象编程的一个主要优点之一,它对如何设计Java类有着直接的影响。
继承有如下几点好处:
①它可以利用已有的类来创建自己的类,只需要指出自己的类和已有的其他类有什么不同即可,而且还可以动态访问其他有关类中的信息。
②通过继承,可以利用Java类库所提供的丰富而有用的类,这些类都已经被很好地实现。
③当设计很大的程序时,继承可以使程序组织得层次清晰,有利于程序设计相减少错误的发生。
该程序首先编写了一个Shape的类,然后又编写一个类Circle去继承Shape类。
由于子类拥有父类所有的属性和方法,所以输出的是ShappeCircle。
18.下列选项中,能实现对父类的getSalary方法重写的是______。
classEmployee{
publicdoublegetSalary(){}
}
∙A.classManagerextendsEmployee{publicintgetSalary(doublex){}}
∙B.classManagerextendsEmployee{publicdoublegetSalary(intx,inty){}}
∙C.classManagerextendsEmployee{publicdoublegetSalary(){}}
∙D.classManagerextendsEmployee{publicintgetSalary(intx,inty){}}
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]在对父类的方法进行重写的时候,方法的返回值、返回值类型、参数个数、相应的参数类型都要一一对应,所以对父类的getSalary方法重写的时候,返回值的类型应该是double,没有参数。
所以答案应该是C。
19.Java中用来定义包的关键字是______。
∙A.package
∙B.import
∙C.corn
∙D.class
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]Java中用来定义包的关键字是package。
import是引入需要用到的类,它告诉编译器要使用的类所在的位置。
class是类。
20.下列关于Object类中定义方法的描述中,正确的是______。
∙A.其他类不能调用
∙B.其他类部分能调用
∙C.其他类大部分不能调用
∙D.其他类全部都能调用
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]Object类是Java类层次的根,所以其他类都是由Object类派生出来的,在Object类中定义的方法,在其他类中都可以使用。
因此,正确答案为D。
21.抽象类是______。
∙A.不能派生子类的类
∙B.不能实例化的类
∙C.所有方法都是抽象方法的类
∙D.方法体为空的类
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]抽象类是指不允许被实例化的类;抽象方法是没有方法体的方法。
使用abstract的抽象类可以只需要说明方法首部,而不可能说明其方法体,其方法体只能由其子类来完成。
如果类中某一方法是抽象的,那么整个类就必须是抽象的。
因此,正确答案为B。
22.字符输出流类的直接父类是______。
∙A.Writer
∙B.Reader
∙C.File
∙D.IOStream
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]java.io包中包括:
处理字节流的抽象类InputStream和OutputStrearn,处理字符流的抽象类Reader和Writer。
其中,所有字节输入流都从InputStream类继承,所有字节输出流都从Outputstream类继承。
所有字符输入流都从Reader继承,所有字符输出流都从Writer继承。
所以字符输出流的父类为Writer。
正确答案为A。
23.继承是面向对象的一个重要特性,它可以______。
∙A.优化程序的存储空间
∙B.使代码重用,降低程序复杂性
∙C.保证类和接口的安全
∙D.更容易地实例化类的对象
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]继承带来的最大的好处是类的可重用性。
当创建自己的Java类时,应尽可能将它作为某个类的子类,在自己的子类中加入一些特殊的内容就行了,而不必里新定义这个类所需的全部属性和行为。
因此,答案为B。
24.下列关于程序运行结果的描述中,错误的是______。
importjavax.swing.*;
importjava.awt.*;
publicclassTest{
publicstaticvoidmain(String[]args){
JFramef=newJFrame();
JPanelp=newJPanel();
f.setLayout(newBorderLayout());
f.getContentPane().add(p,"Center");
p.setBackground(Color.blue);
f.setVisible(true);
f.setSize(200,200);
}
}
∙A.程序不能运行
∙B.显示一个窗口
∙C.窗口大小是200×200
∙D.窗口背景为蓝色
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]该程序没有语法和逻辑上面的错误,所以应该是可以运行的。
由JFramef=newJFrame()可以看出,该程序创建了一个窗口,p.setBackground(Color.blue)告诉我们,窗口的背景颜色是蓝色的,而f.setSize(200,200)则设黄了窗口的大小,最后窗口是可见的。
所以B、C、D都是正确的。
本题的正确答案是A。
25.下列代码的下划线处应填入相同的类,该类是______。
importjavax.swing.*;
publicclassTest{
publicstaticvoidmain(Stringargs[]){
JFramef=newJFrame();
f.setTitle("Menus");
f.setVisible(true);
f.setSize(500,400);
______mb=new______();
f.setJMenuBar(mb);
JMenum=newJMenu("文件");
mb.add(m);
JMenuItemmi=newJMenuItem("打开");
m.add(mi);
}
}
∙A.JMenuItem
∙B.JMenu
∙C.JFrame
∙D.JMenuBar
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]由f.setJMenuBar(mb)可以看出,这一句代码的意思就是设置此窗体的菜单栏。
f是JFrame的对象,JFrame的setJMenuBar方法中的参数是属于JMenuBar类型的,所以,mb是JMenuBar类型的,继而得出画线处的类应该为JMenuBar。
所以正确答案是D。
26.下列实现了动态数组的是______。
∙A.Vector和ArrayList
∙B.Map和Set
∙C.Vector和Map
∙D.ArrayList和Set
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]Vector类可以实现可增长的对象数组。
与数组一样,它包含可以使用整数索引进行访问的组件。
但是,Vector的大小可以根据需要增大或缩小,以适应创建Vector后进行添加或移除项的操作。
Arraylist是List接口的大小可变数组的实现。
实现了所有可选列表操作,并允许包括null在内的所有元素。
除了实现List接口外,此类还提供一些方法来操作内部用来存储列表的数组的大小。
(此类大致上等同于Vector类,除了此类是不同步的。
)Set就是一个不包含重复元素的collection。
Map接口提供三种collectlon视图,允许以键集、值集或键一值映射关系集的形式查看某个映射的内容。
映射顺序定义为迭代器在映射的collectlon视图上返回其元素的顺序。
所以实现了动态数组的是Vector和ArrayList。
27.运行下列程序时,若没有test.dat文件,则______。
importjava.io.*;
publicclassTest{
publicstaticvoidmain(String[]args){
try{
RandomAccessFileraf=newRandomAccessFile("test.dat","r");
System.out.println("test.dat");
}
catch(IOExceptionex){
System.out.println("exception");
}
}
}
∙A.输出exception
∙B.输出test.dat
∙C.输出IOException
∙D.无显示
(分数:
1.00)
A. √
B.
C.
D.
解析:
[解析]在程序运行到RandomAccessFiIeraf=newRandonnAccessFile("test.dat","r")这一行时,由于没有test.dat文件,抛出IOException异常。
由下面的catch捕获,从而输出exception。
IOException是当发生某种I/O异常时,抛出此异常。
此类是失败或中断的I/O操作生成的异常的通用类。
所以正确答案是A。
28.下列代码的下划线处应填入的是______。
importjava.io.*;
publicclassChouti{
publicstaticvoidmain(String[]args)throwsIOException{
InputStreamReaderir;
BufferedReaderin;
ir=new______(System.in);
in=newBufferedReader(ir);
System.out.println("请输入:
");
Stringstr=in.readLine();
System.out.println(str);
}
}
∙A.BufferedReader
∙B.InputStreamReader
∙C.InputSteam
∙D.OutputStream
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]InputStreamReader是字节流通向字符流的桥梁:
它使用指定的charset读取字节并将其解码为字符。
它使用的字符集可以由名称指定或显式给定,或者可以接受平台默认的字符集。
每次调用InptnstreamReader中的一个read()方法都会导致从底层输入流读取一个或多个字节。
要启用从字节到字符的有效转换,可以提前从底层流渎取更多的字节,使其超过满足当前读取操作所需的字节。
为了达到最高效率,可要考虑在。
BufferedReader内包装InputSt
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 JAVA