java基础考试题及答案0001_第1页
java基础考试题及答案0001_第2页
java基础考试题及答案0001_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、新员工考试一、 选择题共 30题,每题 2 分1. 下面哪些是合法的标识符 ?多项选择题A. $personsB. TwoUsersC. *pointD. thisE. _endline答案 A,B,E分析 Java 的标识符可以以一个 Unicode 字符,下滑线 _,美元符 $开始,后续字 符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保存字 this 保存字。2. 哪些是将一个十六进制值赋值给一个 long 型变量 ?单项选择题A. long number = 345L;B. long number = 0345;C. long number = 0345L;D. long

2、number = 0x345L答案 D分析 十六进制数以Ox开头,Io ng型数以L 大小写均可,一般使用大写,因为小写的l 和数字 1 不易区分。3. 下面的哪些程序片断可能导致错误 ? 多项选择题A. String s = Gone with the wind;String t = good ;String k = s + t;B. String s = Gone with the wind;String t;t = s3 + one;C. String s = Gone with the wind;String standard = s.toUpperCase;D. String s =

3、 home directory;String t = s - directory;答案 B,D分析A:String 类型可以直接使用 +进行连接运算。B:String 是一种 Object ,而不是简单的字符数组,不能使用下标运算符取其值的某个 元素,错误。C:toUpperCase 方法是 String 对象的一个方法, 作用是将字符串的内容全部转换为大 写并返回转换后的结果 String 类型。D:String 类型不能进行减 - 运算,错误。4. point x 处的哪些声明是句法上合法的 ? 多项选择题cIass Person private int a;pubIic int chan

4、geint m return m; public class Teacher extends Person public int b;public static void main(String arg) Person p = new Person(); Teacher t = new Teacher(); int i;/ point xA. 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成员变量,但是在静态方法中不能使用类中的非 静态成

5、员。C: a 是类 Person 的 private 成员,在类外不能直接引用。D: change(int m) 方法是 public 方法,并且返回一个 int 型值,可以通过类的实例 变量 p 引用并赋值给一个 int 型变量。E: b 是类 Teacher 的 public 成员变量,且是 int 型,可以通过类的实例变量 t 引用 并赋值给一个 int 型变量。5. 下面的代码片断(多项选择题) :1) public void create() 2) Vector myVect;3) myVect = new Vector();4) 下面的哪些陈述正确 ?A. 第二行的声明不会为变量m

6、yVect分配内存空间。B. 第二行的声明分配一个到 Vector 对象的引用的内存空间。C. 第二行语句创立一个 Vector 类对象。D. 第三行语句创立一个 Vector 类对象。E. 第三行语句为一个 Vector 类对象分配内存空间。答案 A,D,E分析要为一个新对象分配空间必须执行 new Xxx()调用,new调用执行以下的操作: 1为新对象分配空间并将其成员初始化为0 或者 null 。2执行类体中的初始化。 (例如在类中有一个成员声明 int a=10; 在第一步后 a=0 , 执行到第二步后 a=10)3执行构造函数。4变量被分配为一个到内存堆中的新对象的引用。6. 下面的

7、哪些答案可以用以表示八进制值 8? (单项选择题)A. 010B. 0x10C. 08D. 0x8答案 A分析 八进制值以 0开头,以 0x 开头的为十六进制值, 八进制中不能出现数字 8, 最大只有 7。1) class Person 2) public void prin tValue(i nt i, i nt j) /*/ 3) public void printValue(int i)/*.*/ 4) 5) public class Teacher extends Person 6) publicvoidprintValue() /*.*/ 7) publicvoidprintValu

8、e(int i) /*.*/8) publicstatic void main(String args)9) Person t = new Teacher();10) t.printValue(10);11) 12) 第十行的声明将调用哪些方法 ? (单项选择题)A. on line 2B. on line 3C. on line 6D. on line 7答案 D分析 变量 t 是一个 Person 对象,但是它是用 Teacher 实例化的,这个问题涉及到 java 的编译时多态和运行时多态的问题,就编译时多态来说, t 实际上是一个 Person 类,这 涉及到类型的自动转换 (将一个子

9、类的实例赋值给一个父类的变量是不用进行强制类型转换, 反之那么需要进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象) ,如果对 t 调用了 子类中新增的方法那么造成编译时错误编译将不能通过,而在运行时,运行时系统将根据 t 实 际指向的类型调用对应的方法, 对于本例来说, t.print(10) 将调用 t 实际指向的 Teacher 类 的对应方法。在 java 中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时是 一个父类实例,在运行时可能是一个子类实例。7. 给出下面的代码:(单项选择题)x 的取值在什么范围内时将打印字符串 second 。A. x 0B. x -

10、3C. x = -3D. x -3答案 D分析 x0 时打印first , x-3&x=0时打印second , x 10 )public static void main(String arg) int i=10;Test t= new Test();t.printValue(i);输出将是什么?A. The value is 8B. The value is 9C. The value is 10D. The value is 11答案:c此题考察的是dowhile循环和-操作符的知识,dowhile最少被执行一次,在 执行完 do 中的内容后判断 while 中的条件是否为 true ,

11、如果为 true 的话就再执行 do 中的 内容,然后再进行判断,以此类推直到 while 的判断为 false 时退出循环执行循环后面的内 容,而操作符的规那么是在变量右边的 - 将先进行运算,然后才是使变量的值减一,而在变 量左边的是先将变量的值减一再运算。12. 给出下面的代码: (单项选择题)1) public void modify() 2) int i, j, k;3) i = 100;4) while ( i 0 ) 5) j = i * 2;7) k = k + 1;8) i-;9) 10) 哪些行在编译时可能产生错误。A. line 4B. line 6C. line 7D.

12、 line 8答案 c这个问题在前面有关变量的类型及其作用域的问题中讨论过,局部变量在使用前必 须显式初始化,而代码中的变量 k 在使用前没有。13. 给出下面的代码片断: (单项选择题)1) String str = null;2) if (str != null) & (str.length() 10) 3)4) 5) else if (str != null) & (str.length() 5) 6)7) 哪些行将导致错误 ?A. line 1B. line 2C. line 5D. line 8答案 c此题需要将代码仔细看清楚,查询没有逻辑错误,ifelse的使用没有问题,也没 有拼

13、写错误,错误在于第 5 行的“与操作符的使用,逻辑操作符( logical operator )的 “与应该是 &,而&是位逻辑操作符( bitwise logical operator )的“与,使用的对象 不一样,逻辑操作符的“与的左右操作数都应该是布尔型( logical boolan )的值,而位 逻辑操作符的左右操作数都是整型( integral )值。14. 给出下面的代码:(单项选择题)public class Personstatic int arr = new int10;public static void main(String a) 那个表达是对的。A. 编译时将发生错

14、误。B. 编译时正确但是运行时出错。C. 输出为 0。D. 输出为 null答案 cint 型数组是类对象,它在类被加载时完成初始化,在前面题目中已经有表达,由于 是原始数据类型 int ,其初始值为 0。15. public class Parent / (多项选择题)public int addValue( int a, int b) int s;s = a+b;return s;class Child extends Parent 哪些方法可以参加类 Child 中?A. int addValue( int a, int b )/ do something.B. public void

15、addValue ()/ do something.C. public int addValue( int a )/ do something.D. public int addValue( int a, int b )throws MyException /do something. 答案 bc此题涉及方法重载( overload ),方法重写( override )以及类派生时方法重写的规 那么。方法重载的规那么是:一、参数列表必须不同,个数的不同完全可以,如果个数相同那么参 数类型的不同不能引起歧意, 例如 int 和 long,float 和 double 就不能作为唯一的类型不同;

16、二、返回值可以不同,但是不能是重载时唯一的不同点(这点和C+中不同,C+中返回类型必须一致)。方法重写发生在类继承时,子类可以重写一个父类中已有的方法,必须在返回类 型和参数列表一样时才能说是重写,否那么就是重载, java 中方法重写的一个重要而且容易被 忽略的规那么是重写的方法的访问权限不能比被重写的方法的访问权限低!重写的另一个规那么 是重写的方法不能比被重写的方法抛弃 (throws) 更多种类的异常,其抛弃的异常只能少,或 者是其子类,不能以抛弃异常的个数来判断种类,而应该是异常类层次结果上的种类。此题 中答案 a 的错误就是重写的访问权限比被重写的方法的低,而 b,C 都属于重载,

17、 d 的错误在 于比被重写的方法抛弃了更多种类的异常。16. 共有成员变量MAX_LENGTH个int型值,变量的值保持常数值100。使用一个短声明 定义这个变量。(单项选择题)A. publiC int MAX_LENGTH=100;B. final int MAX_LENGTH=100;C. final publiC int MAX_LENGTH=100;D. publiC final int MAX_LENGTH=100 。答案 dJava 中共有变量使用 publiC 定义,常量变量使用 final ,另外注意的是修饰符的顺 序,一个最完整的修饰是 publiC statiC fina

18、l int varial_a=100;这个顺序不能错,这和C+中也是不同的。而答案c恰恰错在修饰符的顺序上。17. 下面的那个 java 源文件代码片断是对的 ? (多项选择题)A. paCkage testpaCkage;publiC Class Test/do something.B. import java.io.*;paCkage testpaCkage;publiC Class Test/ do something.C. import java.io.*;Class Person/ do something.publiC Class Test/ do something.D. imp

19、ort java.io.*;import java.awt.*;publiC Class Test/ do something.答案 aCdjava 中的 paCkage 语句必须是源文件中除去说明以外的第一条语句,导入包语句可 以有几个,但是必须位于 paCkage 语句之后,其它类定义之前,一个源文件中可以有几个类, 但最多只能有一个是 publiC 的,如果有,那么源文件的文件名必须和该类的类名相同。18. 下面的哪些声明是合法的 ? (多项选择题)A. long l = 4990;B. int i = 4L;C. float f = 1.1;D. double d = 34.4;E.

20、double t = 0.9F.答案 ade 此题的考点是数字的表示法和根本数据类型的类型自动转换,没有小数点的数字被认为是 int 型数,带有小数点的数被认为是 double 型的数,其它的使用在数字后面加一个字母 表示数据类型,加I或者L是long型,加d或者D是double,加f或者F是float,可以将 低精度的数字赋值给高精度的变量,反之那么需要进行强制类型转换,例如将 int,short,byte 赋值给 long 型时不需要显式的类型转换, 反之,将 long 型数赋值给 byte,short,int 型时需 要强制转换( int a=(int)123L;)。19. 如下描述:(

21、多项选择题)public class Parent int cha nge() class Child extends Parent 哪些方法可被参加类 Child?A. public int change()B. int chang(int i)C. private int change()D. abstract int chang()答案 ab这个题目的问题在第35题中有详尽的表达。需要注意的是答案D的内容,子类可以重写父类的方法并将之声明为抽象方法,但是这引发的问题是类必须声明为抽象类, 否那么编译不能通过,而且抽象方法不能有方法体,也就是方法声明后面不能带上那两个 大括号(),这些D都

22、不能满足。20. 给出下面的代码:(单项选择题)1) class Parent 2) private String name;3) public Parent()4) 5) public class Child extends Parent 6) private String department;7) public Child() 8) public String getValue() return name; 9) public static void main(Stringarg) 10) Parent p = new Parent();11) 12) 哪些行将导致错误 ?A. line

23、 3B. line 6C. line 7D. line 8E. line 10答案 d第 8 行的 getValue() 试图访问父类的私有变量,错误,参看前面有关变量类型及其 作用域的表达21. 变量 result 是一个 boolean 型的值,下面的哪些表达式是合法的?(多项选择题)A. result = true;B. if ( result ) / do something. C. if ( result!= 0 ) / so something. D. result = 1 答案 abJava的boolean 不同于 c或者C+中的布尔值,在 java 中boolean值就是 bo

24、olean 值,不能将其它类型的值当作 boolean 处理。22. 类 Teacher 和 Student 都是类 Person 的子类(单项选择题)Person p;Teacher t;Student s;P, t 和 s 都是非空值。if(t instanceof Person) s = (Student)t; 这个 if 语句导致的结果是什么A. 将构造一个 Student 对象。B. 表达式合法。C. 编译时非法。D. 编译时合法而在运行时可能非法。答案 cinstanceof 操作符的作用是判断一个变量是否是右操作数指出的类的一个对象,由 于 java 语言的多态性使得可以用一个子

25、类的实例赋值给一个父类的变量, 而在一些情况下需 要判断变量到底是一个什么类型的对象, 这时就可以使用 instanceof 了。当左操作数是右操 作数指出的类的实例或者是子类的实例时都返回真,如果是将一个子类的实例赋值给一个父 类的变量,用 instanceof 判断该变量是否是子类的一个实例时也将返回真。此题中的 if 语 句的判断没有问题,而且将返回真,但是后面的类型转换是非法的,因为 t 是一个 Teacher 对象,它不能被强制转换为一个 Student 对象,即使这两个类有共同的父类。如果是将 t 转 换为一个 Person 对象那么可以,而且不需要强制转换。这个错误在编译时就可以

26、发现,因此编 译不能通过。23. 给出下面的类:(单项选择题)public class Samplelong length;public Sample(long l) length = l; public static void main(String arg) Sample s1, s2, s3; s1 = new Sample(21L); s2 = new Sample(21L); s3 = s2; long m = 21L;哪个表达式返回 true 。A. s1 = s2;B. s2 = s3;C. m = s1;D. s1.equals(m).答案 b前面已经表达过 =操作符和 Str

27、ing 的 equals() 方法的特点,另外 =操作符两边的操 作数必须是同一类型的(可以是父子类之间)才能编译通过。24. 给出下面有关 List 的表达式:(多项选择题)List l = new List(6,true); 哪些表达是对的。A. 在没有其它的约束的条件下该列表将有 6 行可见。B. 一行的最大字符数是 6C. 列表将允许用户多项选择。D. 列表只能有一项被选中。答案 acList 组件的该构造方法的第一个参数的意思是它的初始显式行数,如果该值为 0 那么 显示 4 行,第二个参数是指定该组件是否可以多项选择,如果值为 true 那么是可以多项选择,如果不指 定那么缺省是不

28、能多项选择。25. 给出下面的代码:(单项选择题)class Person String name,department;public void printValue()public class Teacher extends Person int salary;public void printValue()/ doing the same as in the parent method printValue()/ including print the value of name and department.下面的哪些表达式可以参加prin tValue()方法的doi ng the s

29、ame as. 局部?A. printValue();B. this.printValue();C. person.printValue();D. super.printValue().答案 d 子类可以重写父类的方法,在子类的对应方法或其它方法中要调用被重写的方法需 要在该方法前面加上 super. 进行调用,如果调用的是没有被重写的方法,那么不需要加上 super. 进行调用,而直接写方法就可以。这里要指出的是 java 支持方法的递归调用,因此答 案 a 和 b 在语法上是没有错误的,但是不符合题目代码中说明处的要求:即做和父类的方法 中相同的事情??打印名字和部门,严格来说也可以选a和

30、bo26. 给出下面的代码片断: (多项选择题)1) switch(m)2) 3)4) case 2:5)6) m为哪些值将导致default输出?A. 0B. 1C. 2D. 3答案 cd此题考察 switch 语句的用法, switch 的判断的条件必须是一个 int 型值,也可以是 byte 、short 、char 型的值, case 中需要注意的是一个 case 后面一般要接一个 break 语句才 能结束判断,否那么将继续执行其它 case 而不进行任何判断,如果没有任何值符合 case 列出 的判断,那么执行 default 的语句, default 是可选的,可以没有,如果没有

31、 default 而又没 有任何值匹配 case 中列出的值那么 switch 不执行任何语句。27. 给出下面的不完整的方法: (多项选择题)1)2) success = connect();3)if (success=-1) 4)throw new TimedOutException();5) 6)TimedOutException 不是一个 RuntimeException 。下面的哪些声明可以被参加第一 行完成此方法的声明。 ?A. public void method()B. public void method() throws ExceptionC. public void me

32、thod() throws TimedOutExceptionD. public void method() throw TimedOutExceptionE. public throw TimedOutException void method()答案 b、c如果程序在运行的过程中抛出异常, 而这个异常又不是 RuntimeException 或者 Error , 那么程序必须捕获这个异常进行处理或者声明抛弃( throws )该异常,捕获异常可以使用 trycatch() 语句,而抛弃异常在方法声明是声明,在方 法的声明后面加上 throws XxxxException ,抛弃多个异常时在

33、各异常间使用逗号( , )分隔,题目中的程序在运行时抛 出的不是一个 RuntimeException ,所有必须捕获或者抛弃,而程序又没有捕获,所有应该在 方法 声明 中声明抛 弃。 由于 Exception 是 所有 异常 的父类,所有当然 也可以代 表 RuntimeException 了。28. 下面的哪些答案可以正确表示一个十六进制数字10?(单项选择题)A. 0xAB. 0x16C. 0AD. 016 答案 a 十六进制数以 0x 开头,以 0 开头的是八进制数。 十六进制表示中的 a,b,c,d,e,f 依次为 10, 11,12, 13,14,15。29. 给出下面的代码:(单

34、项选择题)1) public class Test 2int m, n;3 public Test() 4public Test(int a) m=a; 5 public static void main(String arg) 6Test t1,t2;7int j,k;8j=0; k=0;9t1=new Test();10t2=new Test(j,k);11 12 在编译时哪行将导致一个错误 ?A. line 3B. line 5C. line 6D. line 10 答案 d第 10 行的声明调用一个带两个参数的 Test 的构造方法,而该类没有这样的构造方 法。二、 简答题1. 读如下

35、程序,说出结果, 并说明得出结果原因 ( 10 分)。public class BreakContinue public static void main(String args) for (int i = 0; i 10; i+) if(i = 3 | i = 5) continue;for (int j = 0; j 5) break;if (i = 6) break;答案: 1,2,3,4,52. 读程序,说出 j 值, 并说明得出结果原因 (10 分)。public class Test private static int j = 0;public static void main(

36、String args) methodA(0); private static boolean methodB(int k)j += k;return true;public static void methodA(int i) boolean b;b = i 10 | methodB(4);b = i 10 | methodB(8); /此处短路 method 不进行计算答案:4三、 编程题1. 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,那么继续判断第 二个字母( 20 分)。答案: 1. 程序分析:用情况语句比拟好,如果第一个字母一样,那么判断用情况语句或if 语句判

37、断第二个字母。 ?importpublic class Ex26 public static void main(String args)/ 保存用户输入的第二个字母char weekSecond;/ 将 Scanner 类例如化为 input 对象,用于接收用户输入Scanner input =new Scanner(System. in );/ 开始提示并接收用户控制台输入System. out .print( 请输入星期值英文的第一个字母,我来帮您判断是星期几: );String letter = input.next();/ 判断用户控制台输入字符串长度是否是一个字母if (lette

38、r.length() = 1)/ 利用取第一个索引位的字符来实现让 Scanner 接收 char 类型输入 char weekFirst = letter.charAt(0);switch (weekFirst) case m :/ 当输入小写字母时,利用 制台输入大小写敏感的功能switch 结构特性执行下一个带break 语句的 case 分支,以实现忽略用户控case M :System. out .println( break ;case t : 星期一 (Monday) );/ 当输入小写字母时,利用 制台输入大小写敏感的功能switch 结构特性执行下一个带break 语句的 c

39、ase 分支,以实现忽略用户控case TSystem. out .print( 由于星期二 (Tuesday) 与星期四 (Thursday)均以字母 T 开头,故需输入第二个字母才能正确判断: );letter = input.next();/ 判断用户控制台输入字符串长度是否是一个字母 if (letter.length() = 1)/ 利用取第一个索引位的字符来实现让 Scanner 接收 char 类型输入weekSecond = letter.charAt(0);/ 利用或( | )运算符来实现忽略用户控制台输入大小写敏感的功能if (weekSecond = U | weekSecond = u )System. out .println( 星期二 (Tuesday) );break ;/ 利用或( | )运算符来实现忽

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论