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

下载本文档

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

文档简介

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

2、以0 x型数以因为小写的l和数字13. 下面的哪些程序片断可能导致错误? (多选题)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 = home directory;String t = s - directory;答案 B,D分析A:Strin

3、g类型可以直接使用+进行连接运算。是一种其值的某个元素,错误。C:toUpperCase()方法是String对象的一个方法,作用是将字符串的内容全部转换为大写并返回转换后的结果(StringD:String类型不能进行减(-)运算,错误。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)Pers

4、on 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成员变量,但是在静态方法中不能使用类中的非静态成员。C:a是类Person的private成员,在类外不能直接引用。D:change(int m)方法是public方法,并且返回一个int型值,可以通过类的实例变量p引用并赋值给一个int型变量。E:b是类Teacher

5、的public成员变量,且是int型,可以通过类的实例变量t引用并赋值给一个int型变量。5. 下面的代码片断(多选题):1) public void create() 2) Vector myVect;3) myVect = new Vector();4) 下面的哪些陈述正确?A. 第二行的声明不会为变量myVect分配内存空间。B. 第二行的声明分配一个到Vector对象的引用的内存空间。C. 第二行语句创建一个Vector类对象。D. 第三行语句创建一个Vector类对象。E. 第三行语句为一个Vector类对象分配内存空间。答案 A,D,E分析要为一个新对象分配空间必须执行new Xx

6、x()调用,new调用执行以下的操作:1为新对象分配空间并将其成员初始化为0或者null。int a=10;在第一步后a=0 ,执行到第二步后a=10)3执行构造函数。4变量被分配为一个到内存堆中的新对象的引用。6. 下面的哪些答案可以用以表示八进制值8? (单选题)A. 010B. 0 x10C. 08D. 0 x8答案 A分析八进制值以0开头,以0 x开头的为十六进制值,八进制中不能出现数字8,最大只有7。7.1) class Person 2)3)public void printValue(int i, int j) /*/ public void printValue(int i)/

7、*.*/ 4) 5) public class Teacher extends Person 6)public void printValue() /*.*/ public void printValue(int i) /*.*/public static void main(String args)Person t = new Teacher();t.printValue(10);7)8)9)10)11)12) 第十行的声明将调用哪些方法? (单选题)A. on line 2B. on line 3C. on line 6D. on line 7答案 D分析 变量t是一个Person对象,但

8、是它是用Teacher实例化的,这个问题涉及到 java 的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制类型转换,反之则需要果对 t 调用了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据 t 实际指向的类型调用对应的方法,对于本例来说,t.print(10)将调用t实际指向的Teacherjava时可能是一个子类实例。8. if (x0) System.out.println(first); else if (x-3) System.out.println(

9、second); else System.out.println(third); x的取值在什么范围内时将打印字符串second。A. x 0B. x -3C. x = -3D. x -3答案 D分析 x0时打印third。这个题目没有什么难的,只要理解if语句的语法就可以了。9. 下面的哪些赋值语句是不正确的(单选题)A. float f = 11.1;B. double d = 5.3E12;C. double d = 3.14159;D. double d = 3.14D.答案 A浮点数的赋值是带有小数点的数字缺省是double型的,如果在浮点数后面加f或者F则是d或者D则是点数也是do

10、uble型的,而double的精度比float高,将一个高精度的double赋值给一个低精度的float时需要进行强制类型转换,反之则不需要。10.给出下面的不完整的类代码: (单选题)class Person String 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 ver

11、sion of constructor/ including assignment name=n,age=adepartment = d;下面的哪些表达式可以加到构造方法中的doing the same A. Person(n,a);B. this(Person(n,a);C. this(n,a);D. this(name,age).答案 C分析:在同一个类的不同构造方法中调用该类的其它构造方法需要使用this()因此答案A是不行的,B的语法就是错误的,D的错误在于在父类型的构造函数法中不能将成员作为参数引用。11.public void test() / (多选题)try oneMethod

12、();System.out.println(condition 1); catch (ArrayIndexOutOfBoundsException e) System.out.println(condition 2); catch(Exception e) System.out.println(condition 3); finally System.out.println(finally);在oneMethod()方法运行正常的情况下将显示什么?A. condition 1B. condition 2C. condition 3D. finally答案 ad分析:如果 try 块中的语句在执

13、行时发生异常,则执行从该处中断而进入catch块,根据异常的类型进行匹配,最前面的优先进行匹配比较,只要该异常是catch中指定的异常的子类就匹配成功进而执行相应的catch中的内容,而finally块中的内容无论是否发生异常都将被执行。12.public class Test void printValue(int m)do System.out.println(The value is+m);while( -m 10 )public static void main(String arg) int i=10;Test t= new Test();t.printValue(i);输出将是什么

14、?A. The value is 8B. The value is 9C. The value is 10D. The value is 11答案:c此题考察的是do while循环和 - 最少被执do中的内容后判断while中的条件是否为true的话就再执行 do 中的内容,然后再进行判断,以此类推直到 while 的判断为false 时退出循环执行循环后面的内容,而操作符的规则是在变量右边的 -再运算。13.1) public void modify() 2) int i, j, k;3) i = 100;4) while ( i 0 ) 5) j = i * 2;6) System.ou

15、t.println ( The value of j is + j );7) k = k + 1;8) i-;9) 10) 哪些行在编译时可能产生错误。A. line 4B. line 6C. line 7D. line 8答案 c在使用前必须显式初始化,而代码中的变量k在使用前没有。14.1) String str = null;2) if (str != null) & (str.length() 10) 3)4) System.out.println(more than 10);5) else if (str != null) & (str.length() 5) 6)System.ou

16、t.println(less than 5);7) 8) else System.out.println(end); 哪些行将导致错误?A. line 1B. line 2C. line 5D. line 8答案 c此题需要将代码仔细看清楚,查询没有逻辑错误,if else的使用没有问题,也没有拼写错误,错误在于第5行的“与”操作符的使用,逻辑操作符(logicallogicalboolan)的值,而位逻辑操作符的左右操作数都是整型(integral)值。15.public class Personstatic int arr = new int10;public static void ma

17、in(String a) System.out.println(arr1;)那个叙述是对的。A. 编译时将发生错误。B. 编译时正确但是运行时出错。C. 输出为0。D. 输出为null答案 cint型数组是类对象,它在类被加载时完成初始化,在前面题目中已经有叙述,由于是原始数据类型int,其初始值为0。16.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( i

18、nt 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 /dosomething.答案 bc此题涉及方法重载(override)以及类派生时方法重写的规则。方法重载的规则是:一、参数列表必须不同,个数的不同完全可以,如果个数相同则参数类型的不同不能引起歧意,例如int 和long,float和double就不能

19、作为唯一的类型不同;二、返回值可以不同,但是不能是重载时唯一的不同点(这点和一样时才能说是重写,否则就是重载,java 中方法重写的一个重要而且容易被a的错误就是重写的访问权限比被重写的方法的低,而b,c的错误在于比被重写的方法抛弃了更多种类的异常。17.共有成员变量MAX_LENGTH是一个intA. 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定义

20、,常量变量使用final,另外注意的publicstaticfinalintvarial_a=100;这个顺序不能错,这和c+中也是不同的。而答案c恰恰错在修饰符的顺序上。18.下面的那个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

21、 Test/ do something.D. import java.io.*;import java.awt.*;public class Test/ do something.答案 acdjava中的packagepackage源文件中可以有几个类,但最多只能有一个是public的,如果有,则源文件的文件名必须和该类的类名相同。19.下面的哪些声明是合法的? (多选题)A. long l = 4990;B. int i = 4L;C. float f = 1.1;D. double d = 34.4;E. double t = .答案 ade的数字被认为是int型数,带有小数点的数被认为是

22、double型的数,其它的使用在数字后面加一个字母表示数据类型,加l或者L是long型,加d或者D是double,加f或者F是float,可以将低精度的数字赋值给高精度的变量,反之int,short,byte赋值给long型时不需要显式long型数赋值给byte,short,int20.public class Parent int change() class Child extends Parent 哪些方法可被加入类Child?A. public int change()B. int chang(int i)C. private int change()D. abstract int c

23、hang()答案 ab这个题目的问题在第 35 题中有详尽的叙述。需要注意的是答案 D的内容,子类可以重写父类的方法并将之声明为抽象方法,但是这引发的问D都不能满足。21.1) class Parent 2)private String name;3)4)public Parent()5) public class Child extends Parent 6)7)8)private String department;public Child() public String getValue() return name; public static void main(String arg)

24、 Parent p = new Parent();9)10)11)12) 哪些行将导致错误?A. line 3B. line 6C. line 7D. line 8E. line 10答案 d第8行的量类型及其作用域的叙述22.变量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值就

25、是boolean值,不能将其它类型的值当作boolean处理。23.类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语言的多态性使得可以用一个子类的实例赋值给一个父类使用instanc

26、eof了。当左操作数是右操作数指出的类的实例或者是子类的实例时都返回真,如果是将一个子类的实例赋值给一个父类的变量,用 instanceof判断该变量是否是子类的一个实例时也将返回真。此题中的if语句的判断没有问题,而且将返回真,但是后面的类型转换是非法的,因为 t 是一个 TeacherStudent果是将t转换为一个Person对象则可以,而且不需要强制转换。这个错误在编译时就可以发现,因此编译不能通过。24.public class Samplelong length;public Sample(long l) length = l; public static void main(St

27、ring 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前面已经叙述过=操作符和String的equals()方法的特点,另外=操作符两边的操作数必须是同一类型的(可以是父子类之间)才能编译通过。25.给出下面有关ListList l = new List(6,true); 6 6 答案 acList该值为0则显示4行,第二个参数是指定该组件是否

28、可以多选,如果值为true则是可以多选,如果不指定则缺省是不能多选。26.class Person String name,department;public void printValue()System.out.println(name is +name);System.out.println(department is +department);public class Teacher extends Person int salary;public void printValue()/ doing the same as in the parent method printValue(

29、)/ including print the value of name and department.System.out.println(salary is +salary);下面的哪些表达式可以加入 printValue()方法的doing the sameas.部分?A. printValue();B. this.printValue();C. person.printValue();D. super.printValue().答案 d的方法,则不需要加上 super.进行调用,而直接写方法就可以。这里要指出的是java支持方法的递归调用,因此答案a和b在语法上是没有错误的,但是不门,

30、严格来说也可以选a和b。27.1) switch(m)2) case 0: System.out.println(case 0);3)case 1: System.out.println(case 1); break;case 2:4)5)default: System.out.println(default);6) m为哪些值将导致default输出?A. 0B. 1C. 2D. 3答案 cd此题考察switch语句的用法,switch的判断的条件必须是一个int型值,也可以是中需要注意的是一个case后面一般要接一个break语句才能结束判断,否则将继续执行其它case而不进行任cased

31、efault是可选的,可以没有,如果没有default而又没有任何值匹配case中列出的值则switch不执行任何语句。28.1)2) success = connect();3) if (success=-1) 4)throw new TimedOutException();5) 6)TimedOutException 不是一个被加入第一行完成此方法的声明。?A. public void method()B. public void method() throws ExceptionC. public void method() throws TimedOutExceptionD. publ

32、ic void method() throw TimedOutExceptionE. public throw TimedOutException void method()答案 b、cRuntimeException或者常,捕获异常可以使用 trycatch()语句,而抛弃异常在方法声明是声明,在方法的声明后面加上 throws XxxxException,抛弃多个异常时在各异常间使用逗号(,)分隔,题目中的程序在运行时抛出的不是一个RuntimeException,所有必须捕获或者抛弃,而程序又没有捕获,所有应该在方法声明中声明抛弃。由于ExceptionRuntimeException了

33、。29.下面的哪些答案可以正确表示一个十六进制数字10?(单选题)A. 0 xAB. 0 x16C. 0AD. 016答案 a十六进制数以0 x开头,以0开头的是八进制数。十六进制表示中的a,b,c,d,e,f依次为10,11,12,13,14,15。30.1) public class Test 2345int m, n;public Test() public Test(int a) m=a; public static void main(String arg) 6Test t1,t2;int j,k;789j=0; k=0;t1=new Test();t2=new Test(j,k);

34、101112 在编译时哪行将导致一个错误?A. line 3B. line 5C. line 6D. line 10答案 d第10行的声明调用一个带两个参数的Test样的构造方法。二、 简答题1. 读如下程序,说出结果,并说明得出结果原因(10 public class BreakContinue public static void main(Stringargs) for (int i =0; i 10; i+) if(i = 3 | i = 5)continue;for (int j =0; j 5)break;System.out.println(i +j);if(i = 6)brea

35、k;答案:1,2,3,4,52. 读程序,说出 j 值,并说明得出结果原因(10 public class Test private static int j =0;public static void main(Stringargs) methodA(0);System.out.println(j);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. 请输入星期几的第一个字母来判断一下是星期几,如果第一个字母一样,则继续判断第二个字母(20 答案:1.程序分析:用情况语句比较好,如果第一个字母一样,则判断用情况语句或 if 语句判断第二个字母。 / /Scanner类示例化为input= Scanner(System./out.print(请输入星期值英文的第一个字母,我来帮您判断是星期几:=/ /利用取第一个索引位的字符来实现让

温馨提示

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

评论

0/150

提交评论