因害怕失败而不敢放手一搏,是不会成功。因害怕计算机等级考试不过关而不去尝试做二级Java练习题,永远不能战胜自己。
二级Java练习题
【1】
1.线性表L=(al,a2,a3,…ai,…an),下列说法正确的是( )。
A.每个元素都有一个直接前件和直接后件
B.线性表中至少要有一个元素
C.表中诸元素的排列顺序必须是由小到大或由大到小
D.除第一个元素和最后一个元素外,其余每个元素都有且只有一个直接前继和直接后继
2.下列关于完全二叉树的叙述中,错误的是( )。
A.除了最后一层外,每一层上的结点数均达到最大值
B.可能缺少若干个左右叶子结点
C.完全二叉树一般不是满二叉树
D.具有结点的完全二叉树的深度为[log2n]+1
3.对长度为n的线性表进行顺序查找,在最坏情况下需要比较的次数为( )。
A.125
B.n/2
C.n
D.n+1
4.下列选项中不属于结构化程序设计方法的是( )。
A.自顶向下
B.逐步求精
C.模块化
D.可复用
5.软件需求分析阶段的工作,可以分为4个方面:需求获取、需求分析、编写需求规格说明书以及( )。
A.阶段性报告
B.需求评审
C.总结
D.都不正确
6.下列叙述中,不属于测试的特征的是( )。
A.测试的挑剔性
B-完全测试的不可能性
C.测试的可靠性
D.测试的经济性
7.模块独立性是软件模块化所提出的要求,衡量模块独立性的度量标准是模块的( )。
A.抽象和信息隐蔽
B.局部化和封装化
C.内聚性和耦合性
D.激活机制和控制方法
8.下列关于软件测试的描述中正确的是( )。
A.软件测试的目的是证明程序是否正确
B.软件测试的目的是使程序运行结果正确
C.软件测试的目的是尽可能多地发现程序中的错误
D.软件测试的目的是使程序符合结构化原则
9.下列工具中为需求分析常用工具的是( )。
A.PAD
B.PFD
C.N-S
D.DFD
10.下列特征中不是面向对象方法的主要特征的是( )。
A.多态性
B.继承
C.封装性
D.模块化A
1.D。解析:线性表可以为空表;第一个元素没有直接前驱,最后一个元素没有直接后继;线性表的定义中,元素的排列并没有规定大小顺序。
2.B。解析:满二叉树指除最后一层外,每一层上所有结点都有两个子结点的二叉树。完全二叉树指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干叶子结点的二叉树。由定义可知,满二叉树肯定是完全二叉树,而完全二叉树一般不是满二叉树。
3.C。解析:对线性表进行顺序查找时,最坏情况下,要查找的元素是表的最后一个元素或查找失败,这两种情况都需要将这个元素与表中的所有元素进行比较,因此比较次数为n。
4.D。解析:结构化程序设计的主要原则概括为自顶向下,逐步求精,模块化。
5.B。解析:需求分析是软件定义时期的最后一个阶段。可以概括为四个方面:需求获取;需求分析;编写需求规格说明书;需求评审。
6.C。解析:软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定。软件测试有3个重要特征:测试的挑剔性、完全测试的不可能性及测试的经济性。
7.C。解析:模块的独立性是评价设计好坏的重要度量标准。衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。
8.C。解析:软件测试是为了尽可能多地发现程序中的错误,尤其是至今尚未发现的错误。
9.D。解析:需求分析常用工具有数据流图(DFD)、数据字典(DD)、判定树和判定表。问题分析图(PAD)、程序流程图(PFD)、金式图(N-S)都是详细设计的常用工具,不是需求分析的工具。
10.D。解析:模块化是结构化程序设计的特点。面向对象设计方法使用现实世界的概念抽象地思考问题从而自然地解决问题。他的特点包括:分类性、封装性、模块独立性、继承和多态性等。
【2】
一、基本操作题
本题提示输入年份,然后判断该年份是否为闰年。
importjava.io.*;
public class javal{
public static void main(String[]args){
InputStreamReader ir;
BufferedReader in;
ir=new InputStreamReader(System.in);
in=new BufferedReader(ir);
int year=1900;
System.out.print("请输入年份:");
try{
String s=in.readLine();
;
} (Exception e){
}
if( )
System.OUt.println(year+"是闰年");
else
System.out.println(year+"不是闰年");
}
}
二、简单应用题
本题使用下拉菜单来控制字体,窗口中有一个标签和一个下拉菜单,当选中下拉菜单中的任一项字体时,标签上字符串的字体就随之改变。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class ComboBoxFrame extends JFrame {
public ComboBoxFrame(){
setTitle("java2");
setSize(300,200);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
style=new JComboBox():
style.setEditable(true);
style.addhem("Serif");
style.addItem("SansSerif");
style.addhem("Monospaced");
style.addhem("Dialog");
style.addhem("Dialoglnput");
style.addActionListener(this);
JPanel p=new JPanel();
P.add(style);
getContentPane().add(p,"South");
panel=new ComboBoxTestPanel();
getContentPane().add(panel,"Center");
}
public void actionPerformed(ActionEvent evt){
JComboBox source=(JComboBox) ;
String item=(String)source.getSelectedhem():
panel.setStyle(item);
}
private ComboBoxTestPanel panel;
private JComboBox style;
}
class ComboBoxTestPanel extends JPanel{
public ComboBoxTestPanel(){
setStyle("Serif");
}
public void setStyle(String s){
setFont(new Font(S,Font.PLAIN,12));
repaint();
}
public void paintComponent(Graphics g){
super.paintComponent(g);
9.drawString("Welcome to China!",0,50);
}
}
public class java2{
public static void main(String[]args){
JFrame frame=new ComboBoxFrame();
frame.show();
}
}
三、综合应用题
本题是一个Applet,功能是监听用对于文本域中文本的选择。页面中有一个文本域、一个“复制”按钮和一个文本框,选中文本域中部分文字后,单击按钮“复制”,所选文字将显示在文本框中。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class java3 extends Applet implements ActionL-
istener
{
TextArea ta=new TextArea(5,30);
TextField tf=new TextField(30);
Button button=new Button("复制");
String text="AWT提供基本的GUl组件,\n"+"
具有可以扩展的超类,\n"+"它们的属性是继承的。\
n":
public void init()
{
setLayout(new FlowLayout(FlowLayout.left));
ta.setText(text);
ta.setEditable(true);
add(ta);
add(button);
add(tf);
ta.addActionListener(this);
}
public void actionPerformed(ActionEvent e)
{
String S;
s=ta.getSelectText();
if(e.getSource()= =button)
tf.setText(s);
}
}
一、基本操作题
第1处:year=Integer.parseInt(s)
第2处:catch
第3处:year%4= =0&&year0 !=0 ||year@0
= =0
解析:第1处是将String型的s转换成整型;第2处是捕获异常的catch子句,用来处理由try所抛出的异常事件;第3处是判断是否为闰年的条件,即能被4整除且不能被100整除的或能被400整除的就是闰年。
二、简单应用题
第1处:implements ActionListener
第2处:evt.getSource()
解析:第1处是实现ActionListener接口,程序中有窗口监听器的注册;第2处返回ActionEvent动作事件的最初发生对象。
三、综合应用题
第1处:setLayout(new FlowLayout(FlowLayout.LEFT))
第2处:button.addActionListener(this)
一第3处:s=ta.getSelectedText()
解析:第1处是设置构件的对齐方式为左对齐的且纵横间隔都是5个像素的布局管理器;第2处是为按钮注册监听器;第3处是在文本域ta中得到选中文本,将其赋给String类型的s。
【3】
选择题
1.阅读下面程序
importjava.io.*;
public class TypeTransition{
public static void main(String args[]){
char a=’h’;
int i=100 ;
int J=97;
int aa=a+i;
System.out.println("aa="+aa);
char bb=(char)j;
System.out.println("bb="+bb):
}
}
如果输出结果的第二行为bb=a,那么第一行的输出结果是( )。
A.aa=I
B.aa=204
C.aa=v
D.aa=156
2.阅读下面程序
public class Operators And Expressions(
void equals Methodl(){
Stringsl一new String("how are you");
Strings2=new String("how are you");
System.out.println(s1= =s2):
}
public static void main(String args[]){
Operators And Expressions Oper And Exp=new Oper-
ators And Expressions
();
//用于复合类型数据的”= =”运算符
OperAndExp.equalsMethodl();
}
}
程序运行结果是( )。
A.= =
B.true
C.false
D.equal
3.阅读下面代码
if(x= =0){System.out.println("冠军");)
elseif(x>一3){System.Out.println("亚军");}
else{System.out.println("季军");}
若要求打印字符串”季军”,则变量X的取值范围是( )。
A.x=d&x<=-3
B.x>O
C.x>-3
D.x<=-3
4.下列关于构造方法的叙述中,错误的是( )。
A.Java语言规定构造方法名与类名必须相同
B.Java语言规定构造方法没有返回值,但不用void声明
C.Java语言规定构造方法不可以重载
D.Java语言规定构造方法只能通过new自动调用
5.下列适配器类中不属于事件适配器的是( )。
A.MouseAdapter
B.KeyAdapter
C.ComponentAdapter
D.FrameAdapter
6.下列类中属于字节输入抽象类的是( )。
A.FileInputStream
B.ObjectInputStream
C.FiterInputStream
D.InputStream
7.能向内部直接写入数据的流是( )。
A.FileOutputStream
B.FileInputStream
C.ByteArrayOutputStream
D.ByteArraylnputStream
8.下列运算符中属于关系运算符的是( )。
A.= =
B.=
C.+ =
D.- =
9.下列方法中,声明抛出InterruptedException类型异常的方法是( )。
A.suspend()
B.resume()
C.sleep()
D.start()
10.下列关于System类的叙述中,错误的是( )。
A.System类是一个final类
B.System类不能实例化
C.System类中没有定义属性
D.System类主要提供了系统环境参数的访问
1.B。解析:本题考查的是Java的基本数据类型及其运算。程序开始生成了一个字符型变量a和3个整型变量i、j、aa。而整型变量aa的初始值是a+i,其中a是一个字符型变量。如何进行加法运算呢?Java语言规定,char型数据可以自动转换成int类型,转换的结果就是该字符的ASCIl码值。因此,整型变量aa的初始值为字符”h”的ASCIl码值加上l00。如果记住h的ASCIl码值是104,则直接就确定aa的初始值是204,选项B为正确答案。如果记不得h的ASCIl码,题目中则给出提示。题目中说”输出结果的第二行为bb=a”,也就是字符bb的值为字符a,bb的生成语句是char bb=(char)j,是把整型变量j的值强制转换为字符型。同样,把ASCIl码值为j(97)所对应的字符赋值给bb。显然,字符a的ASCIl码值为97,字符b的ASCIl码值为98,依次类推,字符h的ASCIl码为l04。因此,本题的正确答案是B。
2.C。解析:本题考查的是Java语言中运算符的特殊用法。相等比较运算符"= =",不仅可用于基本类型的数据之间的比较,还可以用于复合类型数据之间的比较。但是,对于复合类型数据的"= ="运算,其比较的目标是两个操作数是否是同一个对象。如果需要比较两个对象的值是否相同,则可以调用equals()方法。题目中函数equalsMethodl()的代码非常简单,首先生成两个字符串对象sl和s2,然后输出表达式"sl= =s2"的结果。根据上面介绍的相等比较运算符的用法,字符串对象sl和s2是复合类型数据,因此表达式"sl= =s2"比较的是sl和s2是否同一个对象。显然,sl和s2虽然具有相同的值,即"how are you",但它们是两个不同的对象。因此,本题的正确答案是C。
3.D。解析:本题考查的是条件分支语句if-else。if-else根据判定条件的真假来执行两种操作中的一种。当条件为真时,执行if语句后面的代码块;当条件为假时,执行else后面的代码块。题目中的代码段是一个if-else的嵌套语句,根据if-else语句的执行过程来进行分析。当x的值为0时,布尔表达式"x= =0"的结果为真,就输出”冠军”;当x的值不为0时,则执行else语句中的内容。else语句中的代码又是一个if-else语句,还是和上面一样进行分析。当X的值不等于0且大于-3时,布尔表达式”x>-3”的结果为真,输出"亚军";当x的值不等于0且不大干-3,也就是X的值不等于0同时x的值小于等于-3时,则输出"季军"。经过上述分析可知,要想输出"季军",x所满足的条件为x!=O&x<=-3,但是当x<=-3时,x的值一定不会为0。所以,X所满足的条件可以简写为x<=-3。因此,本题的正确答案为D。
4.C。解析:本题考查的是构造方法的使用。Java语言中,构造方法是一种特殊的方法,是为对象初始化操作编写的方法,用它来定义对象的初始状态。Java中的每个类都有构造方法,它也是由方法名、参数和方法体组成的。构造方法有如下特点:
构造方法的名字必须与类名相同。
构造方法不返回任何数据,但不用void来声明。
用户不能直接调用构造方法,必须通过关键字new自动调用。
构造方法可由用户在类中定义,默认时由Java语言自动生成。但它是个空方法,变量被赋予该数据类型的默认值。
在构造方法实现中,可以进行方法重载,即定义多个构造方法。重载构造方法的目的是使类具有不同的初始值,为类对象的初始化提供方便。根据上述构造方法的特点可知,本题选项C的说法是错误的。
5.D。解析:本题考查java.awt.event包中定义的适配器类。该包中定义的适配器类包括①ComponentAdapter构件适配器;②ContainerAdapter容器适配器;③FocusAdapter焦点适配器;④MouseAdapter鼠标适配器;⑤KeyAdapter键盘适配器⑥WindowAdapter窗口适配器,由此可知本题答案为D。
6.D。解析:在Java中定义了两种类型的流,字节型和字符型,这两种流分别用4个抽象类表示:InputStream,OutputStream,Reader,Writer,其中InptutStream和OutStream表示字节流,Reader和Reader是表示字符流,所以字节输入抽象类为InptutStream。
7.C。解析:本题考查Java的内存读写。在java.io中,还提供了 ByteArrayInputStream、ByteArrayoutputStream和StringBufferInputStream类可直接访问内存,它们是InputStream和OutputStream的子类。用ByteArrayOutputStream可向字节数组写入数据;ByteArrayInputStream可从字节数组中读取数据。
8.A。解析:本题考查Java的关系运算符。B中写法不正确,C、D均为赋值运算符。
9.C。解析:本题考查线程的基本操作。Java中提供了interrupt方法用来中断一个线程,当调用一个线程的interrupt方法时,即向该线程发送一个中断请求。在调用线程的interrupt方法时,如果该线程由于调用了sleep方法或wait方法而正在处于阻塞状态,那么线程会抛出一个InterruptException异常。
10.C。解析:本题考查System类的基本知识。Systern类是一个final类,所有的方法都用类变量来调用,对System类不可能实例化。System类主要用来提供标准输入/输出和系统环境信息的访问设置。而System类的属性有:①public static final InputStream in;标准输入;②publicstatic final OutputStream out;标准输出;③pubhc static finalPrintStream err;标准错误输出。
【4】
1.数据的存储结构是指( )。
A.存储在外存中的数据
B.数据所占的存储空间量
c.数据在计算机中的顺序存储方式
D.数据的逻辑结构在计算机中的表示
2.对于长度为n的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是( )。
A.冒泡排序n/Z
B.冒泡排序为n
C.快速排序为n
D.快速排序为n(n一1)/z
3.栈和队列的共同点是( )。
A.都是先进先出
B.都是先进后出
C.只允许在端点处插入和删除元素
D.没有共同特点
4.对建立良好的程序设计风格,下列描述中正确的是( )。
A.程序应该简单、清晰、可读性好
B.符号名的命名只需要符合语法
C.充分考虑程序的执行效率
D.程序的注释可有可无
5.下列叙述中正确的是( )。
A.在面向对象的程序设计中,各个对象之间具有密切的关系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述3种说法都不对
6.为了提高软件模块的独立性,模块之间最好是( )。
A.控制耦合
B.公共耦合
C.内容耦合
D.高内聚低耦合
7.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指( )。
A.数据与程序独立存放
B.不同的数据被存放在不同的文件中 ..
C.不同的数据只能被对应的应用程序所使用
D.以上三种说法都不对
8.下列描述中正确的是( )。
A.软件工程只是解决软件项目的管理问题
B.软件工程主要解决软件产品的生产率问题
C.软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
D.软件工程只是解决软件开发过程中的技术问题
9.对关系S和R进行集合运算,结果中既包含S中的所有元组也包含R中的所有元组,这样的集合运算称为( )。
A.并运算
B.交运算
C.差运算
D.积运算
10.下列关于数据存储方式的叙述中,不正确的是( )。
A.数据的主要存储方式有顺序存储结构和链式存储结构
B.顺序存储结构存储空间利用率低,链式存储结构空间利用率高
C.顺序存储结构的结点只有自身域,链式存储结构除了自身域还包括指针域
D.顺序存储结构可通过计算直接确定数据结构中某个结点的存储地址
1.D。解析:数据的存储结构是指数据结构(数据的逻辑结构)在计算机中的表示,又称物理结构。数据的存储结构主要有两种:顺序存储结构和链式存储结构。
2.D。解析:冒泡排序法首先将第一个记录的关键字与第二个记录的关键字进行比较,若逆序则交换,然后比较第二个与第三个,以此类推,直至第n-1个与第n个记录的关键字进行比较。在最坏情况下,冒泡排序中,若初始序列为”逆序”序列,需要比较n(n-1)/2次。快速排序是对通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,最终达到整个记录有序。最坏情况下比较次数为n(n-1)/2。
3.C。解析:栈是只允许在表的一端进行插入和删除的操作,队列是允许在表的一端进行插入,另一端进行删除的操作。
4.A。解析:”清晰第一,效率第二”,在考虑到程序的执行效率的同时,一定要保证程序清晰、可读;对符号名的命名,除了要符合语法要求外,还要具有一定的含义;程序的注释可以帮助程序员理解程序,不是可有可无的。
5.C。解析:面向对象的程序设计是用对象模拟问题领域中的实体,各对象之间相对独立,相互依赖性小,通过消息来实现对象之间的相互联系。
6.D。解析:耦合性与内聚性是模块独立性的两个定性标准,一般的程序设计都会尽量做到高内聚、低耦合,有利于提高模块的独立性。
7.D。解析:数据独立性是数据库系统的一个最重要的目标之一,它使数据能独立于应用程序。数据独立性包括数据的物理独立性和逻辑独立性。物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。即数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。逻辑独立性是指用户的应用程序与数据库的逻辑结构是相互独立的,即当数据的逻辑结构改变时,用户程序也可以不变。
8.C。解析:软件工程是指将工程化的思想应用于软件的开发、应用和维护的过程,包括软件开发技术和软件工程管理。
9.A。解析:关系的并运算是指由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。
10.B。解析:顺序存储结构的结点只有自身信息域,没有连接信息的域,因此存储密度大,存储空间利用率高。链式存储结构除了自身域还包括指针域,因此比顺序存储结构的存储密度小,存储空间利用率低。
【5】
1). applet的运行过程要经历4个步骤,其中哪个不是运行步骤?
A.浏览器加载指定URL中的HTML文件
B.浏览器显示HTML文件
C.浏览器加载HTML文件中指定的applet类
D.浏览器中的Java运行环境运行该applet
正确答案:B
2). 二维数组A[O,…,8][0,…,9],其每个元素占2字节。从首地址400开始,按行优先顺序存储,则元素A[8][5]的存储地址为( )。
A.570
B.506
C.410
D.482
正确答案:A
答案解析:A[8][5]元素存储的位置在第9行第6列,所以A[8][5]之前存储的个数应为8×10+5 = 85,这些元素占用的空间为85×2字节=170字节,所以A[8][5]的存储位置为400+170= 570。
3). 用于生产过程控制的系统,一般都是( ),它要求有对输入数据及时做出响应的能力。
A.批处理系统
B.分时系统
C.实时系统
D.及时系统
正确答案:C
答案解析:用于生产过程控制的系统,一般都是实时系统,它要求有对输入数据及时做出反应(响应)的能力。由于环境和控制对象以及工作任务的不同,控制系统对计算机系统的要求也会不同,一般会对计算机系统的可靠性、封闭性、抗干扰性等指标提出要求。
4). Java语言的许多特点中,下列哪个特点是C++语言所不具备的?
A.高性能
B.跨平台
C.面向对象
D.有类库
正确答案:B
5). 在匹配器(Matcher)类中,用于寻找下一个模式匹配串的方法是( )。
A.static boolean matches()
B.boolean matcher .fi nd()
C.i nt matcher .start()
D.i nt matcher .end()
正确答案:A
6). 在面向对象的方法中,一个对象请求另一个对象为其服务的方式是通过发送
A.调用语句
B.命令
C.口令
D.消息
正确答案:D
7). 下列的( )原始类型在使用流时可以互换。
A.byte和boolean
B.char和int
C.byte和char
D.String和char
正确答案:B
8). grid[9][5]描述的是( )。
A.二维数组
B.一维数组
C.五维数组
D.九维数组
正确答案:A
答案解析:这是一个二维数组,[]中的数字是每一维的大小。
9). 在Java 中,实现用户界面功能的包是( )。
A.java.applet
B.javax.transaction
C.java.util
D.java.awt
正确答案:D
10). 下列运算符中属于关系运算符的是( )。
A.==
B.=
C.+=
D.-=
正确答案:A
11). 已知一个有序线性表为(13,18,24,35,47,50,62,83,90,115,134),当用二分法查找值为90的元素时,查找成功的比较次数为( )。
A.1
B.2
C.3
D.9
正确答案:B
考无忧小编tips:
那些成功的人,不一定最初就是最优秀的,但一定都是坚持走了最远的。人生很多时候没有那么多道理可言,挺住,就意味着一切皆有可能。坚持复习以上的二级Java练习题,就意味着多一份考试通过的可能。
文章推荐:
2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的近期资讯吗?点击进入>>>计算机等级考试题库资讯