java基础考试题及答案_第1页
java基础考试题及答案_第2页
java基础考试题及答案_第3页
java基础考试题及答案_第4页
java基础考试题及答案_第5页
免费预览已结束,剩余35页可下载查看

下载本文档

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

文档简介

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

2、头,long型数以L (大小写均可,一般使用大写,因为小写的1和数字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 =();D. String s = "home directory”;St

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

4、 )public class Teacher extends Person (public int b;public static void main(String arg)Person p = new Person();Teacher t = new Teacher();int i;1 = m;8. i = b;D. i = (30);E. i =.答案D,E分析A: m没有被声明过,不能使用。B:虽然b是类Teacher的public成员变量,但是在静态方法中不能使用类中的 非静态成员。C: a是类Person的private成员,在类外不能直接引用。D: change(int m)方法是

5、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.第二行的声明不会为变量myVect分配内存空间。B.第二行的声明分配一个到Vector对象的引用的内存空间。C.第二行语句创建一个Vector类对象。D.第三行语句创建一个Vector类对象。E.

6、第三行语句为一个Vector类对象分配内存空间。答案A, D,E分析要为一个新对象分配空间必须执行new Xxx()调用,new调用执行以下的操作:1 .为新对象分配空间并将其成员初始化为0或者nullo2 .执行类体中的初始化。(例如在类中有一个成员声明inta=10;在第一步后a=0 , 执行到第二步后a=10)3 .执行构造函数。4 .变量被分配为一个到内存堆中的新对象的引用。6.下面的哪些答案可以用以表示八进制值8 (单选题)A. 010C. 08D. 0x8答案A分析 八进制值以0开头,以Ox开头的为十六进制值,八进制中不能出现数字 8,最大只有7。1) class Person 2

7、) public void printValue(int i, int j) /#*/ 3) public void printValue(int i)/*. */ 4) 5) public class Teacher extends Person (6) publicvoidprintValue () /*. */ 7) publicvoidprintValue (int i) /*. */8) publicstatic void main(String args)9) Person t = new Teacher();10) (10);11) 笫十行的声明将调川哪些方法(单选题)A. on

8、 line 2B. on line 3C. on line 6D. on line 7答案D分析 变量t是一个Person对象,但是它是用Teacher实例化的,这个问题涉及 到java的编译时多态和运行时多态的问题,就编译时多态来说,t实际上是一个Person 类,这涉及到类型的自动转换(将一个子类的实例赋值给一个父类的变量是不用进行强制 类型转换,反之则需要进行强制类型转换,而且被赋值的变量实际上应该是一个子类的对象),如果对t调用 了子类中新增的方法则造成编译时错误编译将不能通过,而在运行时,运行时系统将根据 t实际指向的类型调用对应的方法,对于本例来说,(10)将调用t实际指向的Tea

9、cher类 的对应方法。在java中,可以用一个子类的实例实例化父类的一个变量,而变量在编译时 是一个父类实例,在运行时可能是一个子类实例。7.给出下面的代码:(单选题)x的取值在什么范围内时将打印字符串second"。A. x > 0B. x > -3C. X <= -3D. x <= 0 & x > -3答案D分析 x>0 时打印析irst", x-3&&x<二0 时打印"second", x<=-3 时打印"third"。 这个题目没有什么难的,只要理解if

10、语句的语法就可以了。8 .下面的哪些赋值语句是不正确的(单选题)A. float f =;B. doubled=;C. doubled=;D. doubled=.答案A题目:。浮点数的赋值是带有小数点的数字缺省是double型的,如果在浮点数后面加f或 者F则是float,后面加d或者D则是double,科学计数法形式的浮点数也是double型的, 而double的精度比float高,将一个高精度的double赋值给一个低精度的float时需要 进行强制类型转换,反之则不需要。9 .给出下面的不完整的类代码:(单选题)class Person String name, department;i

11、nt 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) .“处A. Person (n, a);B. this (Person (n, a);C. this (n, a);D. this (name, age).答案c分析:在同一个类的不同构造方法中调用该类的其它构造方法需要使用this ()的形式, 而且必须是在构造方法的第一行调川,这个和普通的方法重载调用的方式不同,普通的方 法

12、可以直接使用方法名加参数来调用,而且调用位置没有限制,因此答案A是不行的,B 的语法就是错误的,D的错误在于在父类型的构造函数被调用前不能引用类的成员。构造 方法是一个类对象实例化的起点(虽然严格来说首先执行的并不是构造方法的第一个语句, 而是内存的分配),因此在构造方法中不能将成员作为参数引用。public void test() condition 1B. condition 2C. condition 3D. finally答案ad分析:如果try块中的语句在执行时发生异常,则执行从该处中断而进入catch块,根 据异常的类型进行匹配,最前面的优先进行匹配比较,只要该异常是catch中指

13、定的异常 的子类就匹配成功进而执行相应的catch中的内容,而finally块中的内容无论是否发生 异常都将被执行。10 .给出下面的代码:(单选题)public class Test void printValue(int m)while( 一m > 10 )public static void main (String argU) int i=10;Test t= new Test ();(i);输出将是什么A. The value is 8B. The value is 9C. The value is 10D. The value is 11答案:c此题考察的是do- while

14、循环和"操作符的知识,do-while最少被执行一次, 在执行完do中的内容后判断while中的条件是否为true,如果为true的话就再执行do 中的内容,然后再进行判断,以此类推直到while的判断为false时退出循环执行循环后 面的内容,而一操作符的规则是在变量右边的一将先进行运算,然后才是使变量的值减一, 而在变量左边的是先将变量的值减一再运算。11 .给出下面的代码:(单选题)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

15、) i-;9) 10) 哪些行在编译时可能产生错误。A. line 4B. line 6C. line 7D. line 8答案c这个问题在前面有关变量的类型及其作用域的问题中讨论过,局部变量在使用前 必须显式初始化,而代码中的变量k在使用前没有。12 .给出下面的代码片断:(单选题)1) String str = null;13 .给出下面的代码:(单选题)public class Personstatic int arr = new int10;public static void main(String a) )那个叙述是对的。A.编译时将发生错误。A. 编译时正确但是运行时出错。C.输

16、出为0。D.输出为null答案cint型数组是类对象,它在类被加载时完成初始化,在前面题目中已经有叙述,由 于是原始数据类型int,其初始值为0。public class Parent int addValue( int a, int b ). B. public void addValue () .)C. public int addValue( int a ) . D. public int addValue( int a, int b )throws MyException . 答案be此题涉及方法重载(overload),方法重写(override)以及类派生时方法重写的 规则。方法重

17、载的规则是:一、参数列表必须不同,个数的不同完全可以,如果个数相同 则参数类型的不同不能引起歧意,例如int和long, float和double就不能作为唯一的类 型不同;二、返回值可以不同,但是不能是重教时唯一的不同点(这点和C+中不同,C+ 中返回类型必须一致)。方法重写发生在类继承时,子类可以重写一个父类中已有的方法, 必须在返回类型和参数列表一样时才能说是重写,否则就是重载,java中方法重写的一个 重要而且容易被忽略的规则是重写的方法的访问权限不能比被重写的方法的访问权限低! 重写的另一个规则是重写的方法不能比被重写的方法抛弃(throws)更多种类的异常,其抛 弃的异常只能少,或

18、者是其子类,不能以抛弃异常的个数来判断种类,而应该是异常类层 次结果上的种类。此题中答案a的错误就是重写的访问权限比被重写的方法的低,而b,c 都属于重载,d的错误在于比被重写的方法抛弃了更多种类的异常。14 .共有成员变量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中共

19、有变量使用public定义,常量变量使用final,另外注意的是修饰符的 顺序,一个最完整的修饰是public static final int varial_a=100;这个顺序不能错, 这和C+中也是不同的。而答案c恰恰错在修饰符的顺序上。15 .下面的那个java源文件代码片断是对的(多选题)A. package testpackage;public class Test .B. import . *;package testpackage;public class Test . C. import . *;class Person.public class Test . D. impo

20、rt . *;import . *;public class Test . 答案acdjava中的package语句必须是源文件中除去说明以外的第一条语句,导入包语句可以有几个,但是必须位于package语句之后,其它类定义之前,一个源文件中可以有儿 个类,但最多只能有一个是public的,如果有,则源文件的文件名必须和该类的类名相同。16 .下面的哪些声明是合法的(多选题)A. long 1 = 4990;B. int i = 4L;C. float f =;D. double d =;E. double t = 0. 9F.答案ade此题的考点是数字的表示法和基本数据类型的类型自动转换,没

21、有小数点的数字被 认为是int型数,带有小数点的数被认为是double型的数,其它的使用在数字后面加一个 字母表示数据类型,加1或者L是long型,加d或者D是double,加f或者F是float, 可以将低精度的数字赋值给高精度的变量,反之则需要进行强制类型转换,例如将 int, short, byte赋值给long型时不需要显式的类型转换,反之,将long型数赋值给 byte, short, int 型时需要强制转换(int a=(int) 123L;)。17 .如下描述:(多选题)public class Parent class Child extends Parent 哪些方法可被加

22、入类ChildA. public int change() B. int chang (int i) C. private int change () D. abstract int chang () 答案ab这个题目的问题在第35题中有详尽的叙述。需要注意的是答案D的内容,子 类可以重写父类的方法并将之声明为抽象方法,但是这引发的问题是类必须声明为抽 象类,否则编译不能通过,而且抽象方法不能有方法体,也就是方法声明后面不能带 上那两个大括号(),这些D都不能满足。18 .给出下面的代码:(单选题)1) class Parent 2) private String name;3) public

23、 Parent () 4) 5) public class Child extends Parent 6) private String department;7) public Child() 8) public String getValueO return name; 9) public static void main(Stringarg) 10) Parent p = new Parent();ID 12) )哪些行将导致错误A. line 3B. line 6C. line 7D. line 8E. line 10答案d第8行的getValueO试图访问父类的私有变量,错误,参看前

24、面有关变量类型及 其作用域的叙述19 .变量result”是一个boolean型的值,下面的哪些表达式是合法的(多选题)A. result = true;B. if ( result ) . C. if ( result!= 0 ) . D. result = 1答案abJava的boolean不同于c或者c+中的布尔值,在java中boolean值就是boolean 值,不能将其它类型的值当作boolean处理。20 .类Teacher和Student都是类Person的子类(单选题)Person p;Teacher t;Student s;P, t和s都是非空值。if (t instanc

25、eof Person) s = (Student)t; 这个if语句导致的结果是什么A.将构造一个Student对象。B.表达式合法。C.编译时非法。D.编译时合法而在运行时可能非法。答案cinstanceof操作符的作用是判断一个变量是否是右操作数指出的类的一个对象, 由于java语言的多态性使得可以用一个子类的实例赋值给一个父类的变量,而在一些情况 下需要判断变量到底是一个什么类型的对象,这时就可以使用instanceof 了。当左操作数 是右操作数指出的类的实例或者是子类的实例时都返回真,如果是将一个子类的实例赋值 给一个父类的变量,用instanceof判断该变量是否是子类的一个实例时

26、也将返回真。此题 中的if语句的判断没有问题,而且将返回真,但是后面的类型转换是非法的,因为t是一 个Teacher对象,它不能被强制转换为一个Student对象,即使这两个类有共同的父类。 如果是将t转换为一个Person对象则可以,而且不需要强制转换。这个错误在编译时就可 以发现,因此编译不能通过。21.给出下面的类:(单选题)public class Samplelong length;public Sample(long 1) length = 1; public static void main(String arg)Sample si, s2, s3;51 = new Sample

27、(21L);52 = new Sample(2IL);53 s2;54 ng m = 21L;)哪个表达式返回trueoA. si = s2;B. s2 二二 s3;C. m = si;D. (m).答案b前面已经叙述过=操作符和String的equals。方法的特点,另外=操作符两边的 操作数必须是同一类型的(可以是父子类之间)才能编译通过。22 .给出下面有关List的表达式:(多选题)List 1 = new List (6, true);哪些叙述是对的。A.在没有其它的约束的条件下该列表将有6行可见。B. 一行的最大字符数是6C.列表将允许用户多选。D.列表只能有一项被选中。答案acL

28、ist组件的该构造方法的第一个参数的意思是它的初始显式行数,如果该值为0 则显示4行,第二个参数是指定该组件是否可以多选,如果值为true则是可以多选,如果 不指定则缺省是不能多选。23 .给出下面的代码:(单选题)class Person String name, department;public void printValue(),zdepartment is ,+department); public class Teacher extends Person int salary;public void printValue()“salary is z/+salary);下面的哪些表达

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

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

31、出下面的不完整的方法:(多选题)1)2) success = connect ();3) if (success=二T) 4) throw new TimedOutExceptionO ;5) )6)TimedOutException不是一个RuntimeExceptiono下面的哪些声明可以被加入第 一行完成此方法的声明。A. public void method()B. public void method() throws ExceptionC. public void method() throws TimedOutExceptionD. public void method() th

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

33、所有应该在方法声明中声明抛弃。由于Exception是所有异常的父类,所有当然也可以代 表 Runt imeException 了。26 .下面的哪些答案可以正确表示一个十六进制数字10 (单选题)A. OxAB. 0x16C. 0AD. 016答案a十六进制数以Ox开头,以0开头的是八进制数。十六进制表示中的 a,b,c,d, e,f 依次为 10, 1b 12, 13, 14, 15。27 .给出下面的代码:(单选题)I) public class Test (2int m,n;3publicTest ()4) publicTest (int a)m=a;5) publicstaticvo

34、idmain(String arg) 6Test tl,t2;7int j, k;8j=0; k=0;9tl=new Test ();10t2=new Test (j, k);II) )12 )在编译时哪行将导致一个错误A. line 3B. line 5C. line 6D. line 10答案d第10行的声明调用一个带两个参数的Test的构造方法,而该类没有这样的构造 方法。二、简答题1 .读如下程序,说出结果,并说明得出结果原因(10分)。public class BreakContinue public static void main(String args) for (int i

35、= 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值,并说明得出结果原因(10分)。public class Test private static int j = 0;public static void main(String args) methodA(O);private static boolean methodB(int k)j + 二 k;ret

36、urn true;public static void methodA(int i) boolean b;b = i < 10 methodB(4);b = i < 10 methodB(8);序分析:用情况语句比较好,如果第 一个字母一样,则判断用情况语句或if语句判断第二个字母。importpublic class Ex26 public static void main(String args)保存用户输入的第二个字母char weekSecond;将Scanner类示例化为input对象,用于接收用户输入Scanner input = new Scanner;开始提示并接收

37、用户控制台输入请输入星期值英文的第一个字母,我来帮您判断是星期儿:);String letter =();判断用户控制台输入字符串长度是否是一个字母if 0 = 1)利用取第一个索引位的字符来实现让Scanner接收char类型输入char weekFirst = (0);switch (weekFirst)case ' m' :/',输入小写字母时,利用switch结构特性执行下个带break语句的case分支,以 实现忽略用户控制台输入大小写敏感的功能case 'W :“星期一 (Monday)”);break;case ' t':行输入小写字母时,利用switch结构特性执行下一个带break语句的case分支,以 实现忽略用户控制台输入大小写敏感的功能case ' T':“由于星期二(Tuesday)与星期四(Thursday)均以字母T开头,故需输入第二个字母才 能正确判断:);letter =(

温馨提示

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

最新文档

评论

0/150

提交评论