




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、新员工考试一、 选择题(共 30题,每题 2 分)1. 下面哪些是合法的标识符(多选题)A. $personsB. TwoUsersC. *pointD. thisE. _endline答案 A,B,E分析 Java 的标识符可以以一个 Unicode 字符,下滑线( _),美元符( $)开始,后 续字符可以是前面的符号和数字,没有长度限制,大小写敏感,不能是保留字( this 保留 字)。long 型变量(单选题)2. 哪些是将一个十六进制值赋值给一个A. long number = 345L;B. long number = 0345;C. long number = 0345L;D. l
2、ong number = 0x345L 答案 D型数以L (大小写均可,一般使用大写,因为小分析 十六进制数以 0x 开头, long写的 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 wi
3、th the wind" String standard = s.toUpperCase();D. String s = "home directory" String t = s - "directory"答案 B,DString 类型可以直接使用 +进行连接运算。String 是一种 Object ,而不是简单的字符数组,不能使用下标运算符取其值的某 错误。toUpperCase() 方法是 String 对象的一个方法,作用是将字符串的内容全部转换分析A:B: 个元素,C: 为大写并返回转换后的结果( String 类型)。 D:Stri
4、ng 类型不能进行减( - )运算,错误。4. point x 处的哪些声明是句法上合法的 (多选题)class Person private int a;public int change(int 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 =
5、 p.change(30);E. i = t.b. 答案 D,E 分析A: m没有被声明过,不能使用。B:虽然b是类Teacher的public成员变量,但是在静态方法中不能使用类中的 非静态成员。C: a 是类 Person 的 private 成员,在类外不能直接引用。D: change(int m)方法是public方法,并且返回一个int型值,可以通过类的实 例变量 p 引用并赋值给一个 int 型变量。成员变量,且是 int 型,可以通过类的实例变量 tE: b 是类 Teacher 的 public 引用并赋值给一个 int 型变量。5. 下面的代码片断(多选题) :1) publ
6、ic void create() 2) Vector myVect;3) myVect = new Vector();4) 下面的哪些陈述正确myVect 分配内存空间。Vector 对象的引用的内存空间。A. 第二行的声明不会为变量B. 第二行的声明分配一个到C. 第二行语句创建一个 Vector 类对象。D. 第三行语句创建一个 Vector 类对象。E. 第三行语句为一个 Vector 类对象分配内存空间。 答案 A,D,E分析要为一个新对象分配空间必须执行 new Xxx()调用,new调用执行以下的操作: 1为新对象分配空间并将其成员初始化为 0或者 null 。2. 执行类体中的初
7、始化。(例如在类中有一个成员声明int a=10;在第一步后a=0 , 执行到第二步后 a=10)3. 执行构造函数。4. 变量被分配为一个到内存堆中的新对象的引用。6.8,下面的哪些答案可以用以表示八进制值 8 (单选题)A. 010B. 0x10C. 08D. 0x8答案 A分析八进制值以0开头,以Ox开头的为十六进制值,八进制中不能出现数字最大只有 7。1) class Person */ 2) public void printValue(int i, int j) /*3) public void printValue(int i)/*.*/ 4) public void print
8、Value() /*.*/ public void printValue(int i) /*.*/ public static void main(String args)Person t = new Teacher(); t.printValue(10);5) public class Teacher extends Person 6)7)8)9)10)11)12) 第十行的声明将调用哪些方法 (单选题)A. on line 2B. on line 3C. on line 6D. on line 7答案 D分析 变量 t 是一个 Person 对象,但是它是用 Teacher 实例化的, 这
9、个问题涉及 java 的编译时多态和运行时多态的问题,就编译时多态来说, t 实际上是一个 Person类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制 类型转换,反之则需要进行强制类型转换, 而且被赋值的变量实际上应该是一个子类的对象) ,如果对 t 调用 了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据 t 实际指向的类型调用对应的方法,对于本例来说, t.print(10) 将调用 t 实际指向的 Teacher 类的对应方法。在 java 中,可以用一个子类的实例实例化父类的一个变量,而变 量在编译时是一个父类实例,在运行时可
10、能是一个子类实例。7. 给出下面的代码:(单选题)x 的取值在什么范围内时将打印字符串 "second" 。A. x > 0B. x > -3C. x <= -3D. x <= 0 & x > -3答案 D分析 x>0 时打印"first" ,x>-3&&x<=0 时打印"second",x<=-3 时打印"third"。 这个题目没有什么难的,只要理解 if 语句的语法就可以了。8. 下面的哪些赋值语句是不正确的(单选题)A. floa
11、t f = 11.1;B. double d = 5.3E12;C. double d = 3.14159;D. double d = 3.14D.答案 A题目:。浮点数的赋值是带有小数点的数字缺省是 double 型的,如果在浮点数后面加 f 或 者 F 则是 float ,后面加 d 或者 D 则是 double ,科学计数法形式的浮点数也是 double 型 的,而 double 的精度比 float 高,将一个高精度的 double 赋值给一个低精度的 float 时 需要进行强制类型转换,反之则不需要。9. 给出下面的不完整的类代码 : (单选题)class Person Strin
12、g name, department;int age;public Person(String n) name = n; public Person(String n, int a) name = n; age = a; public Person(String n, String d, int a) / doing the same as two arguments version of constructor/ including assignment name=n,age=adepartment = d; 下面的哪些表达式可以加到构造方法中的 "doing the same a
13、s."处?A. Person(n,a);B. this(Person(n,a);C. this(n,a);D. this(name,age).答案 C分析:在同一个类的不同构造方法中调用该类的其它构造方法需要使用this()的形式,而且必须是在构造方法的第一行调用,这个和普通的方法重载调用的方式不同,普通的方 法可以直接使用方法名加参数来调用,而且调用位置没有限制,因此答案 A 是不行的, B 的语法就是错误的, D 的错误在于在父类型的构造函数被调用前不能引用类的成员。构造 方法是一个类对象实例化的起点(虽然严格来说首先执行的并不是构造方法的第一个语 句,而是内存的分配),因此在构
14、造方法中不能将成员作为参数引用。10. public void test() /(多选题)try oneMethod(); catch (ArrayIndexOutOfBoundsException e) catch(Exception e) finally 在 oneMethod() 方法运行正常的情况下将显示什么?A. condition 1B. condition 2C. condition 3D. finally答案 ad分析:如果 try 块中的语句在执行时发生异常,则执行从该处中断而进入 catch 块,根 据异常的类型进行匹配,最前面的优先进行匹配比较,只要该异常是 catch
15、中指定的异常 的子类就匹配成功进而执行相应的 catch 中的内容,而 finally 块中的内容无论是否发生 异常都将被执行。11. 给出下面的代码:(单选题)public class Test void printValue(int m)while( -m > 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答案:
16、c此题考察的是dowhile循环和-操作符的知识,dowhile最少被执行一次, 在执行完 do 中的内容后判断 while 中的条件是否为 true ,如果为 true 的话就再执行 do 中的内容,然后再进行判断,以此类推直到 while 的判断为 false 时退出循环执行循环后 面的内容,而操作符的规则是在变量右边的 - 将先进行运算,然后才是使变量的值减 一,而在变量左边的是先将变量的值减一再运算。12. 给出下面的代码:(单选题)1) public void modify() 2) int i, j, k;3) i = 100;4) while ( i > 0 ) 5) j
17、= i * 2;6) k = k + 1;7) i-;8) 9) 哪些行在编译时可能产生错误。A. line 4B. line 6C. line 7D. 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
18、) 6)7) 哪些行将导致错误A. line 1B. line 2C. line 5D. line 8答案 c此题需要将代码仔细看清楚,查询没有逻辑错误,ifelse的使用没有问题,也没有拼写错误, 错误在于第 5 行的“与”操作符的使用, 逻辑操作符( logical operator ) 的“与”应该是 &&,而&是位逻辑操作符( bitwise logical operator )的“与”,使用的 对象不一样,逻辑操作符的“与”的左右操作数都应该是布尔型( logical boolan )的值, 而位逻辑操作符的左右操作数都是整型( integral )值。14.
19、 给出下面的代码:(单选题)public class Personstatic int arr = new int10;public static void main(String a) 那个叙述是对的。A. 编译时将发生错误。B. 编译时正确但是运行时出错。C. 输出为 0。D. 输出为 null答案 cint 型数组是类对象,它在类被加载时完成初始化,在前面题目中已经有叙述, 由于是原始数据类型 int ,其初始值为 0。15. public class Parent / (多选题)public int addValue( int a, int b) int s;s = a+b;retur
20、n s;class Child extends Parent 哪些方法可以加入类 Child 中A. int addValue( int a, int b )/ do something.B. public void 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 )以及类派生时
21、方法重写的 规则。方法重载的规则是:一、参数列表必须不同,个数的不同完全可以,如果个数相同 则参数类型的不同不能引起歧意, 例如 int 和 long,float 和 double 就不能作为唯一的类 型不同;二、返回值可以不同,但是不能是重载时唯一的不同点(这点和C+中不同,C+中返回类型必须一致)。方法重写发生在类继承时,子类可以重写一个父类中已有的方法, 必须在返回类型和参数列表一样时才能说是重写, 否则就是重载, java 中方法重写的一个 重要而且容易被忽略的规则是重写的方法的访问权限不能比被重写的方法的访问权限低! 重写的另一个规则是重写的方法不能比被重写的方法抛弃 (throws
22、) 更多种类的异常,其抛 弃的异常只能少,或者是其子类,不能以抛弃异常的个数来判断种类,而应该是异常类层 次结果上的种类。此题中答案 a 的错误就是重写的访问权限比被重写的方法的低,而 b,C 都属于重载, d 的错误在于比被重写的方法抛弃了更多种类的异常。16. 共有成员变量MAX_LENG是一个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
23、 MAX_LENGTH=100 。答案 dJava 中共有变量使用 publiC 定义, 常量变量使用 final ,另外注意的是修饰符的 顺序,一个最完整的修饰是 publiC statiC final 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/ d
24、o something.C. import java.io.*;Class Person/ do something.publiC Class Test/ do something.D. import java.io.*;import java.awt.*;publiC Class Test/ do something.答案 aCdjava 中的 paCkage 语句必须是源文件中除去说明以外的第一条语句,导入包语句 可以有几个,但是必须位于 paCkage 语句之后,其它类定义之前,一个源文件中可以有几 个类,但最多只能有一个是 publiC 的,如果有,则源文件的文件名必须和该类的类名相同
25、。18. 下面的哪些声明是合法的 (多选题)A. long l = 4990;B. int i = 4L;C. float f = 1.1;D. double d = 34.4;E. double t = 0.9F. 答案 ade 此题的考点是数字的表示法和基本数据类型的类型自动转换,没有小数点的数字被 认为是 int 型数,带有小数点的数被认为是 double 型的数,其它的使用在数字后面加一 个字母表示数据类型,加I或者L是long型,加d或者D是double ,加f或者F是float , 可以将低精度的数字赋值给高精度的变量,反之则需要进行强制类型转换,例如将 int,short,byt
26、e byte,short,int赋值给 long 型时不需要显式的类型转换,反之,将 long 型数赋值给 型时需要强制转换( int a=(int)123L;)。19. 如下描述:(多选题) public class Parent int cha nge() class Child extends Parent 哪些方法可被加入类 ChildA. public int change()B. int chang(int i)C. private int change()D. abstract int chang() 答案 ab这个题目的问题在第35题中有详尽的叙述。需要注意的是答案D的内容,子
27、类可以重写父类的方法并将之声明为抽象方法,但是这引发的问题是类必须声明为抽 象类,否则编译不能通过,而且抽象方法不能有方法体,也就是方法声明后面不能带 上那两个大括号(),这些D都不能满足。20. 给出下面的代码:(单选题)1) class Parent 2)3)4)private String name; public Parent() 2) public class Child extends Parent 6)7)8)9)10)11)12) private String department;public Child() public String getValue() return n
28、ame; public static void main(String arg) Parent p = new Parent();哪些行将导致错误A. line 3B. line 6C. line 7D. line 8E. line 10 答案 d第 8 行的 getValue() 试图访问父类的私有变量,错误,参看前面有关变量类型及 其作用域的叙述 21.值,22.变量 "result" 是一个 boolean 型的值,下面的哪些表达式是合法的?(多选题)A. result = true;B. if ( result ) / do something. C. if ( r
29、esult!= 0 ) / so something. D. result = 1 答案 abJava的boolean不同于 c或者C+中的布尔值,在java 中boolean值就是 boolean 不能将其它类型的值当作 boolean 处理。类 Teacher 和 Student 都是类 Person 的子类(单选题)Person p;Teacher t; Student s; P, t 和 s 都是非空值。 if(t instanceof Person) s = (Student)t; 这个 if 语句导致的结果是什么A. 将构造一个 Student 对象。B. 表达式合法。C. 编译时
30、非法。D. 编译时合法而在运行时可能非法。答案 cinstanceof 操作符的作用是判断一个变量是否是右操作数指出的类的一个对象, 由于 java 语言的多态性使得可以用一个子类的实例赋值给一个父类的变量,而在一些情 况下需要判断变量到底是一个什么类型的对象,这时就可以使用 instanceof 了。当左操 作数是右操作数指出的类的实例或者是子类的实例时都返回真,如果是将一个子类的实例 赋值给一个父类的变量,用 instanceof 判断该变量是否是子类的一个实例时也将返回真。 此题中的 if 语句的判断没有问题,而且将返回真,但是后面的类型转换是非法的,因为 t 是一个 Teacher 对
31、象,它不能被强制转换为一个 Student 对象,即使这两个类有共同的父 类。如果是将 t 转换为一个 Person 对象则可以,而且不需要强制转换。这个错误在编译 时就可以发现,因此编译不能通过。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;
32、 哪个表达式返回 true 。A. s1 = s2;B. s2 = s3;C. m = s1;D. s1.equals(m). 答案 b前面已经叙述过 =操作符和 String 的 equals() 方法的特点,另外 =操作符两边 的操作数必须是同一类型的(可以是父子类之间)才能编译通过。24. 给出下面有关 List 的表达式:(多选题)List l = new List(6,true);哪些叙述是对的。A. 在没有其它的约束的条件下该列表将有 6 行可见。B.一行的最大字符数是 6C.列表将允许用户多选。D.列表只能有一项被选中。ac答案List 组件的该构造方法的第一个参数的意思是它的初
33、始显式行数,如果该值为 0 则显示 4 行,第二个参数是指定该组件是否可以多选,如果值为 true 则是可以多选,如 果不指定则缺省是不能多选。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
34、 of name and department. 下面的哪些表达式可以加入 printValue() 方法的 "doing the same as." 部分A. printValue();B. this.printValue();C. person.printValue();D. super.printValue().答案 d 子类可以重写父类的方法,在子类的对应方法或其它方法中要调用被重写的方法 需要在该方法前面加上” super. ”进行调用,如果调用的是没有被重写的方法,则不需要 加上 super. 进行调用, 而直接写方法就可以。 这里要指出的是 java 支持方法
35、的递归调用, 因此答案 a 和 b 在语法上是没有错误的,但是不符合题目代码中说明处的要求:即做和父 类的方法中相同的事情打印名字和部门,严格来说也可以选 26. 给出下面的代码片断:1) switch(m)2) 3)4) case 2:5)6) m为哪些值将导致A. 0B. 1C. 2D. 3 答案 cd此题考察 switcha和b。多选题)"default" 输出success = connect();if (success=-1) throw new TimedOutException();语句的用法, switch 的判断的条件必须是一个 int 型值,也可 以是
36、byte 、short 、char 型的值, case 中需要注意的是一个 case 后面一般要接一个 break 语句才能结束判断,否则将继续执行其它 case 而不进行任何判断,如果没有任何值符合 case列出的判断,则执行default的语句default是可选的,可以没有,如果没有default 而又没有任何值匹配 case 中列出的值则 switch 不执行任何语句。27. 给出下面的不完整的方法: (多选题)1)2) 3)4)5) 6) TimedOutException 不是一个 RuntimeException 。下面的哪些声明可以被加入第 一行完成此方法的声明。A. publ
37、ic void method()B. public void method() throws ExceptionC. public void method() throws TimedOutExceptionD. public void method() throw TimedOutExceptionE. public throw TimedOutException void method()答案 b、c如果程序在运行的过程中抛出异常,而这个异常又不是 RuntimeException 或者 Error ,那么程序必须捕获这个异常进行处理或者声明抛弃( throws )该异常,捕获异常 可以使
38、用 trycatch() 语句,而抛弃异常在方法声明是声明,在方法的声明后面加上 throws XxxxException ,抛弃多个异常时在各异常间使用逗号( , )分隔,题目中的程序 在运行时抛出的不是一个 RuntimeException ,所有必须捕获或者抛弃, 而程序又没有捕获, 所有应该在方法声明中声明抛弃。由于 Exception 是所有异常的父类,所有当然也可以代表 RuntimeException 了。28. 下面的哪些答案可以正确表示一个十六进制数字 10?(单选题)A. 0xAB. 0x16C. 0AD. 016 答案 a十六进制数以 0x 开头,以 0 开头的是八进制数
39、。十六进制表示中的 a,b,c,d,e,f 依次为 10, 11,12,13, 14,15。29. 给出下面的代码:(单选题)int m, n;public Test() public Test(int a) m=a; public static void main(String arg) Test t1,t2;int j,k; j=0; k=0;t1=new Test();t2=new Test(j,k);1) public class Test 23456789101112 在编译时哪行将导致一个错误A. line 3B. line 5C. line 6D. line 10 答案 d方法。
40、1.第 10 行的声明调用一个带两个参数的 Test 的构造方法,而该类没有这样的构造简答题读如下程序,说出结果, 并说明得出结果原因 (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 < i; +j) if (i + j > 5) break;if (i = 6) break; 答案: 1,2,3,4,52. 读程序,说出 j 值, 并说明
41、得出结果原因 (10 分)。public class Test private static int j = 0;public static void main(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 不进行1.计算答案:4编程题 请输入星期几的第一个字母
42、来判断一下是星期几,如果第一个字母一样,则继续判断 第二个字母( 20 分)。答案:importpublicpublic1. 程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或class Ex26 static void main(String args)if 语句判断第二个字母。/ 保存用户输入的第二个字母 char weekSecond;/ 将 Scanner 类示例化为 input 对象,用于接收用户输入 Scanner input = new Scanner(System. in );/ 开始提示并接收用户控制台输入" );System. out .print
43、(" 请输入星期值英文的第一个字母,我来帮您判断是星期几:String letter = input.next();/ 判断用户控制台输入字符串长度是否是一个字母if (letter.length() = 1)类型输入/ 利用取第一个索引位的字符来实现让 Scanner 接收 char char weekFirst = letter.charAt(0);switch (weekFirst)case 'm/ 当输入小写字母时,利用 控制台输入大小写敏感的功能switch 结构特性执行下一个带break 语句的case分支,以实现忽略用户case 'M' :Sys
44、tem. out .println( break ;" 星期一 (Monday)" );case 't'/ 当输入小写字母时,利用 控制台输入大小写敏感的功能switch 结构特性执行下一个带break 语句的case分支,以实现忽略用户case 'T'System. out .print( " 由于星期二 (Tuesday) 与星期四 二个字母才能正确判断: " );letter = input.next();/ 判断用户控制台输入字符串长度是否是一个字母if (letter.length() = 1)/ 利用取第一个索引位的字符来实现让 Scanner 接收 char 类型输入 weekSecond = letter.charAt(0);/ 利用或( | )运算符来实现忽略用户控制台输入大小写敏感的功能 if (weekSecond ='U' | weekSecond ='u' )out .println( " 星期二 (Tuesday)" );(Thursday)均以字母 T 开头,故需输入第System. break ;/ 利用或elseSystem. break ;/ 控制台错误提示 elseSystem.break else
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公司团队户外拓展活动合作协议
- 水利行业智能化水利工程运行与管理安全性方案
- 系统学习的2025年工程经济试题及答案
- 游戏赛事组织与执行方案
- 2025年公共关系学常见名词定义及试题及答案
- 物理光学及声学考点习题
- 经济学的实践案例试题及答案
- 高校成本核算体系构建与应用
- 行政管理结构调整试题及答案
- 住院医师考试试题及答案
- Java高级软件开发面试题及答案
- 3.4 羧酸的衍生物 课件高二下学期化学人教版(2019)选择性必修3
- 2025年消防安全培训考试试卷及完整答案
- 2025年信息科技与创新能力考核试题及答案
- 2025年智慧城市建设相关知识考试试卷及答案
- 2025年江西南昌初三一模中考语文试卷试题(含答案详解)
- 2025年吉林省长春市中考一模历史试题(原卷版+解析版)
- 2024年安徽演艺集团有限责任公司招聘笔试真题
- 《宝马汽车营销策略》课件
- 5why培训试题及答案
- 雾化操作流程与注意事项
评论
0/150
提交评论