赶紧进来刷刷题、复习一下,看剧、刷题,两不耽误,非常完美!以下是二级Java练习题,赶紧看看吧!
二级Java练习题
【1】
1.Java虚拟机(JVM)运行Java代码时,不会进行的操作是()。
A.加载代码
B.校验代码
C.编译代码
D.执行代码
2.Java程序的并发机制是()。
A.多线程
B.多接口
C.多平台
D.多态性
3.在方法内部使用,代表对当前对象自身引用的关键字是()。
A.super
B.This
C.Super
D.this
4.阅读下列程序
publicclassVariableUse{
publicstaticvoidmain(String[]args){
inta;
if(a==8){
intb=9;
System.OUt.println("a="+a):
System.out.println("b="+b);
}
System.Out.println("a="+a):
System.OUt.println("b="+b);
}
}
该程序在编译时的结果是()。
A.变量a未赋值
B.第二个System.out.println("b="+b)语句中,变量b作用域有错
C.第二个System.out.println("a="+a)语句中,变量a作用域有错
D.第一个System.out.println("b="+b)语句中,变量b作用域有错
5.下列不属于Swing的构件是()。
A.JButton
B.JLabel
C.JFrame
D.JPane
6.对鼠标单击按钮操作进行事件处理的接口是()。
A.MouseListener
B.WindowListener
C.ActionListener
D.KeyListener
7.AWT中用来表示颜色的类是()。
A.Font
B.Color
C.Panel
D.Dialog
8.下列运算符中,优先级最高的是()。
A.++
B.十
C.*
D.>
9.Java语言中属于跳转语句的是()
A.try
B.catch
C.finally
D.break
10.阅读下列利用递归来求n!的程序。
classFactorialTest{
staticlongFactorial(intn){//定义Factorial()方法
if(n==1)
returnl;
else
returnn*Factorial{};
}
publicstaticvoidmain{Stringa[]}{
//main()方法
intn=8:
System.out.println{n+"!="+Factorial
(n)};
}
}
为保证程序正确运行,在下画线处应该填入的参数是()。
A.n-1
B.n-2
C.n
D.n+1
1.A。【解析】Java虚拟机加载代码是在运行前的操作。运行代码时会校验、编译和执行代码。
2.A。【解析】Java是通过多线程实现并发机制的。多线程是指一个程序中包含多个执行流,多线程程序设计的含义是可以将程序任务分成几个并行的子任务。
3.D。【解析】super关键字为实现对父类变量的访问和对父类方法的调用。对当前对象自身的引用应使用this关键字。
4.B。【解析】局部变量b是在if(a==8){}里定义的,作用域也只在这个if语句范围内,第二个System.out.println("b="+b)语句中,变量b超出了作用域。
5.D。【解析】Swing构件中JButton是按钮构件,JLabel为标签构件,JFrame为顶层窗体容器构件。中间容器面板应为JPanel,而不是JPane。
6.C。【解析】动作事件和按钮按下,以及在TextField中按键对应的事件为ActionEvent事件,进行处理的接口应为ActionListener。MouseListener是MouseEvent事件的实现接口,响应的是鼠标的移动、单击(不包括单击按钮)事件。
7.B。【解析】AWT中Font是表示字体的类,Color是表示颜色的类,Panel是表示面板的类,Dialog是表示对话框的类。
8.A。【解析】在这些运算符中++运算符优先级最高。
9.D。【解析】Java语言中跳转语句为break。try、catch和finally为异常处理语句。
10.A。【解析】因为在n不为l时,n!=n*(n-1)*(n-2)*…*1=n*(n-1)!,所以此处应为n-1。
【2】
1.如果进栈序列为el、e2、e3、e4、e5,则可能的出栈序列是()。
A.e3、el、e4、e2、e5
B.e5、e2、e4、e3、el
C.e3、e4、e1、e2、e5
D.任意顺序
2.下述关于数据库系统的叙述中,正确的是()。
A.数据库系统减少了数据冗余
B.数据库系统避免了一切冗余
c.数据库系统中数据的一致性是指数据类型一致
D.数据库系统比文件系统能管理更多的数据
3.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是()。
A.控制流
B.加工
C.数据存储
D.源和终
4.已知一个有序线性表为(13,18,24,35,47,50,62,83,90。115,134),当用二分法查找值为90的元素时,查找成功的比较次数为()。
A.1
B.2
C.3
D.9
5.下列关于项目中“移出”文件的说法,正确的是()。
A.被移出的文件将直接从磁盘中删除
B.被移出的文件将不能被任何项目添加
C.被移出的文件只是将文件移出项目,但文件保留在磁盘中
D.被移出的文件,以后不能再次添加到原项目中,但可以添加到其他项目中
6.需求分析阶段的任务是()。
A.软件开发方法
B.软件开发工具
C.软件开发费用
D.软件系统功能
7.设R是一个2元关系,S是一个3元关系,则下列运算中正确的是()。
A.R-S
B.R×S
C.RnS
D.RUS
8.结构化分析方法是面向()的自顶向下逐步求精进行需求分析的方法。
A.对象
B.数据结构
C.数据流
D.目标
9.数据库设计包括两个方面的设计内容,它们是()。
A.概念设计和逻辑设计
B.模式设计和内模式设计
C.内模式设计和物理设计
D.结构特性设计和行为特性设计
1.B。【解析】根据栈先进后出的特点可知el肯定是最后出栈的,因此正确答案为选项B。
2.A。【解析】数据库系统会减少数据冗余,但不可能避免所有冗余。
3.A。【解析】数据流图简称DFD,它以图形的方式描绘数据在系统中流动和处理的过程,由于它只反映系统必须完成的逻辑功能,所以它是一种功能模型。数据流图有4种基本图形符号:箭头表示数据流;椭圆表示加工;双杠表示存储文件(数据源);方框表示数据的源点或终点。
4.B。【解析】根据二分法查找需要两次:首先将90与表中间的元素50进行比较,由于90大于50。所以在线性表的后半部分查找;第二次比较的元素是后半部分的中间元素,即90,这时两者相等,即查找成功。
5.C。【解析】在数据库中移除不代表删除,从项目中移除是指文件只是从项目中移除,但文件还保存在磁盘中,如果需要仍然可再次添加到此项目中。当在项目中删除文件后,文件才能被添加到其他的项目中。所以答案选择C。
6.D。【解析】需求分析是软件定义时期的最后一个阶段,它的基本任务就是详细调查现实世界要处理的对象,充分了解原系统的工作概况,明确用户的各种需求,然后在这些基础上确定新系统的功能。
7.B。【解析】关系的交(n)、并(U)和差(一)运算要求两个关系是同元的,显然作为二元的R和三元S只能做笛卡儿积运算。
8.C。【解析】结构化分析方法是面向数据流进行需求分析的方法,采用自顶向下、逐层分解、建立系统的处理流程。
9.A。【解析】数据库设计包括概念设计和逻辑设计两个方面的内容。
【3】
1.用来导入已定义好的类或包的语句是()。
A.main
B.import
C.publicclass
D.ClaSS
2.下列叙述中,正确的是()。
A.声明变量时必须指定一个类型
B.Java认为变量number与Number相同
C.Java中唯一的注释方式是“//”
D.源文件中public类可以有0个或多个
13.下列属于合法的Java标识符是()。
A."ABC"
B.&5678
C.+rriwo
D.saler
4.下列代表十六进制整数的是()。
A.Ol23
B.1900
C.fa00
D.0xa2
5.在Java中,实现用户界面功能的包是()。
A.java.applet
B.javax.transaction
C.java.util
D.java.awt
6.下面()正确表示了int类型的聚会范围。
A.-216~216-1
B.-231~231-1
C.-232~232-1
D.-264~264-1
7.在编写Java程序的时候,如果不为类的成员变量定义初始值,Java会给它们设置默认值,下列说法中不正确的是()。
A.Byte的默认值是0
B.int的默认值是0
C.long的默认值是0.0L
D.float的默认值是0.Of
8.Java.语言中所有的简单数据类型都被包含在()中。
A.java.sql
B.java.awt
C.java.lang
D.java.math
9.设a=8,则表达式a>>>2的值是()。
A.1
B.2
C.3
D.4
10.以下各选项中能正确声明一个表示50个值为null的字符串数组的是()。
A.string[]a;
B.stringa[];
C.chara[50][];
D.stringa[]=newString[50]
1.B。【解析】本题考查Java中的import语句。Java中使用import语句来导入已定义好的类或包,需要注意Java语言的java.lang包是编译器自动导入的,编程时如果使用该包中的类,可省去import导入,如果要使用其他包中的类,必须用import导入。
2.A。【解析】本题考查Java的基本概念。Java的基本概念是考试重点,应该重视。在Java中,声明变量时,必须指定类型,否则将会出错,所以选项A说法正确。Java标识符是区分大小写的,变量number和Number对Java来说是不同的,选项B说法错误。Java中有三种注释方式:文档注释/**…*/,被javadoc处理,可以建立类的一个外部说明性文件;C语言注释风格/*…*/,用于去掉当前不再使用但仍想保留的代码等;单行注释//,格式上要求注释符//后必须紧跟一个空格,然后才是注释信息,选项C说法错误。源文件中public类可以有0个或l个,不能多于l个,选项D说法错误。
3.D。【解析】本题考查Java语言中的整型常量。整型常量有三种书写格式:十进制整数,如156,-230,345;八进制整数,以0开头,如012表示十进制的l0;十六进制整数,以0x或0X开头,如0X123表示十进制数291。由此可见,选项A表示的是十六进制整数,选项B不是整数形式,选项C是十进制整数,选项D是八迸制整数,为本题正确选项。Java中标识符的命名规则是:标识符以字母、下画线、美元符作为首字符的字符串序列;标识符是区分大小写的;标识符的字符数没有限制。由此可见,Java中标识符不能以“"”开头,所以选项A错误,不能以“&”开头。选项B错误,不能以“+”开头,选项C错误,只有选项D是正确答案。
4.D。【解析】本题考查Java语言中的整型常量。整型常量有三种书写格式:十进制整数,如123,-30,365;八进制整数,以0开头,如011表示十进制的9;十六进制整数:以0x或0X开头,如0X123表示十进制数291。由此可见,选项D表示的是十六进制整数,选项C不是整数形式,选项B是十进制整数,选项A是八进制整数,只有选项D为本题正确选项。
5.D。【解析】本题考查考生对Java包功能的理解。选项A中java.applet包是为Applet提供执行需要的所有类,主要访问Applet内容的通信类;选项B中transaction包是属于javax而不是java,javax.transaction包是提供事务处理所需要的包;选项C中java.util包提供使用程序类和集合类,如系统特性定义和使用、日期函数类、集合Collection、Map、List、Array等常用工具类;java.awt包是封装抽象窗口工具包,提供构建和管理用户图形界面功能,为本题正确答案。
6.B。【解析】该题考查对基本数据类型的长度范围的掌握。在Java语言中,每一种基本类型的长度范围是固定的,它不随着机器字长的改变而改变。对于整型(int),它的长度是4字节,而且它可正可负,所以其取值范围应该是-231~231-1。
7.C。【解析]Long类型的默认值为0L,而不是0.0L。
8.C。【解析Java语言中,所有的简单数据类型都被包含在包java.lang中。
9.B。【解析】本题具体考查对位运算符中无符号右移运算符的掌握。无符号右移运算符”>>>”用于将一个数的各二进制位全部无符号右移若干位,与运算符”>>”不同的是左补0。在本题中,8的二进制表示l000,右移两位后变成了0010,对应的十进制数是2。
10.D。【解析】本题考查对字符串数组变量声明的掌握。在Java语言中,typearrayName[]和type[]arrayName的效果一样,都表示声明一个数组。所以选项A和选项B的效果是一样的,对于本题来说都是不正确的,因为它们没有指明数组所包含的元素的个数;选项C是一个二维的字符数组,Java语言跟C语言不一样,在C语言中,一个二维的字符数组就可以表示一个一维的字符串数组。而在Java中,字符char是基本数据类型,字符串string则是以对象的形式来表示的。所以,chara[][]并不等价于stringa[]。而且,C选项并没有指明数组的长度;选项D正确地声明了一个长度为50的空字符串数组。
【4】
简答题
1、try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?
答:会执行,在return前执行。
2、简述Java多态性的概念,隐藏、覆盖和重载的概念及使用时应注意的问题。
答:多态性:在一个类中可以定义多个同名方法,有静态多态性和动态多态性。
隐藏:子类重新定义了父类中的同名成员变量。被隐藏的父类成员变量在子类中仍然占有存储空间。
覆盖:子类重新定义了父类的同名成员方法,要求方法名、参数和返回类型都相同。与隐藏不同,此时子类方法将替换掉同名的父类方法,清除父类方法在子类中占有的空间。
重载:在同一个类中定义多个同名但参数不同的方法,参数不同是指个数、类型或顺序不同。
注意事项:
不能覆盖父类的static方法和final方法。
可以隐藏父类的static方法,即在子类中声明同名static方法。
非Static方法不能隐藏,只能覆盖。
子类必须覆盖父类的abstract方法。
3、什么是事件、事件源和事件监听器?简述使用事件监听器进行事件处理的过程。
答:事件:对界面的某种操作,如按键、单击鼠标、鼠标移动等。
事件源:事件的产生者,通常是某一组件,如按钮等。
事件监听器:是某些事件的接口,其中定义了被监听的事件发生时系统要调用的方法。
事件处理过程由下面3步组成:
①为类声明需要的事件监听器接口。
②给事件源注册一个事件监听器。
③实现接口声明中事件处理方法。
4、简述Java中构造方法的概念及特点。
答:构造方法:构造方法是一种特殊的方法,用于初始化对象。
特点:①构造方法与类同名,可以有参数 ,也可无参数。
②构造方法没有返回值,在方法前也不需要写void。
③创建对象时,系统自动调用构造方法。
④用户在程序中不能直接调用构造方法,只能通过new操作符调用。
⑤一个类可以有多个同名构造方法,但参数必须不同。所谓参数不同是指:
⑥类中可以不定义构造方法,此时Java提供一个默认的无参数构造方法
5、简述Java中接口的概念及接口的性质?
答:Java语言规定,类只能实现单继承,但接口可以实现多重继承。接口中定义的方法都是抽象方法,定义的所有域都是常量。
因此接口可以看作是没有实现的方法和常量的集合。使用接口主要是解决Java语言不支持多重继承的问题。
性质:①接口不提供代码重用性。因为接口中的方法都是没有实现的方法,因此所有的方法体都要自己编写。
②接口可以通过多继承进行扩展。
③接口不能升级,即提供给用户的接口不能再改变。
【5】
简答题
1、接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)?
答:接口可以继承接口。抽象类可以实现(implements)接口,抽象类是否可继承实体类,但前提是实体类必须有明确的构造函数。
2、数组有没有length()这个方法? String有没有length()这个方法?
答:数组没有length()这个方法,有length的属性。String有有length()这个方法。
3、构造器Constructor是否可被override?
答:构造器Constructor不能被继承,因此不能重写Overriding,但可以被重载Overloading。
4、是否可以继承String类?
答:String类是final类故不可以继承。
5、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
答:switch(expr1)中,expr1是一个整数表达式。因此传递给 switch 和 case 语句的参数应该是 int、 short、 char 或者 byte。long,string 都不能作用于swtich。
考无忧小编tips:
只要一直走下去,一直坚持复习以上的二级Java练习题,蓦然回首,你会发现,坚持的每一处,都是曾经想要放弃时以为到达不了的地方!
文章推荐:
2019年全国计算机等级考试题库“二级MS Office 高级应用考试大纲”
全国计算机等级考试报考成功后可以退费吗?(内附计算机等级考试题库)
温馨提示:
考试想拿高分吗?更多计算机等级考试题库二级ms office试题请点击查看>>>二级ms office
想要了解更多的计算机等级考试题库请点击下载>>>计算机等级考试题库
想知道更多关于计算机等级考试题库的近期资讯吗?点击进入>>>计算机等级考试题库资讯