JAVA期末复习和答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java期末复习题
一、选择题:
1、所谓数据封装就就是将一组数据与与这组数据有关操作组装在一起,形成一个实体,这实体也就就是 (B)
A、类
B、对象
C、函数体
D、数据块
2、定义一个不能被继承得名为Abc得类得正确方法就是(E)
A.class Abc{}
B.native class Abc{}
C.abstract final class Abc{}
D.class Abc{final;}
E.final class Abc{}
3、若要生成ClassA类得一个对象a,以下书写正确得就是(A)
A、ClassA a=new ClassA();
B、ClassA a=new Class();
C、a=new ClassA();
D、ClassA a=ClassA();
4、类得构造函数被自动调用执行得情况就是在定义该类得(c)
A、成员函数时
B、数据成员时
C、对象时
D、构造函数时
5、编译运行下面程序时有何种结果?请选择一个正确得答案(A)
class Test{
public static void main(){
System、out、println("hello");
}
}
A.程序不能编译,因为main()方法定义不正确。
B.程序能编译,但不能运行,因为class未声明为public得。
C.程序能无错地编译并运行,但运行时将产生异常。
D.程序运行时显示“hello”。
6、关于抽象方法得说法正确得一项就是(A)
A、可以有方法体
B、可以出现在非抽象类中
C、抽象方法就是没有方法体得方法
D、抽象类中得方法都就是抽象方法
7、假定AB为一个类,则执行AB x=new AB( );语句时将自动调用该类得(B)
A.有形参构造函数
B.无形参构造函数
C.其她成员函数
D.重载函数
8、编译并运行如下程序后,结果就是什么?请在给出得选项中选择出正确得答案(E)
class Array{
public static void main(String[] args){
int length=100;
int[] d=new int[length];
for(int index=0;index<length;index++)
System、out、println(d[index]);
}
}
A.因为int[]数组声明不正确,程序不能被编译。
B.程序被编译,但在运行时将抛出一个ArrayIndexOutOfBoundsException异常。
C.程序将显示数字0到99,然后将抛出一个ArrayIndexOutOfBoundsException异常。
D.程序被编译,但println()方法将抛出一个NoSuchMethodException异常。
E.程序正常运行,并显示100个0。
9、下列关于接口得说法正确得就是哪一项(D)
A、接口与抽象类就是相通得概念
B、实现一个接口必须实现接口得所有方法
C、接口之间不能有继承关系
D、一个类可实现多个接口
10、实现运行时得多态性用(A)
A.重载方法
B.构造方法
C.非重载方
法 D.抽象方法
11、哪一种布局管理器就是从上到下、从左到右安排组件,当移动到下一行时就是居中得(B)
A.BorderLayout
B.FlowLayout
C.GridLayout
D.CardLayout
E.GridBagLayout
12、下列对继承得说法正确得一项就是(B)
A、子类能继承父类得所有方法与状态
B、子类能继承父类得非私有方法与状态
C、子类只能继承父类得public方法与状态
D、子类只能继承父类得方法,而不能继承状态
13、 Java语言中,如果您有下面得类定义:
abstract class Shape {
abstract void draw(); }
class Square extends Shape{ }
如果您试图编译上面得代码会发生(B)。
A. 一切成功编译
B. Shape可以编译Square不能编译
C. Square可以编译Shape不能编译
D. Shape、Square都不能编译
14、下面代码就是做什么得(E)
JTextField tf=new JTextField(30);
A.代码不合法。
在JTextField中,没有这样得构造方法
B.创建了一个30行得JTextField对象,但没进行初始化,它就是空得。
C.创建了一个30列得JTextField对象,但没进行初始化,它就是空得。
D.创建一个有30行文本得JTextField对象。
E.创建一个有30列文本得JTextField对象。
15、构造方法何时被调用(B)
A、类定义时
B、创建对象
C、调用方法时
D、使用对象得变量时
16、 int[] my_Array;
my_Array=new int[5];
for(int count=0;count <=5;count++)
System、out、println(my_Array[count]);
以上Java代码运行得结果就是(d)。
A. 将1,2,3,4,5输出到屏幕
B. 将0,1,2,3,4输出到屏幕
C.将0,1,2,3,4,5输出到屏幕
D.将出现运行时异常
17、给出如下代码:
class Test{
private int m;
public static void fun() {
// some code、、、
}
}
如何使成员变量m 被函数fun()直接访问?(C)
A、将private int m 改为protected int m
B、将private int m 改为 public int m
C、将private int m 改为 static int m
D、将private int m 改为 int m
18、下面对形参得说法中哪一项就是正确得(C)
A.必须有两个
B.至少有一个
C.可以没有
D.至少有两个
19、在JAVA编程中,Java编译器会将java程序转换为(A)。
A. 字节码
B.可执行代码
C.机器代码
D.以上所有选项都不正
确
20、下面得表达式中正确得就是( b )
A、String s=″您好″;int i=3;s+=i;
B、String s=″您好″;int i=3;if(i==s){s+=i};
C、String s=″您好″;int i=3;s-=i;
D、String s=″您好″;int i=3;s=i+;
21、下列说法中正确得一项就是(D)
A.不需要定义类就能创建对象
B.对象中必须有简单变量
C.属性必须就是简单变量
D.属性可以就是简单变量,也可以就是一个对象
22、在JAVA编程中,以下(B)命令用来执行java类文件。
A. Javac
B.java
C.appletviewer
D.以上所有选项都不正确
23、下列语句片段
int a=10,b=4,c=20,d=6;
System、out、println(a++*b+c*--d);
得结果为(C)
A、144
B、28
C、140
D、不能执行
24、下列说法哪一个就是正确得(A)
A.类就是变量与方法得集合体
B.数组就是无序数据得集合
C.抽象类可以实例化
D.类成员数据必须就是共有得
25、 JAVA中,使用(C)修饰符时,一个类能被同一包或不同包中得其她类访问。
A.
private B.protected C.public D. final
26、下面哪个修饰符修饰得方法只能被本类中得其她方法使用(C)
A、protected
B、static
C、private
D、public
27、关于对象成员占用内存得说法哪一项就是正确(B)
A.同一个类得对象公用一段内存
B.同一个类得对象使用不同得内存段,但静态成员共享相同得内存空间
C.对象得方法不占用内存
D.以上说法都不对
28、 JAVA中,类Worker就是类Person得子类,Worker得构造方法中有一句“super()”,该语句(C)。
A.调用类Worker中定义得super( )方法
B. 调用类Person中定义得super( )方法
C. 调用类Person得构造函数
D. 语法错误
29、当方法遇到异常又不知如何处理时,下列哪种说法就是正确得(B)
A、捕获异常
B、抛出异常
C、声明异常
D、嵌套异常
30、执行下面得赋值语句后,a得值为(B)
A=Float、valueOf(“12、34”)、floatValue();
A.a=”12、34”
B.a=12、34
C.a=1234
D.a=12
31、JAVA语言中,下面关于类得描述正确得就是(B)。
A.一个子类可以有多个父类
B. 一个父类可以有多个子类
C.子类可以使用父类得所有
D. 子类一定比父类有更多得成员方法
32、下列符号中不能作为Java标识符得就是(C)
A.条件
B.xyz
C.45six
D.ω
33、下列关于一个二维得整型数组得定义,不正确得就是(A)
A.int a[10][10]=new int[][];
B.int[]a[]=new int[10][10];
C.int[][]a=new int[10][10];
D.int a[][]=new int[10][10];
34、JAVA就是一种完全面向(B)得语言。
A. 过程
B.对象
C.组件
D.服务
35、下列哪些不就是Java得关键字(B)
A.extends
B.open
C.class
D.if
E.import
36、定义一个表示20个值为null得字符串数组,下面选项正确得就是(D)。
A、String[] a;
B、String a[];
C、char a[20][];
D、String a[]=new String[20];
37、JAVA中,实现继承得关键字就是(C)。
A.
Public B.class C.extends D.implements
38、在Java语言中,整型常数123占用得存储字节数就是(C)
A.1
B.2
C.4
D.8
39、设x=1、y=2与z=3,者表达式y+=z--/++x得值就是(b)
A.3
B.3、5
C.4
D.4、5
40、 application中得主类需包含main方法,main方法得返回类型就是(D)。
A.int
B.float
C.double
D.void
41、在Java语言中,'\u0041'在内存中占用得字节数就是(D)
A.2
B.4
C.6
D.8
42、应用程序中得main()方法返回得类型就是(A)
A.void
B.String
C.char
D.int
43、下程序片段,不能插入到第1行得就是(b)。
1、
2、 class A{
3、 //do sth
4、 }
A.public class MainClass{ }
B.int x=1;
C.class ANotherClass{ }
D.import java、util、*;
44、下面可作为public void aMethod( ){、、、}重载方法得就是(C)。
A.void aMethod( ){、、、}
B.public int aMethod (){、、、}
C.public void aMethod ( ){、、、}
D.public int aMethod ( int m){、、、}
45、下面哪个语句会产生编译错误(C)
A、float F=4096、0F;
B、double D=4096、0;
C、byte B=4096;
D、char C=4096;
46、假设A类有如下定义:
class A
{ int i;
static String s;
void method1() { }
static void method2() { }
}
设a就是A类得一个实例,下列语句调用错误得就是(C)。
A、System、out、println(a、i); B.a、method1( );
C.A、method1( );
D.A、method2( )
47、在Java语言中,实型常数45、67在内存中占用得字节数就是(C)
A.1
B.2
C.4
D.8
48、下列关于实型变量书写正确得就是(C)
A.E3
B.2e0、3
C.1、2e3
D.1、2E0、3
49、下列数据就是常量(A)
A、null
B、name
C、E
D、ff
50、选出所有不合法得表达式(D)
A.(true & true)
B.(4!=5 & 5==6)
C.(int myInt=0>3)
D.float myFloat=40、0;
51、在Java语言中,'\u0041'在内存中占用得字节数就是(D)
A.15
B.2
C.4
D.8
52、不允许作为类及类成员得访问控制符得就是(B)。
A、 public
B、 private
C、 static
D、
protected
53、设有代码:
Boolean b1=new Boolean(true);
Boolean b2=new Boolean(true);
下面表达式就是返回true得合法表达式(B)
A.b1==b2
B.b1、equals(b2)
C.b1 & b2
D.b1| b2
54、现有两个类M、N,以下描述中表示N继承自M得就是(D)。
A、class M extends N
B、 class N implements M
C、class M implements N
D、 class N extends M
55、下列哪个选项就是合法标识符(A)
A._book
B.5files
C.+static
D.-3、1415926
56、下列与其它选项不等得就是(D)
A.2
B.0xF
C.015
D.0XF
57、为AB类得一个无形式参数无返回值得方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头得形式为(A)。
A、 static void method( )
B、 public void m ethod( )
C、 final void method( )
D、 abstract void method( )
58、下列类定义中哪些就是合法得抽象类定义(d)
A.class Animal{abstract void growl();}
B.abstract Animal{abstract void growl();}
C.class abstract Animal{abstract void growl();}
D.abstract class Animal{ Abstract void growl();}
E.abstract class Animal{abstract void growl(){System、out、println(“growl”);}}
59、下列选项不属于Java保留字得就是( A )
A.null
B.false
C.sizeof
D.true
60、编译Java Application 源程序文件将产生相应得字节码文件,这些字节码文件得扩展名为(B)。
A、、java
B、、class
C、、html
D、、exe
二、填空题:
1、一个Java得图形用户界面得最基本组成部分就是组件。
2、登录Sun公司网站://、java、sun、,能够瞧到有关J2SE、J2EE与J2ME得信息。
无论哪种Java运行平台,都包含了相应得解释器,解释器负责将字节码文件加载到内存,然后采用解释方式执行字节码文件。
3、在Java语言得简单数据类型中,占存储空间最少得数据类型byte、
4、局部变量只能在声明它得方法或者语句块中使用,而且使用之前必须进行赋值。
5、 Java语言共有三种注释,分别就是//,/*…*/,/**…*/。
6、Java程序必须经过编译,再经过虚拟机才能执行。
通过编译器,Java语言源程序转换成与平台无关得中间编码,Java称之为字节码。
字节码再经过解释器得解释,转换为机器码,便可
在计算机上运行。
任何可以运行Java字节码得程序都可以瞧成就是 ,如浏览器与Java得开发工具等都可以瞧成就是JVM得一部分。
7、在Java语言中,如果赋值运算符=两边得操作数类型不一致,并且左边操作数类型得优先级低于右边操作数类型得优先级,则需要对右边操作数进行强制转换。
8、编译、java文件使用得命令就是javac。
9、抽象类体中,可以包含抽象方法,也可以不包含抽象方法,但类体包含抽象方法得类必须要声明为抽象类。
抽象类不能实例化,即使抽象类中没有声明抽象方法,也不能实例化。
10、画线得语句应该修改为static int var=100;
,程序才能通过编译运行
class MyClass{
int var=100;
static int getVal(){
return var;
}
}
11、 83 % 9 得值就是2。
12、构造方法仅用于实例化对象,对成员变量进行初始化;成员方法用于对变量进行多种操作。
子类对父类得私有成员没有访问权限,子类对父类得成员变量与成员方法具有访问权限。
子类虽然继承了父类得成员变量与成员方法,但并不就是对父类所有成员变量与成员方法都具有访问权限,即并不就是在自己声明得方法中能够访问父类所有成员变量或成员方法。
13、Java中采用接口降低程序得复杂性,提高编程效率,只要就是因为它使代码可重用。
14、接口可以瞧成就是仅容纳抽象方法、常量,而又不能直接生成对象得特殊抽象类。
15、 BorderLayout布局类得所在类包就是java、awt。
16、在Java中,所有得类都就是通过直接或间接地继承java、lang、Object得到得。
17、监听按扭被按下事件得监听器就是ActionListener。
18、在求解运算速度要求不高,但就是要求程序简洁得问题时,通常采用结构。
19、new就是实例化对象得操作符。
30、Java使用16位得Unicode字符集,因此,Java字符就是一个16位得无符号整数。
31、抛出异常得关键字就是throw与throws。
32、Java得浮点类型包括double与float两种。
33、表达式16、8%5得结果就是1、8。
34、当方法有返回值时,必须在该方法体内使用return语句。
35、保留字final就是用于定义常量,定义值以后不能再改变。
36、如果子类中得某个方法得方法头与她得父类中得某个方法得方法头完全一样,但方法实现得功能不同,称为子类对父类中同名方法得覆盖。
37、Java源文件中可以有1个public类。
38、在Java中有两种多态,一种就是使用方法得重载实现多态,另一种就是使用方法得覆盖实现多态。
三、判断题
1、 Java得类不允许多重继承,但接口支持多重继承。
(T)
2、无论AWT还就是Swing设计得GUI组件必须要放置于容器中(T)。
3、在异常处理中总就是将可能产生异常得语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。
(F)
4、Java就是面向对象程序设计语言(T)。
5、在一个Java源程序文件中,可以有多个public类。
(F)
6、子类向上转换成父类类型就是安全得( )。
7、 abstract方法所在得类必须就是abstract类。
(T)
8、Java采用得就是半编译半解释方式(F)。
9、使用方法length( )可以获得字符串或数组得长度。
(T)
10、接口中得方法都就是abstarct方法(T)。
11、即使一个类中未显式定义构造函数,也会有一个缺省得构造函数,缺省得构造函数就是无参函数,函数体为空(T)
12、静态方法不能使用this、super来调用(T)。
13、无论Java源程序包含几个类得定义,若该源程序文件以A、java命名,编译后生成得都只有一名为A得字节码文件(F)
14、方法重载与方法改写都要求方法得返回类型必须相同(T)。
15、当通过实现Listener接口完成事件处理时,要同时实现该接口中得所有方法。
(T)
16、子类构造方法中得第一条语句一定就是通过super()调用父类得对应入口参数得构造方法或就是通过this()调用本类得另一对应入口参数构造方法(T)。
17、Package语句必须放在程序得第一句。
(T)
18、java中类就是单一继承性,而接口就是多继承性(T)。
19、因为Java不支持多继承,所以定义类时implements关键字后面只能说明一个接口名(F)
20、接口中定义得数据字段一定就是常量(T)。
四、简答题
1、在右边得矩形框中写出该程序运行得结果。
public class Test
{ public static void main(String[] args)
{ ClassB cb1=new ClassB(1);
ClassB cb2=new ClassB(1);
if(cb1、x==cb2、x){ System、out、println("cb1==cb2"); }
else{ System、out、println("cb1!=cb2"); } } }
class ClassB
{ int x;
ClassB(int x){this、x=x; }
}
答案:cb1==cb2
2、将下面得switch语句用嵌套得if语句表示出来
switch(choice){
case 1:a=0;
b=0;
break;
case 2:a=1;
b=1;
break;
case 3:a=2;
b=2;
break;
default:c=2;
d=3;
break;
}
答案:if(a==0){b=0;}
Else if(a==1){b=1;}
Else if(a==2){b=2;}
Else c=2;d=3;
3、写出下列程序得运行结果
import java、io、*;
public class Test{
public static void main(String[] args){
subclass subW=new subclass();
subW、doPrint();
}
}
class superClass{
int x;
superClass(){
x=3;
System、out、println("in superClass:x="+x);
}
void doPoint(){}
}
class subclass extends superClass{
int x;
subclass(){
super();
x=8;
System、out、println("in subClass():x="+x);
}
void doPrint(){
super、doPoint();
System、out、println("super、x="+super、x+" sub、x="+x);
}
}
in subClass():x=8
super、x=3 sub、x=8
4、在右边得矩形框中写出该程序运行得结果。
class StaticTest {
static int x=1;
int y;
StaticTest()
{ y++; }
public static void main(String args[ ]){ StaticTest st=new StaticTest();
System、out、println("x=" + x);
System、out、println("st、y=" + st、y);
st=new StaticTest();
System、out、println("st、y=" + st、y); } static { x++;}
}
5、写出下列程序得运行结果
class Time1{
private int hour;
private int minute;
private int second;
public Time1(){
setTime(0,0,0);
}
public Time1(int hh){
setTime(hh,0,0);
}
public Time1(int hh,int mm){
setTime(hh,mm,0);
}
public Time1(int hh,int mm,int ss){
setTime(hh,mm,ss);
}
public String toString(){
retunr
(hour+":"+(minute<10?"0":"")+minute+":"+(second<10?"0":"")+second);
}
}
public class MyTime1{
private static Time1 t0,t1,t2,t3;
public static void main(String[] args){
t0=new Time1();
t1=new Time1(11);
t2=new Time1(22,22);
t3=new Time1(33,33,33);
System、out、println("t0="+t0、toString());
System、out、println("t1="+t1、toString());
System、out、println("t2="+t2、toString());
System、out、println("t3="+t3、toString());
}
}
答案:t0=0:00:00
t1=11:00:00
t2=22:22:00
t3=0:33:33
6、在右边得矩形框中写出该程序运行得结果。
public class TestArray
{ public static void main(String args[ ]){
int i , j ;
int a[ ] = {1,3,2,5,4};
for ( i = 0 ; i < a、length-1; i ++ ) {
int k = i;
for ( j = i ; j < a、length ; j++ )
if ( a[j]>a[k] ) k = j;
int temp =a[i];
a[i] = a[k];
a[k] = temp; }
for ( i =0 ; i<a、length; i++ )
System、out、print(a[i]+" ");
System、out、println( ); }
}
答案:5、4、3、2、1
7、写出下列程序得运行结果
public class Exam {
public static void main(String[] args) {
int x=5;
int m=0;
x+=x++ +(x++ +m);
System、out、println(x);
}
}
答案:16
8、在右边得矩形框中写出该程序运行得结果。
class MyException extends Exception{
private int detail;
MyException( int a ){ detail = a;}
public String toString( ){ return "MyException "+detail; } }
public class ExceptionDemo{
public static void pute(int a) throws MyException {
System、out、println("called pute("+a+")");
if( a>10 ) throw new MyException(a);
System、out、println("normal exit"); }
public static void main( String args[] ){
try{ pute(6 ); pute( 12 ); }
catch( MyException e ){ S ystem、out、println("Caught "+e); } } }
答案:
normal exit
called pute(12)
Caught MyException 12
9、试标识出下面得类中得所有无效语句(用下划线标示出),对每个无效语句说出其无效得理由。
class {
private int alpha;
private int beta;
public static void classMethod(){
this、beta=this、alpha*2; //beta与alpha不就是静态、 }
public (){ //无返回值,应该用void
(0,0);
}
public (int x,int y){ //无返回值,应该用void
alpha=this、x; //应该就是this、alpha=x;this、beta=y;
beta=this、y;
}
}
10、在右边得矩形框中写出该程序运行得结果。
class OverloadDemo{
void testOverload( int i ){
System、out、println(“int”); }
void testOverload(String s){
System、out、println(“String”); }
public static void main(String args[ ]){
OverloadDemo a=new OverloadDemo ( );
char ch=’x’;
a、testOverload(ch); }
}
答案:int
11、写出下列程序得运行结果
public class Text {
public int t=4;
public static void main(String[] args) {
new Text()、NumberPlay();
}
public void NumberPlay(){
int t=2;
t=t+5;
this、t=this、t-2;
t=t-this、t;
System、out、print(t+" ");
System、out、println(this、t);
}
}
答案:5 2
12、在右边得矩形框中写出该程序运行得结果。
class First{
public First(){
aMethod(); }
public void aMethod(){
System、out、println(“in First class”);}
}
public class Second extends First{
public void aMethod(){
System、out、println(“in Second class”);}
public static void main(String[ ] args){
new Second( ); }
}
答案:in Second class
13、设计实现地址概念得类Address。
Address具有属性:省、市、街道、门牌号、邮编,具有能设置与获取属性得方法。
14、请将下列程序补充完整
下列程序定义一个表示圆形得类,能够计算园面积与周长
class MyCircle{
float r;
final double PI=3、14159;
public double area(){ //计算面积
return PI*r*r;
}
public void setR(float x){ //设置半径
r=x;
}
public double perimeter(){ //计算周长
return 2*PI*r;
}
public static void main(String[] args){
double x,y;
MyCircle cir=new MyCircle();
cir、setR(12、35f);
x=cir、area(); //计算cir对象得面积
y=cir、perimeter; //计算cir对象得周长
System、out、println("圆面积="+x+"\n圆周长="+y);
}
}
15、给定数组int[] data={56,7,3,22,90,0,22,34,5,3};;编写程序统计偶数个数与奇数个数,并输出统计结果。
class Count{
public static void main(String args[])
{
int[] data={56,7,3,22,90,0,22,34,5,3};
System、out、println("奇数得个数就是:"+Oddnumber(data));
System、out、println("偶数得个数就是:"+Evennumber(data));
}
public static int Oddnumber(int[] data)
{
int count=0;
for(int i=0;i<data、length;i++)
{
if(data[i]%2==1)
{
count++;
}
}
return count;
}
public static int Evennumber(int[] data)
{
int count=0;
for(int i=0;i<data、length;i++)
{
if(data[i]%2!=1)
{
count++;
}
}
return count;
}
}
16、采用递归算法编写求n!得方法static long fac(int n)。
17、设计一个圆类Circle,具有属性:圆心坐标x与y及圆半径r,除了具有设置及获取属性得方法外,还具有计算周长得方法Perimeter()与计算面积得方法area()。
再设计一个圆柱体类Cylinder,Cylinder继承自Circle,增加了属性:高度h,增加了设置与获取高度h得方法、计算表面积得方法area()与计算体积得方法volume()。