计算机二级JAVA5.docx
《计算机二级JAVA5.docx》由会员分享,可在线阅读,更多相关《计算机二级JAVA5.docx(24页珍藏版)》请在冰豆网上搜索。
计算机二级JAVA5
计算机二级JAVA-5
(总分:
87.60,做题时间:
90分钟)
一、{{B}}选择题{{/B}}(总题数:
35,分数:
62.60)
1.调用线程的下列方法,不会改变该线程在生命周期中状态的方法是{{U}}{{/U}}。
∙A.yeild()
∙B.wait()
∙C.sleep()
∙D.isAlive()
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]本题考查线程的概念。
调用线程的sleep()方法、yeild()方法和wait()方法都会将线程阻塞,而isAlive()是用来测试线程,以确定线程是否活着。
该方法如果返回true,则意味着线程已经启动,但还没有结束,并不影响线程的生命周期,所以选项D正确。
2.下列{{U}}{{/U}}不是FilterlnputStream的子类。
∙A.CheckedInputStream
∙B.BufferedInputStream
∙C.PushbackInputStream
∙D.FileInputStream
(分数:
1.00)
A.
B.
C.
D. √
解析:
3.一个队列的进队列顺序是1、2、3、4,则出队列顺序为{{U}}{{/U}}。
∙A.4,3,2,1
∙B.2,4,3,1
∙C.1,2,3,4
∙D.3,2,1,4
(分数:
1.00)
A.
B.
C. √
D.
解析:
[解析]队列是指允许在一端进行插入,而在另一端进行删除的线性表。
因此队列又称为先进先出的线性表。
答案为C。
4.用于输入压缩文件格式的ZiplnputStream类所属包是{{U}}{{/U}}。
∙A.java.util
∙B.java.io
∙C.iava.nio
∙D.java.util.zip
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]本题考查ZiplnputStream类的基本概念。
压缩文件输入流都是tnflatelnputStream的子类,是以字节压缩为特征的过滤流。
主要有三类,应该有所了解。
ZIPInputStream类在java.util.zlp包中,该类用于输入以gzip格式进行压缩的文件,是对输入文件类型的一种过滤。
ZiplnputStream类也在java.util.zip包中,用于输入zip格式的文件,这是对于文件类新格式的一种过滤。
JarlnputStream类在java.util.jar包中,是ZiplnputStream的子类,用于输入jar文件。
5.Java语言具有许多优点和特点,下列选项中能反映Java程序并行机制特点的是{{U}}{{/U}}。
∙A.安全性
∙B.多线程
∙C.跨平台
∙D.可移植
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]本题考查对Java基本特点理解。
选项A错误,Java通过删除了指针和内存分配,并在解释器执行字节代码之前检查和一系列安全措施等保障Java程序及用户数据的安全;选项B正确,多线程使可执行程序具有同时保持几个线程执行的能力,从而使Java实现并行机制:
选项C错误,Java的跨平台性在于其解释器生成的字节码结构的文件格式与硬件体系无关,可以在任何种类的处理器上运行;选项D错误,可移植性是指Java程序及系统可以被放置在任何计算环境下。
6.下列关于栈的叙述中正确的是{{U}}{{/U}}。
∙A.在栈中只能插入数据
∙B.在栈十只能删除数据
∙C.栈是先进先出的线性表
∙D.栈是先进后出的线性表
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]栈是一种线性表,允许在一端进行插入与删除元素,选项A、B是错误的。
在栈中插入和删除运算都只在线性表的一端进行,因此栈是一种先进后出的线性表。
7.设有图示二叉树,对此二叉树执行中序遍历的结果是______。
∙A.ABCDEF
∙B.DBEAFC
∙C.ABDECF
∙D.DEBFCA
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]中序遍历首先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历其左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
因此中序遍历的结果是DBEAFC。
8.已知:
int[]a=newint[100];在下列给出的数组元素中,非法的是
∙A.a[0]
∙B.a[1]
∙C.a[99]
∙D.a[100]
(分数:
2.00)
A.
B.
C.
D. √
解析:
数组的下标值为0~(数组长度-1),此题中数组长度为100,最大下标只能是99,D选项的下标值越界。
9.对Java的继承机制描述错误的是{{U}}{{/U}}。
∙A.Java支持多重继承
∙B.声明子类时使用extends子句
∙C.继承时子类可以添加新的方法和状态
∙D.继承是面向对象方法的一个重要基本特征
(分数:
2.00)
A. √
B.
C.
D.
解析:
10.向容器添加新构件的方法是{{U}}{{/U}}。
∙A.add()
∙B.insert()
∙C.hill()
∙D.set()
(分数:
2.00)
A. √
B.
C.
D.
解析:
11.下面关于Java代码安全的说法中不正确的是{{U}}{{/U}}。
∙A.Java程序在解释执行时所需要的类都是通过字节码校验程序装入的
∙B.Java字节码的执行是由JVM中的编译器完成的
∙C.在Java程序运行时,首先装入字节码,然后进行校验,最后在解释器中执行
∙D.在默认的安全配置条件下,Applet不能访问任何本地资源
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]选项A是正确的,由于解释执行之前需要做字节码的校验,因此执行需要的类都是通过字节校验码程序装入的;选项C,解释和选项A一样;选项D正确,体现了Java安全配置策略的一个重要方面;选项B是错误的,Java字节码的执行应该是由JVM中的解释器完成的。
12.在创建线程时可以显式地指定线程组,此时可供选择的线程构造方法有______种。
∙A.1
∙B.2
∙C.3
∙D.4
(分数:
1.80)
A.
B.
C. √
D.
解析:
[解析]线程组是由java.lang包中的ThreadGroup类实现的。
在创建线程时可以显式地指定线程组,此时需要从如下三种线程构造方法中选择一种:
publicThread(ThreadGroupgroup,Runnabletarget);publicThread(ThreadGroupgroup,Stringname);publicThread(ThreadGroupgroup,Runnabletarget,Stringname)。
13.下列方法中,不属于WindowListener接口的是{{U}}{{/U}}。
∙A.windowOpened()
∙B.windowClosed()
∙C.windowActivated()
∙D.mouseDragged()
(分数:
3.00)
A.
B.
C.
D. √
解析:
[解析]本题考查WindowListener的方法。
WindowListener接口包含的方法是:
①windowActivated(WindowEvent).③windowopened(WindowEvent).⑨windowClosed(WindowEvent).④windowClosing(WindowEvent).⑤windowDeactivated(WindowEvent).⑥windowDeiconified(WindowEvent).⑦windowlconified(WindowEvent).因此不属于WindowListener接口的方法是D。
在AWT中,接口的命名是与事件相对应,比如WindowEvent事件所对应的接口就是WindowListener,而MouseEvent事件所对应的接口就是MouseListener。
同时,接口中方法的命名也是与事件相对应的,比如Window-Listener接口中包含的方法的名称都是以window开头,而MouseListener接口中包含的方法的名称都是以Mouse开头。
针对本题,在不知道具体WindowListener接口中包含的方法时,根据AWT中接口和接口中方法的命名原则,也可以答对本题。
14.下列关于Java的说法正确的是
∙A.Java中的类可以有多个直接父类
∙B.抽象类不能有子类
∙C.最终类可以作为其他类的父类
∙D.Java中接口支持多继承
(分数:
1.00)
A.
B.
C.
D. √
解析:
解析:
java中接口支持多继承。
选项A)Java语言只允许类间有单继承关系。
选项D)抽象类是专门为别的类继承它而定义的。
选项C)final声明一个类后,这个类不能被其他类继承,它是最终类。
15.结构化程序设计的基本原则不包括
∙A.多态性
∙B.自顶向下
∙C.模块化
∙D.逐步求精
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]结构化程序设计的原则包括:
“自顶而下,逐步求精”的设计思想,“独立功能,单出、入口”的模块化设计等。
多态性是面向对象程序语言的特征。
16.在Java中,线程是______。
∙A.分时的
∙B.抢占式的
∙C.非抢占式的
∙D.非分时的
(分数:
1.80)
A.
B. √
C.
D.
解析:
[解析]本题考查线程的调度。
Java的线程调度策略是一种基于优先级的抢占式调度,选项B正确。
Java这种抢占式调度可能是分时的,即每个等待池中的线程轮流执行,也可以不是,即线程逐个运行,具体采用哪种方式,由具体JVM而定。
线程一般通过使用sleep()等方法保证给其他线程运行时间。
17.下列循环执行的次数是{{U}}{{/U}}。
inty=2,x;4;
while(--x!
=x/y){}
∙A.1
∙B.2
∙C.3
∙D.0
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]首先判断终止条件,--x之后,x=3,x/y=1,满足条件,执行一次循环;再判断终止条件,--x之后,x=2,x/y=1,满足条件,执行第二次循环;再判断终止条件,--x之后,x=1,x/y=0,满足条件,执行第三次循环;再判断条件,--x之后,x=0,x/y=0,不满足条件,退出循环,因此一共执行了3次循环。
18.下列叙述中,正确的是{{U}}{{/U}}。
∙A.Java语言的标识符是区分大小写的
∙B.源文件名与public类名可以不相同
∙C.源文件的扩展名为.jar
∙D.源文件中public类的数目不限
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]本题考查考生对Java语言概念的理解。
这些属于考试重点内容。
Java语言和C语言不同,它是区分大小写的,选项A正确。
Java程序的源文件扩展名为.class,.jar文件是由归档工具jar生成的。
源文件中的public类的数目只能有0个或1个,用来指定应用程序类名,也是源文件名。
19.运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为{{U}}{{/U}}。
voidmain()
{
intm,n;
printf("Enterm,n:
");
scanf("%d%d",&m,&n);
while(m!
=n)
{
while(m>n)m-=n,
while(n>m)n-=m;
}
printf("m=%d/n",m);
}
∙A.m=3
∙B.m=2
∙C.m=1
∙D.m=0
(分数:
2.00)
A.
B.
C. √
D.
解析:
20.能将程序补充完整的选项是
classPerson
{
privateinta;
publicintchange(intm){returnm;}
}
publicclassTeacherextendsPerson
{
publicintb;
publicstaticvoidmain(Stringarg[])
{
Personp=newPerson();
Teachert=newTeacher();
inti;
_____
}
}
∙A.i=m
∙B.i=b
∙C.i=p.a
∙D.i=p.change(50)
(分数:
1.00)
A.
B.
C.
D. √
解析:
[解析]本题考查类的声明。
选项A中m没有被声明过,不能使用:
选项B中虽然b是类Teacher的public成员变量,但在静态方法中,不能使用类中的非静态成员:
选项C中a是类Person的private成员,在类外不能直接引用:
选项D中change(intm)方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个血型变量。
21.在Applet生命周期中,下面方法中,在装载Applet时被调用的是{{U}}{{/U}}。
∙A.stop()
∙B.init()
∙C.start()
∙D.destroy()
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]在JavaAppIet的生命周期中,共有4种状态和4个方法:
init()、start()、stop()和destroy()。
在Applet装载时,由浏览器或appletviewer调用init()方法,通知该Applet已被加载到浏览器中,使Applel,执行一些基本初始化。
22.按照Java的标识符命名规则,下列表示常量的标识符规范的是
∙A.HelloWorld
∙B.HELLO_WORLD
∙C.hello_world
∙D.helloWorld
(分数:
1.00)
A.
B. √
C.
D.
解析:
[解析]本题考查Java标识符的命名规则。
属于考试重点内容,应该掌握。
Java中标识符的命名规则是:
标识符以字母、下划线、美元符作为首字符的字符串序列:
标识符是区分大小写的;标识符的字符数没有限制。
但是Java有一些命名约定,基本原则为:
$不作为变量名、方法名开头:
变量名、方法名首单词小写,其余单词只有首字母大写;接口名,类名首单词第一个字母大写;常量完全大写。
按照这些约定,可见只有选项B正确。
23.为了提高测试的效率,应该{{U}}{{/U}}。
∙A.随机选取测试数据
∙B.取一切可能的输入数据作为测试数据
∙C.在完成编码以后制定软件的测试计划
∙D.集中对付那些错误群集的程序
(分数:
2.00)
A.
B.
C.
D. √
解析:
24.下列运算符中,优先级最高的是{{U}}{{/U}}。
∙A.+=
∙B.==
∙C.&&
∙D.++
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]算术运算符的优先级中,++和--级别最高。
25.下列有关线程的叙述哪个是正确的?
{{U}}{{/U}}
∙A.一旦一个线程被创建,它就立即开始运行
∙B.调用start()方法可以使一个线程成为可运行的,但是它不一定立即开始运行
∙C.主线程不具有默认优先级
∙D.Java中线程的优先级从低到高以整数0-9表示
(分数:
1.00)
A.
B. √
C.
D.
解析:
26.当启动Applet程序时,首先调用的方法是{{U}}{{/U}}。
∙A.stop()
∙B.init()
∙C.start()
∙D.destroy()
(分数:
2.00)
A.
B. √
C.
D.
解析:
[解析]本题考查Applet程序的运行方式。
在Applet运行时,首先由浏览器调用init()方法,所以选项B正确。
初始化完成后,将调用start()方法时Applet成为激活状态。
当Applet被覆盖时,可用stop()方法停止线程。
关闭浏览器时调用destroy(),彻底终止Applet,从内存中卸载并释放该Applet的所有资源。
Applet的生命周期及其运行方式是考试重点,应该牢记。
27.执行完语句int[]x=newint[25];后,则下列哪个说法是正确的?
{{U}}{{/U}}
∙A.x[24]值为0
∙B.x[24]值未定义
∙C.x[25]值为0
∙D.x[0]值为空
(分数:
1.00)
A. √
B.
C.
D.
解析:
28.下列运算符中属于关系运算符的是
∙A.==
∙B.=
∙C.+=
∙D.-=
(分数:
2.00)
A. √
B.
C.
D.
解析:
[解析]选项A中==表示相等关系,是关系运算符;选项B中=是赋值运算符;选项C与D中的+=和-=为复合赋值运算符。
29.“商品”与“顾客”两个实体集之间的联系一般是{{U}}{{/U}}。
∙A.一对一
∙B.一对多
∙C.多对一
∙D.多对多
(分数:
2.00)
A.
B.
C.
D. √
解析:
[解析]由于一个顾客可以购买多种商品,同一种商品可以有多个顾客购买,所以商品和顾客之间是多对多的联系。
30.下列描述中不正确的一项是______。
∙A.import语句告诉Java用户需要哪个包(package)中的类
∙B.所有的类必须实例化才能调用它的数据成员和方法
∙C.System类不可能实例化,它的所有方法都是通过类变量来调用的
∙D.package语句用于将源文件存入所指定的包中
(分数:
2.00)
A.
B. √
C.
D.
解析:
31.下面语句会产生编译错误的是{{U}}{{/U}}。
∙A.floatF=1024.0F;
∙B.doubleD=1024.0;
∙C.byteB=1024;
∙D.charC=1024;
(分数:
2.00)
A.
B.
C. √
D.
解析:
32.结构化分析方法是面向()的自顶向下逐步求精进行需求分析的方法。
∙A.对象
∙B.数据结构
∙C.数据流
∙D.目标
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解、建立系统的处理流程。
33.在顺序表(3,6,8,10,12,15,16,18,21,25,30)中,用二分法查找关键码值11,所需的关键码比较次数为{{U}}{{/U}}。
∙A.2
∙B.3
∙C.4
∙D.5
(分数:
2.00)
A.
B.
C. √
D.
解析:
[解析]二分法查找,首先用要查找的关键字k与中间位置的结点关键字相比较,这个中间结点把线性表分成了两个子表。
若比较结果相等,则查找完成,若不等,再根据k与中间结点关键字的大小比较确定下一步查找哪个子表,这样递归下去,直到找到满足条件的结点,或者,该线性表中没有这样的结点。
本题中第1次和15比较:
第2次和7比较;第3次和10比较:
第4次和12比较;比较后结束,没找到。
34.以下关于数据库系统的叙述中,正确的是{{U}}{{/U}}。
∙A.表中只存在字段之间的联系
∙B.表的字段之间和记录之间都不存在联系
∙C.表的字段之间和记录之间都存在联系
∙D.表的字段之间无联系,记录之间存在联系
(分数:
2.00)
A.
B.
C. √
D.
解析:
35.下列说法错误的是{{U}}{{/U}}。
∙A.Java语言中无sizeof运算符
∙B.Java语言中所有类型的长度和表示是固定的,不依赖执行
∙C.goto和const不是Java编程语言中使用的关键字
∙D.Java语言中通过#define命令定义常量
(分数:
2.00)
A.
B.
C.
D. √
解析:
二、{{B}}填空题{{/B}}(总题数:
15,分数:
25.00)
36.{{U}}{{U}}{{/U}}{{/U}}是当前软件开发环境中富有特色的研究工作和发展方向。
(分数:
1.00)
填空项1:
__________________ (正确答案:
计算机辅助软件工程(CASE))
解析:
[解析]CASE将各种软件工具、开发机器和一个存放开发过程信息的中心数据库组合起来,形成软件工程环境。
37.FilelnputStream是字节流,BufferedWriter是字符流,ObjectOutputStream是{{U}}{{U}}{{/U}}{{/U}}。
(分数:
2.00)
填空项1:
__________________ (正确答案:
对象流或对象输出流)
解析:
38.在AWT组件中,{{U}}{{U}}{{/U}}{{/U}}类可以实现带标题和边界的窗口,通常用于接收用户附加信息或发布通知,它是Window类的子类。
(分数:
2.00)
填空项1:
__________________ (正确答案:
Dialog)
解析:
[解析]在AWT组件中,Dialog类可以实现带标题和边界的窗口,通常用于接收用户附加信息或发布通知,它是Window类的子类。
39.请写出下面程序的运行结果:
publicclassTestextendsTT{publicstaticvoidmain(Stringargs[]){Testt=newTest("Tom.");}publicTest(Strings){super(s);System.out.print("Howareyou?
");}publicTest(){this("IamJack.");}}classTT{publicTT(){System.out.print("Hi!
");}publicTT(Strings){this();System.out.print("Iam"+s);