java基础考试题及答案.docx

上传人:b****3 文档编号:2770625 上传时间:2022-11-14 格式:DOCX 页数:23 大小:25.25KB
下载 相关 举报
java基础考试题及答案.docx_第1页
第1页 / 共23页
java基础考试题及答案.docx_第2页
第2页 / 共23页
java基础考试题及答案.docx_第3页
第3页 / 共23页
java基础考试题及答案.docx_第4页
第4页 / 共23页
java基础考试题及答案.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

java基础考试题及答案.docx

《java基础考试题及答案.docx》由会员分享,可在线阅读,更多相关《java基础考试题及答案.docx(23页珍藏版)》请在冰豆网上搜索。

java基础考试题及答案.docx

java基础考试题及答案

新员工考试

一、选择题(共30题,每题2分)

1.下面哪些是合法的标识符?

(多选题)

  A.$persons

  B.TwoUsers

  C.*point

  D.this

E._endline 

答案 A,B,E

分析 Java的标识符可以以一个Unicode字符,下滑线(_),美元符($)开始,后续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字(this保留字)。

2.哪些是将一个十六进制值赋值给一个long型变量?

(单选题)

  A.longnumber=345L;

  B.longnumber=0345;

  C.longnumber=0345L;

D.longnumber=0x345L 

答案 D

分析 十六进制数以0x开头,long型数以L(大小写均可,一般使用大写,因为小写的l和数字1不易区分)。

 

3.下面的哪些程序片断可能导致错误?

(多选题)

  A.Strings="Gonewiththewind";

  Stringt="good";

  Stringk=s+t;

  B.Strings="Gonewiththewind";

  Stringt;

  t=s[3]+"one";

C.Strings="Gonewiththewind";

  Stringstandard=s.toUpperCase();

  D.Strings="homedirectory";

  Stringt=s-"directory";

答案 B,D

  分析 

  A:

String类型可以直接使用+进行连接运算。

  B:

String是一种Object,而不是简单的字符数组,不能使用下标运算符取其值的某个元素,错误。

  C:

toUpperCase()方法是String对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(String类型)。

D:

String类型不能进行减(-)运算,错误。

4.pointx处的哪些声明是句法上合法的?

(多选题)

  classPerson{

  privateinta;

  publicintchange(intm){returnm;}

  }

  publicclassTeacherextendsPerson{

  publicintb;

  publicstaticvoidmain(Stringarg[]){

  Personp=newPerson();

  Teachert=newTeacher();

  inti;

//pointx

  }

  }

  A.i=m;

  B.i=b;

  C.i=p.a;

  D.i=p.change(30);

  E.i=t.b.  

答案 D,E

  分析

  A:

m没有被声明过,不能使用。

  B:

虽然b是类Teacher的public成员变量,但是在静态方法中不能使用类中的非静态成员。

  C:

a是类Person的private成员,在类外不能直接引用。

  D:

change(intm)方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int型变量。

  E:

b是类Teacher的public成员变量,且是int型,可以通过类的实例变量t引用并赋值给一个int型变量。

5.下面的代码片断(多选题):

  1)publicvoidcreate(){

2)VectormyVect;

  3)myVect=newVector();

  4)}

  下面的哪些陈述正确?

  A.第二行的声明不会为变量myVect分配内存空间。

  B.第二行的声明分配一个到Vector对象的引用的内存空间。

  C.第二行语句创建一个Vector类对象。

  D.第三行语句创建一个Vector类对象。

  E.第三行语句为一个Vector类对象分配内存空间。

 

 

 答案 A,D,E

  分析

  要为一个新对象分配空间必须执行newXxx()调用,new调用执行以下的操作:

  1.为新对象分配空间并将其成员初始化为0或者null。

  2.执行类体中的初始化。

(例如在类中有一个成员声明inta=10;在第一步后a=0,执行到第二步后a=10)

  3.执行构造函数。

  4.变量被分配为一个到内存堆中的新对象的引用。

6.下面的哪些答案可以用以表示八进制值8?

(单选题)

  A.010

  B.0x10

  C.08

  D.0x8  

答案 A

  分析  八进制值以0开头,以0x开头的为十六进制值,八进制中不能出现数字8,最大只有7。

7.

  1)classPerson{

  2)publicvoidprintValue(inti,intj){/*…*/}

  3)publicvoidprintValue(inti){/*...*/}

  4)}

  5)publicclassTeacherextendsPerson{

  6)publicvoidprintValue(){/*...*/}

  7)publicvoidprintValue(inti){/*...*/}

  8)publicstaticvoidmain(Stringargs[]){

  9)Persont=newTeacher();

  10)t.printValue(10);

  11)}

  12)}

  第十行的声明将调用哪些方法?

(单选题)

  A.online2

  B.online3

  C.online6

  D.online7

  

 答案 D

  分析 变量t是一个Person对象,但是它是用Teacher实例化的,这个问题涉及到java的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反之则需要

进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象),如果对t调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据t实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用t实际指向的Teacher类的对应方法。

在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是一个父类实例,在运行时可能是一个子类实例。

8.给出下面的代码:

(单选题)

  if(x>0){System.out.println("first");}

  elseif(x>-3){System.out.println("second");}

  else{System.out.println("third");}

  x的取值在什么范围内时将打印字符串"second"。

  A.x>0

  B.x>-3

  C.x<=-3

  D.x<=0&x>-3

答案 D

  分析 x>0时打印"first",x>-3&&x<=0时打印"second",x<=-3时打印"third"。

这个题目没有什么难的,只要理解if语句的语法就可以了。

 

9.下面的哪些赋值语句是不正确的(单选题)

  A.floatf=11.1;

  B.doubled=5.3E12;

  C.doubled=3.14159;

  D.doubled=3.14D.

答案A

  题目:

  浮点数的赋值是带有小数点的数字缺省是double型的,如果在浮点数后面加f或者F则是float,后面加d或者D则是double,科学计数法形式的浮点数也是double型的,而double的精度比float高,将一个高精度的double赋值给一个低精度的float时需要进行强制类型转换,反之则不需要。

10.给出下面的不完整的类代码:

(单选题)

  classPerson{

  Stringname,department;

  intage;

  publicPerson(Stringn){name=n;}

  publicPerson(Stringn,inta){name=n;age=a;}

  publicPerson(Stringn,Stringd,inta){

  //doingthesameastwoargumentsversionofconstructor

  //includingassignmentname=n,age=a

  department=d;

  }

  }

  下面的哪些表达式可以加到构造方法中的"doingthesameas..."处?

A.Person(n,a);

  B.this(Person(n,a));

  C.this(n,a);

  D.this(name,age).  

答案C

  分析:

 在同一个类的不同构造方法中调用该类的其它构造方法需要使用this(…)的形式,而且必须是在构造方法的第一行调用,这个和普通的方法重载调用的方式不同,普通的方法可以直接使用方法名加参数来调用,而且调用位置没有限制,因此答案A是不行的,B的语法就是错误的,D的错误在于在父类型的构造函数被调用前不能引用类的成员。

构造方法是一个类对象实例化的起点(虽然严格来说首先执行的并不是构造方法的第一个语句,而是内存的分配),因此在构造方法中不能将成员作为参数引用。

11.publicvoidtest(){//(多选题)

  try{

oneMethod();

  System.out.println("condition1");

  }catch(ArrayIndexOutOfBoundsExceptione){

  System.out.println("condition2");

  }catch(Exceptione){

  System.out.println("condition3");

  }finally{

  System.out.println("finally");

  }

}

  在oneMethod()方法运行正常的情况下将显示什么?

  A.condition1

  B.condition2

  C.condition3

  D.finally

答案ad

分析:

  如果try块中的语句在执行时发生异常,则执行从该处中断而进入catch块,根据异常的类型进行匹配,最前面的优先进行匹配比较,只要该异常是catch中指定的异常的子类就匹配成功进而执行相应的catch中的内容,而finally块中的内容无论是否发生异常都将被执行。

12.给出下面的代码:

(单选题)

  publicclassTest{

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1