Java考试题+答案.docx
《Java考试题+答案.docx》由会员分享,可在线阅读,更多相关《Java考试题+答案.docx(12页珍藏版)》请在冰点文库上搜索。
Java考试题+答案
选择题(每题3分,共45分)之袁州冬雪创作
1、下列程序编译或运行的成果是.()D
publicstaticvoidmain(Stringargs[]){
inta=10;
intb,c;
if(a>50){
b=9;
}
c=b+a;
System.out.println(c);
}
2、下列语句片段中,four的值为()D
intthree=3;
charone=‘1’;
charfour=(char)(three+one);
A.3B.1C.31D.4
3、下列代码的运行成果是()D
publicstaticvoidmain(String[]args){
inta=7;
System.out.println(a%3);
}
A.2.0B.2C.1.0D.1
4、以下程序的输出成果为().D
publicstaticvoidmain(String[]args){
intx=1,y=1,z=1;
if(x==1&&y==1||z==1)
System.out.println(“x=”+x+”,y=”+y+”,z=”+z);
}
A.x=0,y=1,z=1
B.x=0,y=2,z=2
C.x=0,y=2,z=1
D.x=0,y=0,z=1
5、下列代码段编译和运行的成果是().C
publicstaticvoidmain(Stringargs[]){
Stringstr=“null”;
if(str==null){
System.out.println(“null”);
}elseif(str.length()==0){
System.out.println(“zero”);
}else{
System.out.println(“some”);
}
}
A.nullB.zeroC.someD.编译错误
6、下列代码的运行成果是():
D
publicclassAnimal{
publicStringnoise(){
return“peep”;
}
publicstaticvoidmain(String[]args){
Animalanimal=newDog();
Catcat=(Cat)animal;
System.out.println(cat.noise());
}
}
classDogextendsAnimal{
publicStringnoise(){
return“bark”;
}
}
classCatextendsAnimal{
publicStringnoise(){
return“meow”;
}
}
A.peepB.barkC.meowD.编译错误E.抛出运行时异常
7、关于下列代码说法正确的是()D
publicclassFoo{
publicintadd(inta,intb){
returna+b;
}
publicstaticvoidmain(String[]args){
Foofoo=null;
System.out.println(foo.add(10,20));
}
}
8、程序的执行成果是()B
publicclassTest{
intx;
publicstaticvoidmain(String[]args){
Testt=newTest();
t.x=5;
change(t);
System.out.println(t.x);
}
publicstaticvoidchange(Testt){
t.x=3;
}
}
A.5B.3C.0D.4
9、关于下列代码书法正确的是()B
publicclassA{
publicvoiddoit(){}
publicStringdoit(){
return“a”;
}
publicdoubledoit(intx){
return1.0;
}
}
A.无编译错误
B.代码publicStringdoit(){行,出现编译错误
C.代码publicdoubledoit(intx){行,出现编译错误
D.代码return“a”;行处出现编译错误
10、下列代码的运行成果是()D
Stringtest=“Thisisatest”;
String[]tokens=test.split(“\\s”);
System.out.println(tokens.length);
A.0B.1C.3D.4
11、请看下列代码()A
1//somecodehere
2try{
3//somecodehere
4}catch(SomeExceptionse){
5//somecodehere
6}finally{
7//somecodehere
8}
下面那种情况不克不及使第7行的代码执行:
A.第1行抛出异常
B.第3行抛出异常
C.第5行抛出异常
D.第3行代码成功执行
12、Java中单一文件里的关键字classimportpackage出现的顺序应为:
()C
A.classpackageimport
B.classimportpackage
C.packageimportclass
D.importpackageclass
13、给出以下代码,请问该程序的运行成果是什么?
D
classExample{
publicstaticvoidmain(Stringargs[]){
Strings=newString("Computer");
if(s=="Computer")
System.out.println("EqualA");
if(s.equals("Computer"))
System.out.println("EqualB");
}
}
A、代码编译失败
B、打印输出空缺行
C、打印输出:
EqualA;
D、打印输出:
EqualB
E、打印输出:
EqualA和EqualB
14、Java语言中,通常把能够发生异常的方法调用语句放到________、________块中,分别用来捕获和处理异常.()C
A.try,finally;
B.catch,try;
C.try,catch
D.finally,try
15、下列哪一个语句可以获取文件“file.txt”的父目次称号?
()D
A.Stringname=File.getParentName(“file.txt”);
B.Stringname=(newFile(“file.txt”)).getParent();
C.Stringname=(newFile(“file.txt”)).getParentName();
D.Stringname=(newFile(“file.txt”)).getParentFile();
填空题(每空2分,共20分)
1、完成代码计算10的阶乘并输出,把下面代码补全:
intresult=1;
for(inti=2;i<=10;i++){
}
System.out.println(“result=”+result);
答案:
result*=i或result=result*i
2、在Java的类中需要将一个成员变量设置成子类可访问而且包内可访问,则使用访问修饰符来访问.
答案:
protected
3、Java中所有类都是类__的子类
4、System.outprinln(4/3)的输出成果为___,System.outprinln(4%3)的输出成果为___.
答案:
1,1
5、Java语言中我们可以继承类或实现接话柄现多线程.
答案:
ThreadRunnable
6、方法重载的条件中,参数只要知足、、中的任何一点即可.
答案:
顺序分歧、个数分歧、类型分歧
简答题(共17分)
1、请您简述Java语言中的面向对象的特征都有哪些?
并逐个阐述.(8分)
答案
1.抽象:
抽象就是忽略一个主题中与当前方针无关的那些方面,以便更充分地注意与当前方针有关的方面.抽象其实不打算懂得全部问题,而只是选择其中的一部分,暂时不必部分细节.一是过程抽象,二是数据抽象.过程抽象是指任何一个明白定义功能的操纵都可被使用者看做单个的实体对待,虽然这个操纵实际上能够由一系列更低级的操纵来完成.数据抽象定义了数据类型和施加于该类型对象上的操纵,并限定了对象的值只能通过使用这些操纵修改和观察.
2.继承:
继承是一种联合类的条理模子,而且允许和鼓励类的重用,它提供了一种明白表述共性的方法.对象的一个新类可以从现有的类中派生,这个过程称为类继承.新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类).派生类可以从它的基类那边继承方法和实例变量,而且类可以修改或增加新的方法使之更适合特殊的需要.
3.封装:
封装是面向对象的特征之一,是对象和类概念的主要特性.封装是把过程和数据包抄起来,对数据的访问只能通过已定义的界面.面向对象计算始于这个基本概念,即现实世界可以被描画成一系列完全自治、封装的对象,这些对象通过一个受呵护的接口访问其他对象.一旦定义了一个对象的特性,则有需要决议这些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于暗示外部状态.在这个阶段定义对象的接口.通常,应制止直接访问一个对象的实际暗示,而应通过操纵接口访问对象,这称为信息隐藏.事实上,信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持.封装包管了模块具有较好的独立性,使得程序维护修改较为容易.对应用程序的修改仅限于类的外部,因而可以将应用程序修改带来的影响减少到最低限度.
4.多态性:
多态性是指允许分歧类的对象对同一消息作出响应.比方同样的加法,把两个时间加在一起和把两个整数加在一起必定完全分歧.又比方,同样的选择编辑粘贴操纵,在字处理程序和绘图程序中有分歧的效果.多态性包含参数化多态性和包含多态性.多态性语言具有矫捷、抽象、行为共享、代码共享的优势,很好的处理了应用程序函数同名问题.
2、请说出List,Set和Map三个接口存储元素时各有什么特点?
(9分)
答案:
List与Set具有相似性,它们都是单列元素的集合,它们有一个共同的父接口,叫做Collection.
Set外面不允许有重复的元素,所谓重复,即不克不及有两个相等(不但仅是相同)的对象,即假设Set集合中有了一个A对象,现在我要向Set集合再存入一个B对象,但B对象与A对象equals相等,则B对象存储不出来.Set集合的add方法有一个boolean的返回值,当集合中没有某个元素,此时add方法可成功加入该元素时,则返回true,当集合含有与某个元素equals相等的元素时,此时add方法无法加入该元素,返回成果为false.
List暗示有先后顺序的集合,当我们多次调用add(Obje)方法时,每次加入的对象就像火车站买票有列队顺序一样,按先来后到的顺序排序.有时候,也可以插队,即调用add(intindex,Obje)方法,便可以指定当前对象在集合中的存放位置.
一个对象可以被反复存储进List中,每调用一次add方法,这个对象就被拔出进集合中一次,其实,其实不是把这个对象自己存储进了集合中,而是在集合中用一个索引变量指向这个对象,当这个对象被add多次时,即相当于集合中有多个索引指向了这个对象.
Map与List和Set分歧,它是双列的集合,其中有put方法,定义如下:
put(objkey,objvalue),每次存储时,要存储一对key/value,不克不及存储重复的key,
这个重复的规则也是按equals比较相等.
取则可以根据key获得相应的value,即get(Objectkey)返回值为key所对应的value.
编程题(共18分)
1、请阅读下列程序,并写出其运行成果:
(6分)
publicclassTest{
publicstaticvoidmain(String[]args){
Sons=newSon();
}
}
classParent{
{
System.out.println(“A”);
}
static{
System.out.println(“B”);
}
publicParent(){
System.out.println(“C”);
}
}
classSonextendsParent{
{
System.out.println(“D”);
}
static{
System.out.println(“E”);
}
publicSon(){
System.out.println(“F”);
}
}
答案:
B
E
A
C
D
F
2、写出一种实现单例的方式?
(懒汉式,饿汉式任选一种)(6分)
答案:
懒汉式:
1.public class Singleton {
2. private static Singleton instance;
3. private Singleton (){}
4. public static Singleton getInstance() {
5. if (instance == null) {
6. instance = new Singleton();
7. }
8. return instance;
9. }
10.}
饿汉式:
1.public class Singleton {
2. private static Singleton instance = new Singleton();
3. private Singleton (){}
4. public static Singleton getInstance() {
5. return instance;
6. }
7.}
3、编写一个应用程序,对程序中给定的四个double型数据求其最大值和最小值.(6分)
答案:
publicstaticvoidmain(String[]args){
doublea[]={8.2,3.8,15.1,9.0};
doublemax=0,min=0;
System.out.print("四个数分别为:
");
for(inti=0;iSystem.out.print(a[i]+"");
}
for(inti=0;iif(a[i]>a[i+1]){
max=a[i];
}elseif(a[i]min=a[i];
}
}
System.out.println();
System.out.println("四个数中最大值为:
"+max);
System.out.println("四个数中最小值为:
"+min);
}