复习资料习题版1Word下载.docx
《复习资料习题版1Word下载.docx》由会员分享,可在线阅读,更多相关《复习资料习题版1Word下载.docx(14页珍藏版)》请在冰豆网上搜索。
![复习资料习题版1Word下载.docx](https://file1.bdocx.com/fileroot1/2022-11/22/39337f9e-167a-46cc-9f99-0ceb22699dc0/39337f9e-167a-46cc-9f99-0ceb22699dc01.gif)
哪个语句是正确的(C)
A)编译时将产生错误B)编译时正确,运行时将产生错误
C)输出零D)输出空
11、如下哪个字符串是Java中的标识符(A)
A)fieldnameB)superC)3numberD)#number
12、以下哪项是接口的正确定义(D)
A)interfaceB{voidprint(){};
}
B)abstractclassB{voidprint();
C)abstractinterfaceBextendsA1,A2//A1、A2为已定义的接口{abstractvoidprint(){};
D)interfaceB{voidprint();
13、以下代码段执行后的输出结果为(B)
intx=3;
inty=10;
System.out.println(y%x);
A)0B)1C)2D)3
14、不允许作为类及类成员的访问控制符的是(C)
A)publicB)privateC)staticD)protected
15、执行完代码int[]x=newint[25];
后,以下哪项说明是正确的(A)
A)x[24]为0B)x[24]未定义C)x[25]为0D)x[0]为空
16、类Text定义如下:
publicclassTest
{
publicfloataMethod(floata,floatb){}
//***
将以下哪种方法插入行"
//***"
是不合法的。
(B)
A)publicfloataMethod(floata,floatb,floatc){}
B)publicfloataMethod(floatc,floatd){}
C)publicintaMethod(inta,intb){}
D)publicfloataMethod(inta,intb,intc){}
17、在Java语言中,下列哪个包是编译器自动导入的(A)
A)java.langB)C)javax.swingD)java.util
18、关于类和对象的叙述正确的是(A)
A)Java的类分为两大部分:
系统定义的类和用户自定义的类
B)类的静态属性和全局变量的概念完全一样,只是表达形式不同
C)类的成员至少有一个属性和一个方法
D)类是对象的实例化
19、以下语句中,没有创建出字符串对象的是(A)
A)Stringstr;
B)Stringstr="
hello"
;
C)Stringstr=newString();
D)newString("
);
20、A派生出子类B,B派生出子类C,并且在Java源代码中有如下声明
①Aa0=newA();
②Aa1=newB();
③Aa2=newC();
请问以下哪个说法是正确的(D)
A)只有第1行能通过编译
B)第1、2行能通过编译,但第3行编译出错
C)第1、2、3行能通过编译,但第2、3行运行时出错
D)第1行、第2行和第3行的声明都是正确的
21、判断两个字符串s1,s2值是否相等,需要使用(D)
A)if(s1=s2)B)if(s1==s2)
C)if(equals(s1,s2))D)if(s1.equals(s2))
22、以下哪个表达式是不合法的(B)
A)Stringx="
Sky"
inty=5;
x+=y;
B)Stringx="
if(x==y){}
C)Stringx="
x=x+y;
D)Stringx=null;
inty=(x!
=null)&
&
(x.length()>
0)?
x.length():
0;
23、在子类的构造函数中要调用父类的构造函数,需要用哪个关键字(D)
A)finalB)extendsC)implementsD)super
24、有以下方法的定义,请选择该方法的返回类型(C)
intmethod(bytex,doubley)
{return(short)x/y*2;
A)byteB)shortC)intD)double
25、在Java中,一个源文件可以存放几个公有类(即被public修饰的类)(A)
A)1个B)2个C)3个D)无数个
26、编译MyClass.java之后,得到了三个字节码文件:
MyClass.class,MyClasslittle$.class,MyClass$1.class。
这表明(C)
A)MyClass类中的两个方法:
little和1
B)MyClass.Java中有三个类:
MyClass、little和1
C)MyClass类中有两个内部类:
一个是命名的little,另一个是匿名的1
D)MyClass、little和1,这三者没什么关系
27、下面哪个函数是publicvoidexample(){...}的重载函数(D)
A)publicdoubleexample2(intm){...}B)publicintexample(){...}
C)publicvoidexample2(){...}D)publicintexample(intm,floatf){...}
28、下面哪个不是java语言中的关键字(B)
A)longB)sizeofC)instanceofD)const
29、关于被私有访问控制符private修饰的成员变量,以下说法正确的是(C)
A)可被三种类引用:
该类自身、与它在同一个包中的其他类、在其他包中的该类的子类
B)可以被两种类访问和引用:
该类本身、该类的所有子类
C)只能被该类自身所访问和修改D)只能被同一个包中的类访问
30、以下有关构造方法的说法,正确的是(A)
A)一个类的构造方法可以有多个
B)构造方法在类定义时被调用
C)构造方法只能由对象中的其它方法调用
D)构造方法可以和类同名,也可以和类名不同
31、编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)
A).javaB).classC).htmlD).exe
32、main方法是Java程序执行的入口点,关于main方法的方法头以下哪项是合法的(B)
A)publicstaticvoidmainB)publicstaticvoidmain(String[]args)
C)publicstaticintmain(String[]args)D)publicvoidmain(Stringargs[])
33、给出如下代码:
classTest{
privateintm;
publicstaticvoidfun(){//somecode...}}
如何使成员变量m被函数fun()直接访问(C)
A)将privateintm改为protectedintmB)将privateintm改为publicintm
C)将privateintm改为staticintmD)将privateintm改为intm
34、Java中复合数据类型不包括(D)
A)类类型B)数组C)接口类型D)指针
35、下列语句中,能正确创建一个名为scu的包是(C)
A)importjava.scu;
B)importscu;
C)packagescu;
D)packagejava.scu;
36、void的含义(C)
A)方法体为空B)定义的方法没有形参
C)定义的方法没有返回值D)方法的返回值不能参加算术运算
37、Java应用程序的入口方法是(D)
A)startB)initC)helloWorldD)main
38、关于Java语言叙述错误的是(C)
A)Java语言具有跨平台性
B)Java是一种面向对象的语言
C)Java语言中的类可以多继承
D)Java的垃圾收集机制自动回收程序已不再使用的对象
39、给出下面的代码段:
publicclassBase{intw,x,y,z;
publicBase(inta,intb){x=a;
y=b;
}publicBase(inta,intb,intc,intd){//assignmentx=a,y=bw=d;
z=c;
}}
在代码说明//assignmentx=a,y=b处写入如下哪个代码是正确的(D)
A)Base(a,b);
B)x=a,y=b;
C)super(a,b);
D)this(a,b);
40、创建字符串Strings=newString("
xyzy"
以下哪条语句将改变s(D)
A)s.append("
a"
B)s.concat(s);
C)s.substring(3);
D)以上语句都不会
二、判断题
1、Java的字符类型采用的是Unicode编码,但所占字节由具体软硬件环境决定。
(错)一个字符一律占用2个字节
2、抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。
(错)
3、子类的属性和方法的数目一定大于等于父类的属性和方法的数目。
4、Java中数组的元素可以是简单数据类型的量,也可是某一类的对象。
(对)
5、在方法定义中,所以可能发生的异常都必须用try{}catch(){}捕捉。
(错)
6、Java源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。
(对)
7、Java的字符类型采用的是ASCII编码。
(错)
8、classA{...}等价于classAextendsObject{...}。
(对)
9、接口里的方法必须全部都声明成abstract。
(对)
10、注释的作用是使程序在执行时在屏幕上显示"
//"
之后的内容。
11、一个Java类可以有多个父类。
12、Java中数组的元素只能是简单数据类型的量。
13、不能在静态方法中使用this。
(对)不能在静态方法中使用this,因为this默认的对象引用,静态方法被调用时,this所引用的对象并没有产生,this无所指向.
14、最终类能派生子类,最终方法能被重载。
15、Java语言是平台无关的语言。
16、Java的源代码中定义几个类,编译结果就生成几个以"
.class"
后缀的字节码文件。
17、System类不能实例化,即不能创建System类的对象。
(对)System类当然不能实例化,它是抽象类嘛,所有前面带有abstract的类都不能实例化
18、类的静态方法中可以访问该类的非静态数据成员。
19、覆盖的同名方法中,子类方法不能比父类方法的访问权限更严格。
20、抽象类中不能创建对象。
三、填空题
1、创建一个名为MyPackage的包的语句是(package.MyPackage;
),该语句应该放在程序的位置为(最开头)。
java源程序的第一句
2、程序中定义类使用的关键字是class,每个类的定义由类头定义、类体定义两部分组成,其中类体部分包括(属性)和(方法)。
3、创建类的对象时,使用运算符(new)给对象分配内存空间。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用
(2)字节内存空间。
5、Java程序中定义接口所使用的关键字是(interface),接口中的属性都是(public,static,final),接口中的方法都是(publicabstract)。
6、在Java程序中,通过类的定义只能实现(单)继承,但通过接口的定义可以实现(多)继承关系。
7、数组x定义如下:
intx[][]=newint[3][2];
则x.length的值为(3),x[0].length的值为
(2)。
8、(抽象)方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类或接口之中定义。
(final)方法是不能被当前类的子类重新定义的方法。
9、关键字(import)用于导入包中的类到程序中,供程序中使用。
10、Java中所有类都是类(Object)的子类。
11、在子类中使用关键字(super)做前缀可调用被子类覆盖的父类中的方法。
12、面向对象程序设计所具有的基本特征是抽象性、(封装性)、继承性与(多态性)。
四、简答题
1、什么是重载,什么是覆盖,有什么区别和共同点?
答:
重载是指在同一个类中定义了多个名字相同而内容不同的成员方法;
覆盖则是指在子类中定义了与父类具有相同名字的成员方法。
重载与覆盖的区别在于:
重载是存在于同一个类的不同方法之间的多态关系,它们主要通过参数表中参数的个数、参数的数据类型和参数的顺序等方面的不同来区分;
而覆盖是存在于父类与子类之间的多态关系,它们在引用时通过指出所属类的类名来区分。
2、谈谈final与finally的区别?
final修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。
因此一个类不能既被声明为abstract的,又被声明为final的。
将变量或方法声明为final,可以保证它们在使用中不被改变。
被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
被声明为final的方法也同样只能使用,不能重载。
finally在异常处理时提供finally块来执行任何清除操作。
如果抛出一个异常,那么相匹配的catch子句就会执行,然后控制就会进入finally块。
3、抽象类与接口的区别是什么?
a、接口中的所有方法都是抽象的,而抽象类可以定义带有方法体的不同方法;
b、一个类可以实现多个接口,而只能继承一个抽象父类;
c、接口与实现它的类不构成继承体系,而抽象类是属于一个类的继承体系;
d、接口中的方法默认是publicabstract的,而成员变量默认是publicstatic常量;
e、implements关键字用于实现接口,extends关键字用于继承。
五、编程题
1、请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量face和suit:
face描述一张牌的牌面值(如:
"
Ace"
"
Deuce"
Three"
Four"
Five"
Six"
Seven"
Eight"
Nine"
Ten"
Jack"
Queen"
King"
);
suit描述一张牌的花色(如:
Hearts"
Diamonds"
Clubs"
Spades"
)。
定义Card类中的public访问权限的构造方法,为类中的变量赋值;
定义protected访问权限的方法getFace(),得到扑克牌的牌面值;
定义protected访问权限的方法getSuit(),得到扑克牌的花色;
定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如"
AceofHearts"
、"
TenofClubs"
等)
publicclassCard
privateStringface;
privateStringsuit;
publicCard(Stringface,Stringsuit)
this.face=face;
this.suit=suit;
protectedStringgetFace()
returnface;
//返回牌面值
protectedStringgetSuit()
returnsuit;
//返回牌花色
publicStringtoString()
returnface+"
of"
+suit;
//返回面值和花色
publicstaticvoidmain(String[]args)
Carda=newCard("
System.out.println("
牌面值为:
+a.getFace());
牌花色为:
+a.getSuit());
该扑克牌为:
+a.toString());
2、构造一个类来描述屏幕上的一个点,该类的构成包括点的x和y两个坐标,以及一些对点进行的操作,主要包括:
取得点的坐标值,对点的坐标进行赋值。
编写应用程序生成该类的对象并对其进行操作。
classPoint
privateintx,y;
publicPoint(intx,inty)
this.x=x;
this.y=y;
publicStringgetPiont()
return"
("
+x+"
"
+y+"
)"
publicvoidsetPoint(intx,inty)
Pointp=newPoint(3,4);
改点的坐标为:
+p.getPiont());
p.setPoint(5,6);
修改后的坐标为:
3、编写一个Java程序,接受用户从键盘输入的10个整数,并输出这10个整数的最大值和最小值。
importjava.io.*;
publicstaticvoidmain(Stringargs[])
intmax=0,min=0,value=0;
for(inti=1;
i<
=10;
i++)
{
try
{
System.out.println("
输入第"
+i+"
个整数:
BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));
Strings=br.readLine();
value=Integer.parseInt(s);
if(i==1)
{
max=min=value;
}
else
max=value>
max?
value:
max;
min=value<
min?
min;
}
catch(NumberFormatExceptionenf)
整数格式输入错误,请重新输入。