JAVA试题及答案精致DOCWord下载.docx
《JAVA试题及答案精致DOCWord下载.docx》由会员分享,可在线阅读,更多相关《JAVA试题及答案精致DOCWord下载.docx(23页珍藏版)》请在冰豆网上搜索。
);
D、count==i;
9、运算符优先级别排序正确的是(A)
A、由高向低分别是:
()、!
、算术运算符、关系运算符、逻辑运算符、赋值运算符;
B、由高向低分别是:
()、关系运算符、算术运算符、赋值运算符、!
、逻辑运算符;
C、由高向低分别是:
()、算术运算符、逻辑运算符、关系运算符、!
、赋值运算符;
D、由高向低分别是:
、关系运算符、赋值运算符、算术运算符、逻辑运算符;
10、以下程序的运行结果是:
(B)
publicclassIncrement{
publicstaticvoidmain(Stringargs[]){
inta;
a=6;
}
}
A.666
B.667
C.677
D.676
11、下列值不为true的表达式有(C)。
A、"
john"
=="
B、"
.equals("
)
C、"
="
D、"
.equals(newString("
))
12、下列输出结果是(C)
inta=0;
while(a<
5){
switch(a){
case0:
case3:
a=a+2;
case1:
case2:
a=a+3;
default:
a=a+5;
}
(a);
A、0
B、5
C、10
D、其他
13、下列代码输出结果是(B)
inti=10;
while(i>
0){
i=i+1;
if(i==10){
break;
A.while循环执行10次
B.死循环
C.循环一次都不执行
D.循环执行一次
14、下面有关for循环的描述正确的是(A)
A、for循环体语句中,可以包含多条语句,但要用大括号括起来
B、for循环只能用于循环次数已经确定的情况
C、在for循环中,不能使用break语句跳出循环
D、for循环是先执行循环体语句,后进行条件判断
15、下列(AC)属于引用数据类型(选择两项)
A、String
B、char
C、用户自定义的Student类类型
D、int
16、对象的特征在类中表示为变量,称为类的(B)。
A、对象
B、属性
C、方法
D、数据类型
17、在java中下列关于自动类型转换说法正确的是(A)
A、基本数据类型和String相加结果一定是字符串型
B、char类型和int类型相加结果一定是字符
C、double类型可以自动转换为int
D、char+int+double+"
"
结果一定是double;
18、关于类的描叙正确的是(BD)(选择两项)
A、在类中定义的变量称为类的成员变量,在别的类中可以直接使用
B、局部变量的作用范围仅仅在定义它的方法内,或者是在定义它的控制流块中
C、使用别的类的方法仅仅需要引用方法的名字即可
D、一个类的方法使用该类的另一个方法时可以直接引用方法名
19、下列关于字符串的描叙中错误的是(BC)(选择两项)
A、字符串是对象
B、String对象存储字符串的效率比StringBuffer高
C、可以使用StringBuffersb="
这里是字符串"
声明并初始化StringBuffer对象sb
D、String类提供了许多用来操作字符串的方法:
连接,提取,查询等
20、以下(D)代码,能够对数组正确初始化(或者是默认初始化)。
A、int[]a;
B、a={1,2,3,4,5};
C、int[]a=newint[5]{1,2,3,4,5};
D、int[]a=newint[5];
21、score是一个整数数组,有五个元素,已经正确初始化并赋值,仔细阅读下面代码,程序运行结果是(B)
temp=score[0];
for(intindex=1;
index<
index++){
if(score[index]<
temp){
temp=score[index];
A.求最大数
B.求最小数
C.找到数组最后一个元素
D.编译出错
22、下面关于数组的说法中,错误的是(AB)(选择两项)
A、在类中声明一个整数数组作为成员变量,如果没有给它赋值,数值元素值为空
B、数组可以在内存空间连续存储任意一组数据
C、数组必须先声明,然后才能使用
D、数组本身是一个对象
23、在Java中,关于构造方法,下列说法错误的是(C)
A、构造方法的名称必须与类名相同
B、构造方法可以带参数
C、构造方法不可以重载
D、构造方法绝对不能有返回值
24、执行下面代码结果(D)
for(inti=0;
){
这是"
+i);
break;
A、语法错误,缺少表达式2和表达式3
B、死循环
C、程序什么都不输出
D、输出:
这是0
25、下面代码输出结果是(B)。
inti=0,s=0;
do{
if(i%2==0){
i++;
continue;
i++;
s=s+i;
}while(i<
7);
A、16
B、12
C、28
D、21
26、下面(C)不是String类提供的合法的方法。
A、equals(String)
B、trim()
C、append()
D、indexOf()
27、在JAVA中,以下(C)类的对象以键-值的方式存储对象
A、
B、java.util.ArrayList
C、
D、
28、给定如下所示的JAVA代码,则运行时,会产生(B)类型的异常
Strings=null;
s.concat("
abc"
A.ArithmeticException
B.NullPointerException
C.IOException
D.ClassNotFoundException
29、给定java代码如下所示,在A处新增下列(AC)方法,是对cal方法的重载(选择两项)
publicclassTest
{
publicvoidcal(intx,inty,intz)
//A
A.publicintcal(intx,inty,floatz){return0;
B.publicintcal(intx,inty,intz){return0;
C.publicvoidcal(intx,intz){}
D.publicviodcal(intz,inty,intx){}
30、给定如下Java程序代码片段,编译运行这段代码,结果是(B)。
map=new
map.put("
name"
null);
map.put("
"
Jack"
A.null
B.Jack
C.nullJack
D.运行时出现异常
(key为null或value为null,或者两者都为null)
31、给定以下JAVA代码,这段代码编译运行后输出的结果是(C)
publicclassTest{
publicstaticintaMethod(inti)throwsException{
try{
returni/10;
}catch(Exceptionex){
thrownewException("
exceptioninaaMothod"
}finally{
}
publicstaticvoidmain(String[]args){
try{
aMethod(0);
}catch(Exceptionex){
inmain"
}
A、finallyexceptioninmainfinished
B、exceptioninmainfinally
C、finallyfinished
D、finallyexceptioninmainfinished
32、在Java中,下面对于构造函数的描述错误的是(BC)(选择两项)
A、类不一定要显式定义构造函数
B、构造函数的返回类型是void
C、如果构造函数不带任何参数,那么构造函数的名称和类名可以不同
D、一个类可以定义多个构造函数
33、在Java语言中,下列关于类的继承的描述,正确的是(B)。
A、一个类可以继承多个父类
B、一个类可以具有多个子类
C、子类可以使用父类的所有方法
D、子类一定比父类有更多的成员方法
34、下列选项中关于Java中super关键字的说法正确的是(A)。
A、super关键字是在子类对象内部指代其父类对象的引用
B、super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C、子类通过super关键字只能调用父类的方法,而不能调用父类的属性
D、子类通过super关键字只能调用父类的属性,而不能调用父类的方法
35、在Java接口中,下列选项中有效的方法声明是(AB)。
(选择二项)
A、publicvoidaMethod();
B、voidaMethod();
C、protectedvoidaMethod();
D、privatevoidaMethod();
36、在JAVA的异常处理模型中,能单独和finally语句一起使用的块是(A)。
A、try
B、catch
C、throw
D、throws
37、分析如下Java代码,编译运行后将输出(B)。
publicclassTest{
publicTest(){}
staticvoidprint(ArrayListal){
al.add
(2);
al=newArrayList();
al.add(3);
al.add(4);
publicstaticvoidmain(String[]args){
Testtest=newTest();
ArrayListal=newArrayList();
al.add
(1);
print(al);
A、1
B、2
C、3
D、4
38、在JAVA中,Object类是所有类的父亲,用户自定义类默认扩展自Object类,下列选项中的(D)方法不属于Object类的方法。
A、equals(Objectobj)
B、getClass()
C、toString()
D、trim()
39、下列选项中关于Java中封装的说法错误的是(D)。
A、封装就是将属性私有化,提供共有的方法访问私有属性
B、属性的访问方法包括setter方法和getter方法
C、setter方法用于赋值,getter方法用于取值
D、包含属性的类都必须封装属性,否则无法通过编译
40、Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是(A)
A、C不仅继承了B中的成员,同样也继承了A中的成员
B、C只继承了B中的成员
C、C只继承了A中的成员
D、C不能继承A或B中的成员
41、分析选项中关于Java中this关键字的说法正确的是(A)
A、this关键字是在对象内部指代自身的引用
B、this关键字可以在类中的任何位置使用
C、this关键字和类关联,而不是和特定的对象关联
D、同一个类的不同对象共用一个this
42、在JAVA中,LinkedList类和ArrayList类同属于集合框架类,下列(D)选项中的方法是LinkedList类有而ArrayList类没有的。
A、add(Objecto)
B、add(intindex,Objecto)
C、remove(Objecto)
D、removeLast()
LinkedList有removeFirst()和removeLast(),ArrayList没有。
43、在JAVA中ArrayList类实现了可变大小的数组,便于遍历元素和随机访问元素,已知获得了ArrayList类的对象bookTypeList,则下列语句中能够实现判断列表中是否存在字符串“小说”的是(C)。
A、bookTypeList.add("
小说"
B、bookTypeList.get("
C、bookTypeList.contains("
D、bookTypeList.remove("
44、给定如下Java代码,其中第(无答案)行代码有错误。
A、4
C、6
D、7
E、8
F、9
45、以下关于布局的说法,错误的是(B)
A、BorderLayout是边框布局,它是窗体的默认布局
B、null是空布局,它是面板的默认布局
C、FlowLayout是流布局,这种布局将其中的组件按照加入的先后顺序从左向右排列,一行排满之后就转到下一行继续从左至右排列
D、GridLayout是网格布局,它以矩形网格形式对容器的组件进行布置。
容器被分成大小相等的矩形,一个矩形中放置一个组件
面板的默认布局管理器是FlowLayout布局管理器。
46、以下用于创建容器对象的类是(AC)(选择两项)
A、Frame
B、Checkbox
C、Panel
D、TextField
47、以下关于抽象类和接口的说法错误的是(E)
A、抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。
但是一个类却可以实现多个接口。
B、在抽象类中可以没有抽象方法
C、实现抽象类和接口的类必须实现其中的所有方法,除非它也是抽象类。
接口中的方法都不能被实现
D、接口中定义的变量默认是publicstaticfinal型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
E、接口中的方法都必须加上public关键字。
(当一个方法为抽象方法时,意味着这个方法应该被子类的方法所重写,否则其子类的该方法仍然是abstract的,这个子类由于继承父类,拥有抽象方法,因此它也是抽象类,即声明为abstract。
abstract抽象类不能用new实例化对象,abstract方法只允许声明不能实现。
如果一个类中含有abstract方法,那么这个类必须用abstract来修饰,当然abstract类也可以没有abstract方法。
48、关于面向对象的说法正确的是(A)
A、类可以让我们用程序模拟现实世界中的实体
B、有多少个实体就要创建多少个类
C、对象的行为和属性被封装在类中,外界通过调用类的方法来获得,但是要知道类的内部是如何实现
D、现实世界中的某些实体不能用类来描述
一、单项选择题
1.下面(B)是合法的Java标识符。
A、#_poundB、_underscoreC、5InterstateD、class
2.下面(D)赋值语句不会出现编译警告或错误。
A、floatf=1.3;
B、charc="
a"
C、byteb=257;
D、inti=10;
3.编译一个定义了两个类和三个方法的Java源程序文件,总共会产生(D)个字节码文件。
A、5个字节码文件,以“.java”为扩展名B、2个字节码文件,以“.java”为扩展名
C、5个字节码文件,以“.class”为扩展名D、2个字节码文件,以“.class”为扩展名
4.有关类的说法,正确的是(B)。
A、类具有封装性,所以类的数据是不能被访问的
B、类具有封装性,但可以通过类的公共接口访问类中的数据
C、声明一个类时,必须使用public修饰符
D、每个类中必须有main方法,否则程序无法运行
5.执行完下面程序片段后,(B)的结论是正确的。
inta,b,c;
a=1;
b=2;
c=(a+b>
3?
a++:
b++);
A、a的值是2,b的值是3B、a的值是1,b的值是3
C、a的值是1,b的值是2D、c的值是false
6.将类的成员的访问权限设置为默认的,则该成员能被(A)。
A、同一包中的类访问
B、其他包中的类访问
C、所有的类访问
D、所有的类的子类访问
7.下面的方法重载,正确的是(C)。
A、intfun(inta,floatb){}B、floatfun(inta,floatb){}
floatfun(inta,floatb){}floatfun(intx,floaty){}
C、floatfun(floata){}D、floatfun1(inta,floatb){}
floatfun(floata,floatb){}floatfun2(inta,floatb){}
8.下面关于继承的说法,正确的是(D)。
A、超类的对象就是子类的对象B、一个类可以有几个超类
C、一个类只能有一个子类D、一个类只能有一个超类
9.下面关于多态性的说法,正确的是(C)。
A、一个类中不能有同名的方法
B、子类中不能有和父类中同名的方法
C、子类中可以有和父类中同名且参数相同的方法
D、多态性就是方法的名字可以一样,但返回的类型必须不一样
10.关于下面程序,(A)的结论是正确的。
classJ_SubClassextendsJ_Test{}
publicclassJ_Test{
J_Test(inti){
J_SubClassa=newJ_SubClass();
A、不能通过编译,因为类J_Test没有定义无参数的构造方法
B、不能通过编译,因为类J_SubClass没有定义无参数的构造方法
C、不能通过编译,因为没有实现J_SubClass(inti)的构造方法
D、可以成功通过编译
11.关于下面程序片段,(B)的结论是正确的。
Stringa="
Java"
Stringb="
Stringx="
Ja"
Stringy="
va"
Stringc=x+y;
A、a和b指向同一个实例对象,a和c指向同一个实例对象
B、a和b指向同一个实例对象,a和c不指向同一个实例对象
C、a和b不指向同一个实例对象,a和c指向同一个实例对象
D、a和b不指向同一个实例对象,a和c不指向同一个实例对象
12.假设下面的程序代码都放在MyClass.java文件中,(D)程序代码能够编译通过。
A、importjava.awt.*;
B、packagemypackage;
packagemypackage;
importjava.awt.*;
classMyClass{}publicclassmyClass{}
C、intm;
D、/*Thisisacomment*/
classMyClass{}publicclassMyClass{}
13.当需要在文件中写入字符而不是字节时,在下面的类中最好选用(B)类。
14.关于事件监听,正确的是(C)。
A、一个事件监听器只能监听一个组件
B、一个事件监听器只能监听处理一种事件
C、一个组件可以注册多个事件监听器,一个事件监听器也可以注册到多个组件上
D、一个组件只能引发一种事件
二、填空题
1.Class类是由Java编译器自动生成的,它伴随每个类。
2.任何一个Java程序都默认引入一个包,这个包的名字是java.lang。
3.在Java语言中,有一个类是所有类或接口的父类,这个类的名称是。
4.在Java中所实现的二维数组,实际上是由一维数组构成的数组。
5.在Java中,字符串是作为对象出现的。
6.接口可以看作是仅容纳抽象方法、常量,而又不能直接生成对象的特殊抽象类。
7.FileInputStream是字节流,BufferedWriter是字符流,ObjectOutputStream是对象流。
8.在Java中,组件不能独立地显示出来,必须将组件放在一定的容器中才能显示。
9.Applet是能够嵌入到HTML格式中的文件,并能够在浏览器中运行的Java类。
三、判断题
1、Java程序一般应当含有main方法,因为它是所有Java程序执行的入口。
(×
2、Java语言的标识符是不区分大小写的。
3、Java语言为所有的Java程序自动导入包“java.lang”,因此Java程序可以直接用“java.lang”中的类和接口。
位于类继承关系层次结构树的根部的类Object就是在包“java.lang”中的类。
(√)
4、有时候为了避免引起混淆,构造方法的方法名可以不与所属类名同名。
5、Java语言规定,任何一个子类的构造方法都必须调用其父类的构造方法(包括隐式调用),并且调用父类构造方法的语句必须是子类构造方法的第一条语句。
6、Java语言对内存的释放是采用垃圾回收机制。
Java虚拟机自动判断并收集“垃圾”,但一般不会立即释放它们的存储空间。
(java中垃圾回收机制的作用是对程序中无任何引用的对象占据的内存空间进行释放的一种释放内存的方式。
java中垃圾回收机制有几个明显的特点。
1.垃圾回收是由虚拟机即JVM执行;
2.系统空闲时执行;
3.释放的一定是不再被引用的对象;
4.回收方法gc()方法,虽然可以主动调用,但是不确定会立即执行。
7、在编译Java源程序时,计算机根本不会去识别各个变量名的具体含义,因此命名规范对编写Java程序而言不是必要的,而且有可能会降低编写Java源程序的效率。
1.作为Java应用程序入口的main方法,其声明格式可以是(A)。
A、publicstaticvoidmain(String[]args)
B、publicstaticintmain(String[]args)
C、publicvoidmain(String[]args)
D、publicintmai