《附答案《Java语言》复习资料.doc》由会员分享,可在线阅读,更多相关《附答案《Java语言》复习资料.doc(38页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、该答案存在错误之处,仅供参考。 -计科101 郝佳第一章 Java语言概论 &第二章 Java语言程序设计基础一、 单选题1.一个Java源程序为Test.java,编译该程序应该使用的命令为( B )。 (A) javac Test (B)javac Test.java (C)java Test (D)java Test.java编译:javac 文件名.java运行:java 文件名2.下面数据类型的定义中错误的是( C )。 (A) int a = 10; (B)double d = 1.2; (C)float f = 1.2; (D)char c = A;3. main()方法是Jav
2、a Application程序执行的入口点,关于main()方法的方法头以下哪项是合法的(B)? (A)public static void main() (B)public static void main(String args) public static void main(String args) (C)public static int main(String args) (D)public void main(String args)4. 对一个java源文件 aaa.java,编辑保存后但未编译,在其所在目录下执行 java aaa,则接着会出现什么( A )。 (A)erro
3、r: cannot read: aaa.java (B)无任何显示 (C)Exception in thread main java.lang.NoClassDefFoundError: aaa (D)程序正常执行并显示5. 给出一段程序,试判断哪个是正确的结果。( D ) public class Test public static void main (String args) try System.out.print(Hello world); finallySystem.out.println(“Finally executing”); (A)无法编译运行,因为没有指定异常 (B)无
4、法编译运行,因为没有catch子句(C)Hello world (D)Hello world Finally executing6. 设有int a=1,2,3,4,5,6,7,8,i=5; 则执行System.out.println(a+i)的值为(B)(A)6 (B) 7 (C)4 (D)87.下列不属于java语言鲁棒性特点的是( B)(A)java能检查程序在变异和运行时的错误(B)java能运行虚拟机实现跨平台(C)java自己操纵内存,减少了内存出错的可能性(D)java语言还实现了真数组,避免了覆盖数据的可能二、 简答题1. 安装JDK后如何对环境变量进行设置?安装JDK后,还需
5、要设置路径,即把jdk/bin目录加入到执行路径中,该路径是操作系统寻找本地Java运行环境的目录列表。右击桌面上【我的电脑】图标,在打开的快捷菜单中选择【属性】命令,则弹出【系统属性】的窗口,选择【高级】选项卡,然后单击【环境变量】按钮。在【环境变量】对话框中选择【系统变量】的path路径,单击【编辑】按钮。弹出【编辑系统变量】对话框,在【变量值】文本框中加入“C:Program Files (x86)Javajdk1.7.0_05bin;”(即jdk/bin目录所在路径,注意路径之间用“;”分隔)。2. 常量和变量有什么区别? 常量的值在运行期间恒定不变,常量标识符在程序中只能被引用,而不
6、能被重新赋值。使用常量可以增强程序的可读性、课维护性。 变量是一个用来存取数据的存储单元,其中存储的值可以在程序执行过程中修改。3.写出下面程序的运行结果(1)考点:字符串连接方法,String s1=xx;String s2=yy;连接为xxyy方法为xx+yypublic class abc public static void main(String args ) AB s = new AB(Hello!,I love JAVA.); System.out.println(s.toString( ); class AB String s1; String s2; AB( String s
7、tr1 , String str2 ) s1 = str1; s2 = str2; public String toString( ) return s1+s2; Hello!I love JAVA. (2) public class abc public static void main(String args ) int i , s = 0 ; int a = 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 ; for ( i = 0 ; i a.length ; i + ) if ( ai%3 = 0 ) s += ai ; System.out.p
8、rintln(s=+s); s=180 第三章 数组与字符串一维数组的表示方法: 数据类型 数组名 int score 数据类型 数组名 int score二维数组的表示方法:数据类型 数组名 数据类型 数组名一、选择题1.在注释/Start For loop 处要插入哪段代码可实现根据变量i的值定位数组ia的元素?(D) 每个数组都有个属性length,数组(int score)长度的表示方法score.length 字符串常用的方法之一:字符串的长度 length( )public class Lin public void amethod() int ia = new int4; /St
9、art For loop iai=i; System.out.println(iai); (A)for (int i=0; i ia.length() -1; i+)(B)for (int i=0; i ia.length(); i+)(C)for (int i=1; i 4; i+)(D)for (int i=0; i ia.length;i+)2.下列创建二维整型数组正确语句是:(C) (A)int a = new int 10,10;(B)int a1010 = new int ;(C)int a = new int 1010;(D)int a = new int 10;10;3.设有如
10、下程序,其调试结果为:(B)?class Q2 public static void main(String args) int seeds = 1,2,3,4,6,8; int n= seeds.length; for (int i = 0; i 3; i+) for (int k = 0; k n-1; k+) seedsk= seedsk+1; for (int i = 0; i n-1; i+) System.out.print(t+seedsi); i=0:2 3 4 6 8i=1:3 4 6 8 8i=2: 4 6 8 8 8(A)输出: 1 2 3 4 6(B)输出: 4 6 8
11、 8 8 (C)输出: 2 3 4 6 8 (D)输出: 2 3 4 6 4. 阅读下面代码,他们完成的功能是(B)String a=“学生”,”自习”,”教师”,”备课”,”学校”;for(int i=0; ia.length; i+) if(ai.equals(“ 自习”) ai=”考试”; (A) 查找(B) 查找并替换(C) 增加(D) 删除5.指出下列运行结果(B) ? public class Example String str = new String(good);charch=a,b,c;public static void main(String args)Example
12、ex = new Example();ex.change(ex.str,ex.ch);System.out.print(ex.str+and);System.out.print(ex.ch);public void change(String str,char ch)str=test ok;ch0=g;(A) good and abc(B) good and gbc(C) test ok and abc(D) Test ok and gbc6.下面的程序段执行后输出的结果是(A )。 StringBuffer buf=new StringBuffer(Beijing2008); buf.ins
13、ert(7,); System.out.println(buf.toString(); StringBuffer字符串缓冲区insert(int offset, String str) 将字符串插入此字符序列中。(A) Beijing2008 (B)Beijing2008 (C)Beijing2008 (D) Beijing#2008 7. 下列不属于整形变量内容的是(C)(A) Byte(B) Short(C) Float(D) long二、填空题1.字符串分为两大类,一类是字符串常量,使用 String 类的对象表示;另一类是字符串变量,使用 StringBuffer 类的对象表示。2.在
14、java语言中,如果数值后没有字母,计算机默认值为 double 类型(double)3.浮点型数据属于实型数据,属于float和 double 两种(double)4.标示符是以 字母 、下划线、美元符号为首字母的字符串序列(字母)三、简答题:1. String 和StringBuffer的区别 String:字符串常量,该类创建的对象是不允许改变的,即固定长度,内容不变。 StringBuffer:字符串变量,该类创建的对象是允许改变的。2.= 与 equals 的区别 =:比较的是两个对象的地址是否相同 Equals:如果没有被重写,比较的是两个对象的地址是否相同。但是在String中,
15、equal被重写,比较的是两个对象的内容是否相同。第四章 类与对象类的成员变量:(1)实例变量:没有static修饰 访问方式:对象名 . 实例变量名(2)类变量/静态变量:有static修饰 访问方式:类名 | 对象名 . 类变量名类的成员方法:与上面类似 实例方法可以操作静态变量,但是静态方法不能操作实例变量抽象类与抽象方法:用关键字abstract修饰的类称为抽象类。用关键字abstract修饰的方法称为抽象方法。 抽象类可以包含抽象方法,也可以包含非抽象方法。但是不能在非抽象类中声明抽象方法。最终类:用关键字final声明。 最终类中包含的都是最终方法。而非最终类也可以包含最终方法。一
16、、选择题1.以下程序的运行结果为:(C)public class A static int k=3; public static void main(String args) int k=4; A x1=new A(); x1.k+; A x2=new A(); x2.k+; k+; System.out.println(x1.k); (A) 3 (B) 4 (C)5 (D)6 2.编译和运行以下程序结果为:(B)public class A static int k=3; static int m; 静态变量,默认值为 0 public static void main(String arg
17、s) k+; if (m=0) System.out.println(k); else System.out.println(B.k); k+; class B static int k=6; (A)3 (B)4 (C)5 (D).编译错误 3.关于被保护访问控制符protected修饰的成员变量,以下说法正确的是(A)(A)可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类(B)可以被两种类访问和引用:该类本身、该类的所有子类(C)只能被该类自身所访问和修改(D)只能被同一个包中的类访问4.下列关于修饰符混用的说法,错误的是(D)(A)abstract不能与fin
18、al并列修饰同一个类(B)abstract类中不可以有private的成员方法(C)abstract方法必须在abstract类中(D)static方法中能处理非static的属性 Static方法不能操作非static变量 抽象类abstract:构造方法、静态成员方法不能被声明为抽象方法。 最终类final:最终类不能被继承。 最终类中包含的都是最终方法。而非最终类中也可以包含最终方法。构造函数和静态函数以及Final修饰的函数不能使用abstract修饰符5. 下面是有关子类调用父类的构造方法的描述,正确的是(C)(A) 子类定义了自己的构造方法,就不会调用父类的构造方法(B) 子类必须
19、通过super关键字调用父类没有参数的构造方法(C) 如果子类的构造方法没有通过super调用父类的构造方法,那么子类会先调用用父类不含参数的构造方法,再调用子类自己的构造方法(D) 创建子类对象时,先调用子类自己的构造方法子类自动调用父类中的无参构造函数6. 假设Foo类有如下定义,设f是Foo的一个实例,下列哪个调用时错误的(A)Public class Foo int i;static String s;void imethod() Static void smethod() (A) Foo.imethod();(B) f.imethod();(C) System.out.println
20、(f.i);(D) Foo.smethod()7.以下程序调试结果为:(C)class Base Base() int i = 100; System.out.print (i); public class Pri extends Base static int i = 200; public static void main(String argv) Pri p = new Pri(); System.out.print(i); (A)编译错误 (B)200 (C) (D)1008 试完成下述程序片段:(D)public class Point int x,y; public Point(i
21、nt x,int y) =x; =y; . (A) Point.x Point.y (B)无解 (C) x1 y1 (D) this.x this.y9.以下声明合法的是( C) (A)default String s;default应该去掉(B)public final static int w( );(C)abstract double d;(D)abstract final double hyperbolicCosine( );二、填空题:1.Java 原文件中最多只能有一个 父 类,其他类的个数不限。2. 继承 主要强调子类在父类的基础上取长补短,而 多态 主要强调的是类与类之间的传输
22、。3. 构造函数 是类中的一个特殊方法,用它来定义对象的初始状态。4.java语言中 java.lang.Object 是所有类的根。5.在java语言中有一种叫做 构造函数 特殊方法,在程序中用他来对类成员进行初始化。(构造函数)6.定义一个类包括定义类头和定义 类体 两个部分。(类体)7.java是面向对象语言,对象是客观事物的 实体 ,对象与之是一一对应的,他是很具体的概念(实体)三、简答题1. 简述类和对象的概念以及他们的区别类:具有相同属性和方法的一组对象的集合。对象:具有类类型的变量。区别:类是实体模型的概念,是抽象的,不具体的。而对象则是一个实体,是真实的,具体的。2. 什么是继
23、承?父类与子类的关系分别是什么含义,其关系如何? 继承:从已有类派生出新类的过程称为继承。父类:已有类称为父类子类:派生出的新类称为子类。父类和子类的关系:子类是从父类派生出来的。子类的实例都是父类 的实例,但不能说父类的实例是子类的实例。3. 什么叫方法重写/覆盖(override)?如果子类要重写/覆盖父类中的某个方法,则子类中的方法声明应该如何进行声明?方法重写/覆盖:一个类中不同的的方法使用相同的名字,而方法的参数列表在数据类型、参数个数或者参数次序上有所不同。子类的成员方法的名字、返回值的类型、参数的个数和类型与父类的某个方法要完全相同。 4. 简述public,protected,
24、private的作用,并比较他们的异同? Public: 用于声明共有类成员,该成员可以被所有类访问。 Private:用于声明私有类成员,该成员仅能被当前类的成员访问。 Protected:用于声明保护型类成员,该成员能被当前类及其子类或者当前包中的其他类访问。第五章 集合Map:HashMap,TreeMapSet:HashMap,TreeMapList:ArrayList,LinkedListCollection接口常用方法:iterator 返会在此Collection上进行迭代的迭代器。 Iterator 对Collection进行迭代的迭代器。一简答题1. 简述List ,Map,
25、set的区别和联系 List(列表):与数组相似,元素对象可重复。(有序可重复) Map(映射):集合中的元素包含一对键。对象和值的对象,键不重复,值可以重复。Set(集):相当于数学的集合,元素对象不能重复。(无序不重复) 二 代码编写题1. 读代码,将代码补充完整_A_/导包public class Gestpublic static void main(String args)List list = new ArrayList();_B_/从键盘上输入String name;while(true)System.out.print(访客名称:);name=scanner.nextLine(
26、);if (name.equals(quit) break; _C_/将name添加到list表单里System.out.print(访客名单 );System.out.println(list);foreach(list);private static void foreach(List list)for(int i=0;ilist.size();i+) _D_/读取list中的信息 _E_/将list中的小写字母转换为大写字母输出 A: _import java.util.*_;_B:_ Scanner scanner=new Scanner(System.in);_C:_ list.ad
27、d(name)_;_D:_String gest=(String)list.get(i);_E:_ System.out.print(gest.toUpperCase()+ );_2.假设存在一个person.properties文件,文件内容为:#summary#Wed Sep 26 17:02:11 CST 2012age=10password= username=Mary读一下代码,补充完整。import java.util.*;import java.io.*;public class PropertiesDemo2public static void main(String args
28、) throws IOException A /得到Properties对像 对像名自取 B /加载person.properties文件 System.out.println(props); /从内存集合props中读属性信息,显示在CRT上 System.out.println( C );/输出用户名System.out.println( D ); /输出密码System.out.println(props.getProperty(description); /修改获增加内存集合props中属性信息 props.setProperty(username,Mary); props.setPr
29、operty(sex,female); props.setProperty(age,60); props.setProperty(description,一个骨灰级美女); /将内存集合props中属性信息,存储到磁盘文件person.properties中 E A: Properties props=new Properties(); B: props.load(new FileReader(person.properties); C: props.getProperty(username) D: props.getProperty(password) E: props.store(new
30、FileWriter(person.properties),summary); 3.读下列代码,补充完整。import java.util.*;public class MapKeyValuepublic static void main(String args) A /得到一个Map对象map.put(one,一);map.put(two,二);map.put(three,三); Collection sets; /Iterable sets; Iterator it; /创建集合迭代器System.out.println(n1-显示键); sets=map.keySet(); B /遍历s
31、etswhile( C )String element=(String)it.next();System.out.println(element);System.out.println(n2 -显示值); D /将map里的值放到sets里 it=sets.iterator();while(it.hasNext()String element=(String)it.next();System.out.println(element); public static void foreach(Iterable sets) E /得到一个迭代器对象it while(it.hasNext() Stri
32、ng element=(String)it.next(); System.out.println(element); A: Map map=new HashMap(); B: it=sets.iterator(); C: it.hasNext() D: sets=map.values(); E: Iterator it=sets.iterator(); 4.读代码,补充完整import java.util.*;class Studentprivate String name;private String number;Student(String name,String number)this
33、.name=name;this.number=number;Overridepublic String toString()return String.format(%s,%s),name,number); public class Students1public static void main(String args) _A_/实例化Hashset对象,对象名为set _B_/将Helen,110添加进set中 for(Object element : set) System.out.println(element.toString(); A:_ Set set = new HashSet
34、();_B:_ set.add(new Student(Helen,110);_第六章:接口与Java API基础一个类是可以实现多个接口的。一个类实现了某个接口,就必须重写该类的所有方法。接口中的所有方法都没有 方法体。接口中的方法不论是否被声明为public,结果都会按照public类型处理。接口中的属性都会被隐式的声明为static和final。接口是一种特殊的抽象类。一、选择题1.System类在哪个包中?(D)(A)Java.util(B)Java.io(C)Java.awt(D)Java.long2. 关于接口,正确的是(AB)(A) 实现一个接口必须实现接口的所有方法(B) 一个
35、类可以实现多个接口(C) 接口间不能有继承关系(D) 接口等于抽象类3. 下列常用包中,存放用户图形界面的包是(A)(A) Java.awt (B) Java.long(C) Java.util(D) Java.io4.以下哪些方法不是Collection 接口的方法?(D)(A)iterator (B)isEmpty (C)toArray (D)setText IsEmpty: 如果此 collection 不包含元素,则返回 true。Iterator:返回在此 collection 的元素上进行迭代的迭代器。ToArray: 返回包含此 collection 中所有元素的数组。5.下面的
36、程序输出的结果是( B)public class A implements B public static void main(String args)int i;A c1 = new A();i= c1.k;System.out.println(i=+i);interface B int k = 10;(A) i=0 (B)i=10 (C)程序有编译错误 (D)i=true 6.关于以下程序段的说法,正确的是(A)1Class MyListener implements2 ActionListener,ItemListener3 public void actionPerformed(Act
37、ionEvent ae)4 System.out.println(Action);5 public void itemStateChanged(ItemEvent ie)6 System.out.println(Item);7 8(A)可通过编译(B)第2行产生编译错误(C)第3行产生编译错误(D)第5行产生编译错误二、填空题:1在 Java 程序中,通过类的定义只能实现 单 重继承,但用过接口的定义可以实现 多 重继承关系。 2.接口是一种只含有抽象方法或 常量 的一种特殊抽象类。 三、简答题:1. abstract和interface有什么区别? Abstract:可以使用关键字abstract来声明一个抽象类。 Interface:可以使用关键字interface来声明一个接口。说出一些常用的类,包,接口,请各举5个(常用包P124) 常用类:Object类,Math类,基本数据类型Integer类,日期Date类,File类 常用包:java.lang包,java.util包,java.awt包,jav