java复习题含答案.docx
《java复习题含答案.docx》由会员分享,可在线阅读,更多相关《java复习题含答案.docx(13页珍藏版)》请在冰豆网上搜索。
![java复习题含答案.docx](https://file1.bdocx.com/fileroot1/2023-1/1/c662f4a0-efc4-44d6-a191-1f75346f1395/c662f4a0-efc4-44d6-a191-1f75346f13951.gif)
java复习题含答案
填空题
1.Java是从(B)语言改进重新设计。
A.AdaB.C++C.PasacaD.BASIC
2.执行语句inti=1,j=++i;后i与j的值分别为(D)。
A.1与1B.2与1C.1与2D.2与2
3.每Java语言具有许多优点和特点,(B)反映了Java程序并行机制的特点。
A.安全性B.多线性C.跨平台D.可移植
4.下列关于构造方法的叙述中,错误的是(C)
A.Java语言规定构造方法名与类名必须相同
B.Java语言规定构造方法没有返回值,但不用void声明
C.Java语言规定构造方法不可以重载
D.Java语言规定构造方法只能通过new自动调用
5.下列哪个类的声明是正确的?
(D)
A.abstractfinalclassHI{}(final代表常量,但是抽象类不能实例化)
B.abstractprivatemove(){}(这是定义方法的)
C.protectedprivatenumber;(不是定义类,且修饰符重复)
D.publicabstractclassCar{}
6.Javaapplication中的主类需包含main方法,main方法的返回类型是(D)。
A.intB.floatC.doubleD.void
7.在调用方法时,若要使方法改变实参的值,可以(B)。
A.用基本数据类型作为参数
B.用对象作为参数
C.A和B都对
D.A和B都不对
8.下列关于for循环和while循环的说法中(B)是正确的。
A.while循环能实现的操作,for循环也都能实现
B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果
C.两种循环任何时候都可替换
D.两种循环结构中都必须有循环体,循环体不能为空
9.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(C)个比特位。
A.8B.16C.32D.64
10.Java中(C)。
A.一个子类可以有多个父类,一个父类也可以有多个子类(只可以单继承)
B.一个子类可以有多个父类,但一个父类只可以有一个子类
C.一个子类可以有一个父类,但一个父类可以有多个子类
D.上述说法都不对
11.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。
这种面向对象程序的特性称为(C)。
A.隐藏 B.覆盖C.重载 D.Java不支持此特性
12.Java类可以作为(C)
A.类型定义机制 B.数据封装机制
C.类型定义机制和数据封装机制 D.上述都不对
13.在创建对象时必须(C)
A.先声明对象,然后才能使用对象
B.先声明对象,为对象分配内存空间,然后才能使用对象
C.先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
D.上述说法都对
14.在创建对象时必须(C)。
A.先声明对象,然后才能使用对
B.先声明对象,为对象分配内存空间,然后才能使用对象
C.先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
D.以上说法都正确
15.下列说法中,正确的是:
(A)
A.类是变量和方法的集合体B.数组是无序数据的集合
C.抽象类可以实例化D.类成员数据必须是公有的
16.下列不可作为java语言标识符的是(D)
A.a1B.$1C._1D.11(不能以数字开头)
17.有一段java应用程序,它的主类名是a1,那么保存它的源文件名可以是(A)
A.a1.javaB.a1.classC.a1D.都对
18下列说法中,(A)是正确的。
A.类是变量和方法的集合体B.数组是无序数据的集合
C.抽象类可以实例化D.类成员数据必须是公有的
19.下列有关继承的说法中正确的是(B)。
A.子类能继承父类的所有方法和属性B.子类能继承父类的非私有方法和属性
C.子类只能继承父类public方法和属性
D.覆盖与重载是同一回事子类能继承父类的方法,而不是属性
20java.lang包的(B)方法比较两个对象是否相等,相等返回true。
A.toString()B.equals()C.compare()D.以上所有选项都不正确
21.一个Java程序运行从上到下的环境次序是(C)
A.操作系统、Java程序、JRE/JVM、硬件
B.JRE/JVM、Java程序、硬件、操作系统
C.Java程序、JRE/JVM、操作系统、硬件
D.Java程序、操作系统、JRE/JVM、硬件
22.下面选项中哪个关键字可以用来修饰接口中的变量和方法?
(A)
A.staticB.privateC.synchronizedD.protected
23.关于被私有保护访问控制符protected修饰的成员变量,以下说法正确的是?
(A)
A.可以被三种类所引用:
该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:
该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
24.下列有关继承的说法。
正确的是:
(B)
A.子类能继承父类的所有方法和属性;
B.子类能继承父类的非私有方法和属性
C.子类只能继承父类public方法和属性
D.子类能继承父类的方法,而不是属性。
25.为了区分类中重载的同名的不同的方法,要求:
(A)
A.采用不同的形式参数列表
B.返回值得数据类型不同(与返回值无关)
C.调用时用类名或者对象名做前缀
D.参数名不同(参数列表---参数个数,参数类型)
26.下面是有关子类继承父类构造函数的描述,其中正确的是:
(C)
A.创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。
(先调用父类的构造函数)
B.子类可以不调用父类的构造函数(子类的构造函数默能调用父类的无参数的构造函数)
C.子类必须通过super()关键字调用父类的构造函数
D.子类无法继承父类的构造函数。
(同上)
27.下列说法中,正确的是:
(A)
A.类是变量和方法的集合体
B.数组是无序数据的集合(类型(type)可以为Java中任意的数据类型,包括简单类型组合类型)
C.抽象类可以实例化
D.类成员数据必须是公有的
28.在使用interface声明一个接口时,只可以使用(D)修饰符修饰该接口。
A.privateB.protectedC.privateprotecteD.public
29.下面选项中关键字(A)可以用来修饰接口中的变量和方法。
A.staticB.private C.synchronizedD.protected
30.java中用来抛出异常的关键字是(C)。
A.tryB.catchC.throwD.finally
31.以下关于java异常说法正确的是(D)。
A.异常是一种对象B.一旦程序运行,异常将被创建
C.为了保证程序运行速度,要尽量避免异常控制D.以上说法都不对
32.java.lang包的(B)方法比较两个对象是否相等,相等返回true。
A.toString()B.equals()C.compare()D.以上所有选项都不正确
33.所有异常的父类是(B)。
A.Error B.Throwable C.RuntimeException D.Exception
34.下列(D)操作不会抛出异常。
A.除数为零 B.用负数索引访问数组C.打开不存在的文件 D.以上都会抛出异常
35.能单独和finally语句一起使用的块是(A)。
A.try B.throwsC.throwD.catch
36.Java是从(B)语言改进重新设计。
A.AdaB.C++C.PasacalD.BASIC
37.下列语句哪一个正确(B)
A.Java程序经编译后会产生machinecodeB.Java程序经编译后会产生bytecode
C.Java程序经编译后会产生DLLD.以上都不正确
38.下列运算符合法的是(A)
A.&&B.<>C.ifD.:
=
39.执行如下程序代码
a=0;c=0;
do{
--c;
a=a-1;
}while(a>0);
后,C的值是(C)
A.0B.1C.-1D.死循环
40.下列哪一种叙述是正确的(D)
A.abstract修饰符可修饰字段、方法和类
B.抽象方法的body部分必须用一对大括号{}包住
C.声明抽象方法,大括号可有可无
D.声明抽象方法不可写出大括号
41.下列语句正确的是(A)
A.形式参数可被视为localvariable
B.形式参数可被字段修饰符修饰
C.形式参数为方法被调用时,真正被传递的参数
D.形式参数不可以是对象
42.下列哪种说法是正确的(D)
A.实例方法可直接调用超类的实例方法
B.实例方法可直接调用超类的类方法
C.实例方法可直接调用其他类的实例方法
D.实例方法可直接调用本类的类方法
43.下列标识符合法的有(B)
A.newB.$UsdollarsC.1234D.car.taxi
44.下列说法正确的有(A)
A.数组是一种对象
B.数组属于一种原生类
C.intnumber=[]={31,23,33,43,35,63}
D.数组的大小可以任意改变
45.用来修饰interface的有(B)
A.privateB.publicC.protectedD.static
46.下列说法正确的是(A)
A.能被java.exe成功运行的javaclass文件必须有main()方法
B.J2SDK就是JavaAPI
C.Appletviewer.exe可利用jar选项运行.jar文件
D.能被Appletviewer成功运行的javaclass文件必须有main()方法
47.请问“abcd”instanceofObject返回的值是?
(B)
A.“abcd”B.trueC.falseD.String
48.下面说法正确的是:
(A)
A.如果源代码中有package语句,则该语句必须放在代码的第一行(不考虑注释和空格);
18如果源代码中有import语句,则该语句必须放在在代码的第一行(不考虑注释和空格)//先写包,再导入
C.如果源代码中有main()方法,则该方法必须被放在代码的第一行//先写包
D.如果某文件的源代码中定义了一个public的接口,接口名和文件名可以不同。
49下面有关方法覆盖说法不正确的是:
(B)
A.方法覆盖要求覆盖和被覆盖的方法有相同的名字,参数列以及返回值
B.方法覆盖要求覆盖和被覆盖的方法必须具有相同的访问权限;
C.覆盖的方法不能比被覆盖的方法抛出更多的异常
D.覆盖的方法一定不能是private的
50.下列哪种异常是检查型异常,需要在编写程序时声明(C)。
A.NullPointerExceptionB.ClassCastException
C.FileNotFoundExceptionD.IndexOutOfBoundsException
51.下述概念中不属于面向对象方法的是(D)。
A.对象、消息 B.继承、多态C.类、封装 D.过程调用
52.下面不是Java的保留字或关键字的是(B)。
A.efaultB.NULLC.throwsD.long
53.下面的赋值语句正确的是(D)。
A.shortmyshort=99s;B.Stringname=’Excellent’;
C.charc=17c;D.intz=015;
54.执行完以下代码int[] x=newint[10];后,以下哪项说明是正确的( A )。
A.x[9]为0 B.x[9]未定义C.x[10]为0D.x[0]为空
55.以下代码段执行后的输出结果为(C)。
intx=-3;floaty=10.0f;
System.out.println(y%x);
A.不能成功编译B.-1.0C.1.0D.-1
56.类与对象的关系是(A)。
A.类是对象的抽象B.类是对象的具体实例
C.对象是类的抽象D.对象是类的子类
57.下列关于构造方法的叙述中,错误的是( C )
A.Java语言规定构造方法名与类名必须相同
B.Java语言规定构造方法没有返回值,但不用void声明
C.Java语言规定构造方法不可以重载
D.Java语言规定构造方法只能通过new自动调用
58.关于super的说法正确的是(C)。
A.是指当前对象的内存地址B.是指当前对象的父类对象的内存地址
C.是指当前对象的父类D.可以用在main()方法中
59.关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C )
A.可以被三种类所引用:
该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B.可以被两种类访问和引用:
该类本身、该类的所有子类
C.只能被该类自身所访问和修改
D.只能被同一个包中的类访问
60.若在某一个类定义中定义有如下的方法:
finalvoidaFinalFunction();
则该方法属于(C)。
A.本地方法B.静态方法C.最终方法D.抽象方法
61.下列关于修饰符混用的说法,错误的是(D)
A.abstract不能与final并列修饰同一个类
B.abstract类中不可以有private的成员
C.abstract方法必须在abstract类中
D.static方法中能处理非static的属性
62.编译并运行下述程序段的结果是(B)。
publicclassTest{
publicstaticvoidmain(Stringargv[]){
int[]count=newint[4];
System.out.println(count[4]);}}
A.编译时错误B.运行时错误C.输出0D.输出null
63.在编写JavaApplet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(D)语句。
A.importjava.awt.*;B.importjava.applet.*;
C.importjava.io.*;D.importjava.awt.event.*;
64.内部类是在一个类内嵌套定义的类,其特点描述错误的是(C)。
A.只能在定义它的类或程序段中或表达式内匿名使用,外部使用时必须给出类的全名
B.可以使用它所在类的静态成员变量或实例成员变量,但不可以使用所在类中的局部变量
C.可以使用其他类的成员,而且可访问它所在类的成员
D.除static内部类之外,不能在类内声明static成员
65.关于以下程序段,正确的说法是(C)。
Strings1=“a”+“b”;
Strings2=newString(s1);
if(s1==s2)
System.out.println(“==issucceeded”);
if(s1.equals(s2))
System.out.println(“.equals()issucceeded”);
A.行4与行6都将执行B.行4执行,行6不执行
C.行6执行,行4不执行D.行4、行6都不执行
填空题:
1.在Java语言中,简单数据类型包括:
整数类型、浮点类型、字符类型和布尔类型。
2.一般Java程序的类体由两部分组成:
一部分是属性,另一部分是方法。
3.this指当前对象,super指父对象。
4.在Java中,能实现多重继承效果的方式是 实现多个接口。
5.类__是Java程序中基本的结构单位。
6.Java是面向对象语言,类是客观事物的抽象,而对象是类的实例。
7布尔型常量有两个值,它们分别true__,_false_。
8.Java中类成员的限定词有以下几种:
private,public,protected和缺省。
其中,_public的限定的范围最大。
_private__的限定只能内部访问。
Java中成员变量用final修饰符修饰的是常量。
9.用 static 修饰的变量叫静态变量,它可以通过类的对象和类名两种方式来访问。
程序阅读题
1.阅读以下程序,请写出输出结果
importjava.lang.*;
publicclassStrCompare
{
publicstaticvoidmain(String[]args)
{
Stringstr1="Hello,Java!
",
Stringstr2="hello,java!
";
System.out.println(str1.equals(str2));System.out.println(str1.equalsIgnoreCase(str2));}}
输出运行结果:
False
True
2.阅读以下程序,请写出输出c.x=2
publicclasswithstaticdata{
staticintx;
inty;
publicstaticvoidmain(String[]args){
withstaticdataa=newwithstaticdata();
a.x=1;
System.out.println(a.x);withstaticdatab=newwithstaticdata();
b.x=2;
System.out.println(b.x);System.out.println(a.x);withstaticdatac=newwithstaticdata();
System.out.println(
"c.x="+c.x);}
}
3.现有一个类定义如下,请回答问题:
classEmployee
{
Stringname;
intage;
doublewage;
staticintNo=0;
Employee(Stringa1,inta2,doublea3)
{
name=a1;age=a2;wage=a3;
No++;
}
}
在使用该类时,已使用下面语句生成了该类的对象:
Employeee1,e2;
e1=newEmployee("王劲",26,6300);
e2=newEmployee("张山",30,3800);
问题:
(1)e2.name,e2.age,e2.wage的值各是什么?
(3分)
张山,30,3800
(2)生成对象e1、e2后,e1.No值为多少?
(3分)
e1.No=2
4.找出下面程序中存在的错误。
publicabstractclassClosedFigure
{protectedabstractClosedFigure();}【答】编译错,构造方法不能被声明为抽象方法。
(6分)
5.阅读程序,写成运行结果。
(6分,每空2分)
publicclassSum{
publicstaticvoidmain(String[]args){
intj=10;
System.out.println("jis:
"+j);
calculate(j);
System.out.println("Atlast,jis:
"+j);}
staticvoidcalculate(intj){
for(inti=0;i<10;i++)
j++;
System.out.println("jincalculate()is:
"+j);}}
输出结果为:
jis:
jincalculate()is:
Atlastjis:
6.一个JavaApplication源程序文件名JavaApplication.java,如果使用Sun公司的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该顺序执行哪两个命令?
javacJavaApplication.java(3分)
javaJavaApplication(3分)
8.阅读程序,其运行结果为55。
(6分)
publicclassWhileDemo
{publicstaticvoidmain(String[]args)
{intx=1;
intsum=0;
while(x<=10)
{sum+=x;
x++;}
System.out.println(sum);}}
9.阅读程序,写出程序错误。
classPerson
{privateStringname;
privateintage;
publicvoidtell(){System.out.println("姓名:
"+name+",年龄:
"+age);}}
publicclassEncDemo02
{publicstaticvoidmain(Stringargs[])
{Personper=newPerson();
per.name="张三";
per.age=-30;
per.tell();}}
【答】编译错(2分),不能对私有属性name和age进行赋值。
(4分)
10.阅读下面程序,按要求写成java语句标注(每空1分,6分)。
interfaceA
{
publicStringAUTHOR="李兴华";//定义全局常量
publicvoidprint();//定义抽象方法
publicStringgetInf