计算机二级笔试120Word文档下载推荐.docx
《计算机二级笔试120Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《计算机二级笔试120Word文档下载推荐.docx(24页珍藏版)》请在冰点文库上搜索。
所以它描述的是一段程序,而不是每—条语句,是为程序段做注解。
第5题:
在一个单链表中,若q结点是p结点的前驱结点,若在q与p之间插入结点s,则执行()。
A.s→link=p→link;
p→link=s
B.p→qink=s;
s→qink=q
C.p→qink=s→link;
s→link=p
D.q→link=s;
D答案解析:
在单链表中插入一个元素需要执行以下步骤:
首先将待插入节点的前驱结点的指针域指向待插入节点,然后将待插入节点的指针域指向待插入节点的前驱结点原先的后继节点。
第6题:
下面几种调试方法中不适合调试大规模程序的是()。
A.强行排错法
B.回溯法
C.原因排除法
D.静态调试
B
本题考查对几种调试方法的掌握。
其中,强行排错法是最常用也是最低效的,主要思想是通过计算机找错,适合调试大规模程序。
回溯法是从出现错误征兆处开始,人工沿控制流程往回追踪,直至发现出错的根源。
这是在小程序中常用的一种有效的调试方法。
程序变大后,可能的回溯路线显著增加,以致人工进行完全回溯变得不可能。
原因排除法是靠演绎、归纳以及二分法来实现的,适合调试大规模程序。
静态调试也是‘种调试手段,主要是指通过人的思维来分析源程序代码和排错。
第7题:
在进行单元测试时,常用的方法是()。
A.采用白盒测试,辅之以黑盒测试
B.采用黑盒测试,辅之以白盒测试
C.只使用白盒测试
D.只使用黑盒测试
A
本题考核软件测试方法的应用。
白盒测试是测试程序内部的逻辑结构及有关信息,黑盒测试只依据程序的需求规格说明书,检查程序的功能是否符合它的功能说明。
从程序内部的逻辑结构对系统进行测试才是测试的根本,即比较深层次的测试,更容易发现和解决程序中的问题,因此单元测试时应以白盒测试为主,而黑盒测试只能作辅助。
第8题:
以下内容属于存储在计算机内有结构的数据集合的是()。
A.数据库系统
B.数据库
C.数据库管理系统
D.数据结构
本题考查考生对几个概念的理解。
其中数据库系统是数据库和数据库管理系统软件的合称。
数据库管理系统是一个帮助用户创建和管理数据库的应用程序的集合。
数据结构描述数据的类型、内容、性质以及数据间的联系。
数据库是指存储在计算机内有结构的数据集合。
第9题:
利用E-R模型进行数据库的概念设计,可以分成3步:
首先设计局部E-R模型,然后把各个局部E-R模型综合成一个全局的模型,最后对全局E-R模型进行()。
A.简化
B.结构化
C.最小化
D.优化
本题考核实体联系模型。
在概念设计中按照模块的划分画出每个模块的E-R图,然后把这些图合成一张E-R图作为全局模型,最后应该对全局E-R图进行优化,看看是否有重复和不合理的地方。
不能只是进行简单的合并。
第10题:
设有关系R及关系S,它们分别有p、q个元组,则关系R与S经笛卡儿积后所得新关系的元组个数是()。
A.p
B.q
C.p+q
D.p*q
本题考核对笛卡儿积运算的掌握。
笛卡儿积是两个关系的合并操作,关系R的每行依次跟关系S的每行组成一个新元组,因此关系R与S经笛卡儿积后所得新关系的元组个数是p×
q。
第11题:
Java语言具有许多优点和特点,下列选项中是通过Java虚拟机实现的特点的是()。
A.安全性
B.多线程
C.分布式
D.可移植
本题考查Java虚拟机的作用。
选项A错误,Java通过删除了指针和内存分配,并利用在解释器执行字节代码之前检查系统安全等措施保障Java程序及用户数据的安全;
选项B错误,多线程使可执行程序具有同时保持几个线程执行的能力,从而使Java实现并行机制;
选项C错误,分布式使Java不用考虑网络细节,使其便于实现分布式计算;
选项D正确,Java虚拟机使编译器生成的字节码不用考虑具体的硬件环境,实现一次编写,到处运行。
第12题:
以下各项类名命名中正确的是()。
A.include
B.INCLUDE
C.this
D.12_book
本题考查Java的类命名规则。
选项A错误,include是Java的关键字,不可以作为类名;
选项B正确,INCLUDE与include是不同的,Java是大小写敏感的,前者可以作为类名,而后者是Java关键字:
选项C错误,this是Java的关键字,不可以作为类名;
选项D错误,Java中类名不能以数字开头。
第13题:
面向对象程序设计有许多特性,下列选项中用来尽可能隐蔽对象的内部细节的是()。
A.多态性
B.动态性
C.封装性
D.继承
C答案解析:
本题考查查面向对象的基本概念和特征的理解。
选项A错误,多态性可以反映出被特殊类继承后的一般属性或行为,可以具有不同的数据类型或表现为不同的形为;
选项B错误,面向对象用于不断发展的环境中,它能包含新的功能,因而必须是动态的;
选项C正确,封装性是指把数据隐藏在对象中,使除了该对象的方法以外的任何方法都不能使用这些数据,从而保障数据的健壮性;
选项D错误,
继承性是指可以充分利用已有的代码资源衍生出新的对象和方法。
故本题的答案是C。
第14题:
欲构造ArrayList类的一个实例,此类继承厂List接口,下列哪个方法是正确的?
()
A.ArrayListmyLis=newObject():
B.ListmyList--newArrayList():
C.ArrayListmyList=newList();
D.myList=newList();
B答案解析:
本题考查在Java中如何实现接口。
选项A错误,只是实例化了一个ArrayList类的对象myList,而没有实现接口;
选项B正确,用List来声明MyList实现接口,并用ArrayList构造出一个实例;
选项C错误,List并不是一个类,不能用new关键字;
选项D错误,接口不能实例化—个接口。
故本题的答案是B。
第15题:
下列变量名中合法的是()。
A.CHlNA
B.byte-size
C.double
D.A+a
在Java语言中,变量名的定义要符合其语法规则。
B选项中的变量名byte-size中含有不合法的字符"
-"
,所以不正确:
C选项的变量名是Java保留字;
而D选项中的变量名中同样含有非法的字符”+”。
考试中,变量名定义的语法规则这个知识点比较重要。
第16题:
下面各项语句中会产生编译错误的是()。
A.floatF=4096.0F;
B.doubleD=4096.0;
C.byteB=4096;
D.charC=4096;
参考答案:
该题考查对基本数据类型的定义及具取值范围的掌握。
选项A正确,Java语言
默认的实型数的形式是double类型的,要把它赋给float类型的变量,必须在实型数后面加上f或F字母;
选项B是正确的:
选项C是错误的,4069已经超出了byte类型所能容许的范围-128~127;
选项D是正确的。
因为在Java语言里,字符是用双字节表示的,4096在它能允许的范围之内。
故本题答案是C。
第17题:
下列关于类型转换的说法中,正确的是()。
A.将较长的数据类型转换为较短的数据类型可以用自动类型转换
B.将较长的数据类型转换为较短的数据类型只能用强制类型转换
C.强制类型转换可以保证数据完整性
D.boolean类型数据只能和int类型进行强制类型转换参考答案:
自动类型转换是系统按照优先级顺序表进行的,强制类型转换会导致多出来的那部分数据丢失。
Java语言中boolean类型数据不能做类型转换。
第18题:
设执行下面的赋值语句
a=Float.valueOf("
12.34"
).floatValue()之后,a的值是()。
A.a="
B.a=12.34
C.a=1234
D.a=12
本题考查对基本类型的类包装的理解。
Float类的valueOf()函数的原型是staticFloatvalueOf(Strings),它是一种静态方法,将字符串的内容提取出来转换为Float对象:
而floatValue()函数的原型是floatfloatValue(),它返回Float对象的浮点值。
本题中,先将字符串”12.34”转换为Float对象,然后再提取该对象的浮点型值,赋给a。
故本题答案是B。
第19题:
给定下面的代码:
byte[]array1,array2[];
bytearray3[][];
byte[][]array4;
如果上面的每一个数组都初始化了,以下各项语句中错误的是()
A.array2=array1
B.array2=array3
C.array2=array4
D.bothAandB
本题考查对多维数组的理解。
二维数组可以有如下的定义方式。
typcarrayName[][];
type[][]arrayName;
tyPe[]arrayName[];
其中的type代表数组元素的类型,可以是简单类型,也可以是复合类型。
本题中,除arrayl是一维数组外,别的数组都是二维数组。
选项A不能被编译通过,array1是一维数组,而array2是二维数组;
选项B、C、D都是正确的,可以被编泽通过。
故本题答案是A。
第20题:
字符串常量”hello”的字符个数是()。
A.3
B.4
C.5
D.6
本题考查的是字符串常量这个知识点。
字符串常量实际上是一个数组,组成数据的字符除显式给出的外,还包括字符结尾处标识字符串结束的符号,'
\0'
。
所以字符串的字符个数等于字符个数加1,Java语言编译器会自动在字符串的末尾加上'
,作为字符串结束标识。
故本题答案是D。
第21题:
设有如下程序:
publicclassSun
{
publicstaticvoidmain(Stringargs[])
intx,y;
x=(int)Math.sqrt
(2)/2+(int)Math.random()*2/2;
y=(int)Math.sqrt(3)/3+(int)Math.random()*3/3;
if(x>
y)
System.out.println("
x>
y"
);
elseif(x==y)
System.out.println("
x=y"
else
x<
}
程序运行的结果为()。
A.x>
y
B.x=y
C.x<
D.以上都不对
本题是考查对if-else分支结构和几个标准函数语句的理解。
程序第2、第3行赋值号右边的两个表达式分别求两个标准函数的值,再进行整除,根据我们对标准函数的理解,其中每项的值均为0,于是,两个表达式的值均为o,分别赋值给变量x和y,很容易判断出x是等于y的。
进入分支结构后,if语句的条件x>
y不满足,转去执行elseif语句,条件x=y满足,执行System.out.println("
),输出x=y。
第22题:
执行下面的程序段后,x的值为()。
publicstaticvoidmain(Stringargs[]){intx=5;
for(inti=l;
i<
=20;
i=i+2)
x=x+i/5;
System.out.println(x);
A.21
B.22
C.23
D.24
该题考查对for循环的理解。
for循环的初始值为1,每次加2,当i<
5时,i/5为0,x的值不增加,4<
10时,i/5为1,x的值每次加1,由于i每次加2,故x增加3次,此时x值为8,当9<
x<
15时,i/5为2,x增加2次,x值为12,⋯⋯,最后输出x值为21。
第23题:
下列语句段将输出字符'
*'
的个数为()。
inti=100;
while
(1)
i--;
if(i==0)
break;
cout<
<
'
;
A.98
B.99
C.100
D.101
本题考查while循环语句。
根据if条件表达式可知,当i的值为1时,进入循环体,执行i--后i的值变为0,符合if条件,执行break跳出while循环体。
所以共循环99次,即输出字符99个。
第24题:
如果抛出异常,则应用语句()。
A.catch
B.throw
C.try
D.finally
Java语言中用throw语句来抛出异常。
选项A中,catch子句应该与try子句匹配使用,但不是用来抛出异常的;
选项D中,finally子句用于为异常处理提供统一的出口。
第25题:
Runnable接口中包括的抽象方法是()。
A.run()
B.start()
C.sleep()
D.isAlive()
A答案解析:
本题考查线程创建和使用的基本知识。
Runnable()接口中只有一个抽象方法run(),Thread类的主要方法有run()、start()、sleep()、isAlive()等。
选项A正确,从上面的分析可知run()是Runnable()接口中的唯一的抽象方法;
选项B错误,start()方法是将线程从不可运行状态转到可运行状态,start()方法产生了线程运行需要的系统资源,并调用线程体,也就是run()方法,但它不是抽象方法;
选项C错误,sleep()方法将线程从可运行状态转到阻塞状态,它也不是抽象方法;
选项D错误,isAlive()方法是判断线程是否存于可运行状态。
第26题:
Java语言中用于标识临界区的关键字是()。
A.serialize
B.transient
C.synchronized
D.static
一个程序中单独的、并发的线程对同一个对象进行访问的代码段,称为临界区。
在Java语言中,临界区可以是一个语句块或是一个方法,并且用synchronized关键字标识。
第27题:
下面关于串行化的说法中正确的是()。
Ⅰ:
对象串行化机制需要
将对象的状态保存到文件中,而后能够通过读入对象状态来重新构造对象,恢复程序状态。
Ⅱ:
通过让类实现java.io.Serializable接口可以将类串行化。
这个接口是一个制造者(marker)接口。
也就是说,对于要实现它的类来说,该接口不需要实现任何方法。
Ⅲ:
将对象读出或者写入流的主要类有两个:
ObjectOutputStream与ObjectInputStream。
Ⅳ:
以上都不对。
A.Ⅱ、Ⅲ
B.Ⅱ、Ⅳ
C.Ⅰ、Ⅱ、Ⅲ
D.Ⅲ、Ⅳ
本题是考查串行化的概念。
对象串行化机制需要将对象的状态保存到文件中,而后能够通过读入对象状态来重新构造对象,恢复程序状态,对使用套接字在网络上传送对象的程序来说,是很有用的。
通过让类实现java.io.Serializable接口可以将类串行化。
这个接口是一个制造者(marker)接口。
也就是说,对于要实现它的类来说,该接口不需要实现任何方法。
它主要用来通知Java虚拟机(JVM),将一个对象串行化。
ObjectOutputStrcam提供用来将对象写入输出流的writeObject方法,ObjectlnputStrcam提供从输入流中读出对象的readObject方法。
第28题:
字符流(characterstream)是一种()。
A.特殊类型的字节流,仅仅处理文本数据
B.一种类型的流
C.它修改了处理现存流的方式
D.它可用来处理文件
本题主要考查Java语言的字符流这个知识点。
选项A正确,字符流(characterstream)是特殊类型的字节流,它仅仅处理文本数据;
选项B是描述过滤流的特点:
选项C也是描述过滤流的特点;
选项D是描述文件流的特点。
第29题:
下列不属于Java的图形用户界面内容的包是()。
A.java.awt
B.javax.swing
C.java.awt.event
D.java.io
本题考查图形用户界面的基本内容。
选项A错误,iava.awt是java1.1中设计处理图形界面的包:
选项B错误,javax.swmg是Java1.2中扩展,iava.awt功能的处理图形界面的包;
选项C错误,所有的图形界面的事件类都在java.awt.event包内;
选项D正确,java.io是Java中处理输入输出的包。
故本题答案是D。
第30题:
和AWT有关的所有事件类都是从类()派生而来。
A.java.awt.AWTEvent
B.java.kang.Object
C.java.awt.Font
D.java.awt.Graphics
和AWT有关的所有事件类都从类java.awt.AWTEvcnt派生而来的。
第31题:
下列方法中设置Swing容器JFrame大小为20×
30的语句是()
A.setSize(20,30)
B.setTitle(20,30)
C.setVisible(20,30)
D.setBounds20,30)参考答案:
本题考查Swing中关于容器方法的基本知识。
选项A正确,JFrame方法setSize(int,int)用来设置框架大小;
选项B错误,方法setTitle(String)可设置标题;
选项C错误,创建框架时,默认框架是不可见的,可以通过方法setVisible(true)来使它们可见;
选项D错误,显示框架的默认位置是在计算机桌面的左上角,可以通过调用方法setBounds(int,int,int,int)使其显示到指定位置。
)。
第32题:
JavaApplet的几个方法的执行顺序,正确的是(
A.init→startB.init→startC.start→initD.start→init
→destroy→stop→stop→destroy→destroy→stop→stop→destroy参考答案:
该题考查对JavaApplet生命周期的几个函数执行顺序的理解。
Applet生命周期是指从Applet下载到浏览器,到用户退出浏览器,终止Applet运行的过程。
Applet运行时,首先由浏览器调用init()方法,然后调用start()方法,使Applet成为激活状态,当Applet被覆盖时,调用stop()停止线程,最后关闭浏览器调用deserog()。
第33题:
下列属于Applet运行过程中的是()。
A.浏览器加载Applet文件
B.浏览器下载Applet文件