⼀、选择题
1.对象与类之间关系最合适的叙述是( D )A)类是程序,对象是变量B)对象是类的数据实例C)类是对象的实例D)对象是类的实例2.有关类的说法,正确的是( B )。
A)类具有封装性,所以类的数据是不能被访问的
B)类具有封装性,但可以通过类的公共接⼝访问类中的数据C)声明⼀个类时,必须使⽤public修饰符D)每个类中必须有main⽅法,否则程序⽆法运⾏
3.对于下⾯( B )类定义,可以通过“new J_Class()”⽣成类J_Class的实例对象。A)public class J_Class { public J_Class(void) { } }B)public class J_Class { }
C)public class J_Class { public J_Class(String s) { } }D)public class J_Class { public void J_Class() { }public J_Class(String s) { } }
4.构造⽅法是⼀种特殊的成员⽅法,构造⽅法名与(类名)相同。5.下列关于构造⽅法的叙述中,错误的是( C )A)Java语⾔规定构造⽅法名与类名必须相同
B)Java语⾔规定构造⽅法没有返回值,但不⽤void声明C)Java语⾔规定构造⽅法不可以重载
D) Java语⾔规定构造⽅法只能通过new⾃动调⽤
6.为了保持对象的封装性,我们必须做除了下⾯哪⼀项之外的所有⼯作?( B )A) 在类中定义⽅法来存取实例数据。B)将类变为final。C)将类中的⽅法变为public D)将对象实例数据变为private
7.要求设计⼀个类,它拥有⼀个特殊的成员域,该成员域必须能够被这个类的⼦类访问到,但是不能被不在同⼀个包内的其他类访问到。下⾯( C )可以满⾜上述要求。
A)该成员域的封装属性设置为public B)该成员域的封装属性设置为private C)该成员域的封装属性设置为protected D)该成员域不需要特殊的封装属性8.为了创建⼀个常量,应该⽤下⾯哪⼀个Java保留字( B )A)const B)final C)finalized D)fixed
9.下列关于构造⽅法的叙述中,错误的是( C )A)Java语⾔规定构造⽅法名与类名必须相同
B)Java语⾔规定构造⽅法没有返回值,但不⽤void声明C)Java语⾔规定构造⽅法不可以重载
D) Java语⾔规定构造⽅法只能通过new⾃动调⽤
10.下列说法哪个正确?( C )
A) 不需要定义类,就能创建对象B)对象中必须有属性和⽅法C)属性可以是简单变量,也可以是⼀个对象D)属性必须是简单变量11.下⾯的语句输出是什么?( C )System.out.print(\"1\" + 1 + 1);A) 12 B)3 C)111 D)21
12. 如何产⽣⼀个随机整数i,使得0≤i<20 ? ( A )
A) (int)(Math.random() * 20) B) (int)(Math.random() * 20) + 1C) (int)(Math.random() * 19) D) (int)(Math.random() * 19) + 113.下⾯语句的输出是?( B )String s = “五岳归来不看⼭”;System.out.println(s.substring(0,2));A) 岳归 B) 五岳 C) 五岳归 D) 来不看
14.下列代码执⾏后index的值是多少?( D )String myStr = \"节⽇快乐!\";int index = myStr.indexOf('乐');A) 0 B) 1 C) 2 D) 3
15. package、import、class语句的正确顺序是?( C )A) pacakge,class,import B) class,import,packageC) package,import,class D) import,package,class
16. 将类的成员的访问权限设置为默认的,则该成员能被( A )。A)同⼀包中的类访问B)其他包中的类访问C)所有的类访问D)所有的类的⼦类访问17. 关于下⾯程序⽚段,( B )的结论是正确的。String a = \"Java\"; String b = \"Java\";String x = \"Ja\";String y = \"va\";String c = x + y;
A)a 和b 指向同⼀个实例对象,a 和c 指向同⼀个实例对象。B)a 和b 指向同⼀个实例对象,a 和c 不指向同⼀个实例对象。C)a 和b 不指向同⼀个实例对象,a 和c 指向同⼀个实例对象。D)a 和b 不指向同⼀个实例对象,a 和c 不指向同⼀个实例对象。18. 下⾯这段代码会产⽣( B )个String对象。String s1 = \"hello\";
String s2 = s1.substring(2, 3);
String s3 = s1.toString();
String s4 = new StringBuffer(s1).toString();A)1 B)2 C)3 D)4
19. 设有定义:String s = “World”;,下列语句错误的是( A )。A)int m=s.indexOf(r); B)char c=s.charAt(0);C)int n=s.length(); D)String str=s.append();
20. 在Java中,⽤package语句说明⼀个包时,该包的层次结构必须是( A )。A)与⽂件⽬录的层次相同B)与⽂件的结构相同C)与⽂件类型相同D)与⽂件⼤⼩相同21、下⾯哪个类是⽤来写⽂件的?( C )A) File B) BufferedReader
C) PrintWriter D) DataOutputStream22.下⾯哪个不是File类的⽅法?( B )A) exists() B) read()
C) getAbsolutePath() D) canWrite()
23. pw是⼀个PrintWriter对象,下⾯语句执⾏后,⽂件中的内容是什么?( B ) pw.print(“a”);pw.println(“b”);pw.print(“c”);A. B. C. D.
24.有如下代码,请选择⼀个正确答案( C )public class TestFile{
public static void main(String args[]){File file = new File(“chp6/java1.txt”);
}}
A) java1.txt ⽂件在系统中被创建
B)在windows 系统上运⾏出错,因为路径分隔符不正确C)java1.txt ⽂件在系统中没有被创建D)如果java1.txt ⽂件已存在,则抛出⼀个异常
25. 以下关于File 类说法正确的是( A )
A)⼀个File 对象代表了操作系统中的⼀个⽂件或者⽂件夹B)可以使⽤File 对象创建和删除⼀个⽂件C)可以使⽤File 对象创建和删除⼀个⽂件夹
D)当⼀个File 对象被垃圾回收时,系统上对应的⽂件或⽂件夹也被删除
26.⼦类中定义了⼀个⽅法,该⽅法和⽗类的⽅法声明相同,但是具有不同的⽅法体,称为⼦类⽅法___B__⽗类⽅法。A)重载 B)覆盖 C)复制 D)调⽤27. 下⾯程序的运⾏结果是什么?( A )public class C {
public static void main(String[] args) {Object[] o = {new A(), new B()};System.out.print(o[0]);System.out.print(o[1]);}}
class A extends B {public String toString() {return \"A\";}}class B {
public String toString() {return \"B\";}}
A) AB B) BA C) AA D) BB28. 下⾯程序的输出是什么? ( D )class A {public A() {
System.out.println(\"The default constructor of A is invoked\");}}
class B extends A {public B(String s) {System.out.println(s);
}}
public class C {
public static void main(String[] args) {
B b = new B(\"The constructor of B is invoked\");}}
A)程序有编译错误
B)The constructor of B is invokedC)The default constructor of A is invokedD) C与B
29. 下⾯哪个⽅法可以正确覆盖protected double xMethod(int x) {…}⽅法?( D )A)private double xMethod(int x) {…}B)protected int xMethod(double x) {…}C)public double xMethod(double x) {…}D)public double xMethod(int x) {…}
31.如果在定义⼀个类的时候没有⽤到关键字extends,则这个类(A )A)没有直接⽗类B)有直接⽗类C)是抽象类D)以上都不对
32.抽象⽅法不能含有⽅法体,并且( D )A)必须在抽象类中B)⼀定在⾮抽象类中B)⼀定在接⼝中D)以上都不对
33.假设在 Java源程序⽂件“MyClass.java”中只含有⼀个类,⽽且这个类必须能够被位于⼀个庞⼤的软件系统中的所有Java类访问到,那么下⾯( C )声明有可能是符合要求的类声明。A)private class MyClass extends ObjectB)public class myclass extends ObjectC)public class MyClassD)class MyClass extends Object
34.如果在定义⼀个类的时候没有⽤到关键字extends,则这个类(A )A)没有直接⽗类B)有直接⽗类C)是抽象类D)以上都不对
36.假设在 Java源程序⽂件“MyClass.java”中只含有⼀个类,⽽且这个类必须能够被位于⼀个庞⼤的软件系统中的所有Java类访问到,那么下⾯( C )声明有可能是符合要求的类声明。A)private class MyClass extends ObjectB)public class myclass extends ObjectC)public class MyClass
D)class MyClass extends Object37.下⾯哪个类的实例不是容器?( B )A) JFrame B) JTable C) JPanel D)JScrollPane38.下⾯哪个控件最适合让⽤户选择性别?( C )A) JCheckBox B) JTextField C) JRadioButton D)JLable39.创建Font对象,需要的三个参数依次代表什么?( A )A) 字体名称、字形、⼤⼩B) 字体名称、⼤⼩、字形C) 字体名称、字体颜⾊、⼤⼩D)字形、字体颜⾊、⼤⼩40.JFrame的默认布局管理器是什么?( B )
A) FlowLayout B) BorderLayout C) GridLayout D)CardLayout 41.JPanel的默认布局管理器是什么?( A )A) FlowLayout B) BorderLayout C) GridLayout D)CardLayout42.请问所有的异常类皆继承哪⼀个类?( B )
A)http://www.doczj.com/doc/1b204d3366ec102de2bd960590c69ec3d5bbdbd2.html ng.ThrowableB)http://www.doczj.com/doc/1b204d3366ec102de2bd960590c69ec3d5bbdbd2.html ng.Exception
C)http://www.doczj.com/doc/1b204d3366ec102de2bd960590c69ec3d5bbdbd2.html ng.Error D)java.io.Exception43.哪个关键字可以抛出异常?( B )A)transient B)throw C)finally D)catch
44.对于已经被定义过可能抛出异常的语句,在编程时( A )。A)必须使⽤try/catch语句处理异常,或⽤throw将其抛出。B)如果程序错误,必须使⽤ try/catch语句处理异常。C)可以置之不理。
D)只能使⽤try/catch语句处理。
45.下⾯程序段的执⾏结果是什么?( D )public class Foo{
public static void main(String[] args){try{return;}
finally{System.out.println(\"Finally\");}}}
A)编译能通过,但运⾏时会出现⼀个例外。B)程序正常运⾏,并输出 \"Finally\"。C)程序正常运⾏,但不输出任何结果。D)因为没有catch语句块,所以不能通过编译。46.能单独和finally语句⼀起使⽤的块是( D )。
A)try B)catch C)throw D)A与B47.下⾯的程序的执⾏结果是( A )。public class Test {
public static void main(String[] args) {new Test().test ();}
public void test() {try {
System.out.print(\"try\");
} catch(ArrayIndexOutOfBoundsException e) {System.out.print(\"catch1\");} catch(Exception e) {System.out.print(\"catch2\");} finally {
System.out.println(\" finally\");}}}
A)try finally B)try catch1 finallyC)try catch2 finally D)finally
48. 以下程序会抛出什么RunTimeException异常?( D )。public class Test {
public static void main(String[] args) {System.out.println(1/0);}}
A) NumberFormatException B) Exception
C) ArraylndexOutOfBoundsException D) ArithmeticException49、下⾯的程序的执⾏结果是( D)。public class Test {public static void foo() {try {
String s = null;
String s2 = s.toLowerCase();}catch(NullPointerException e) {
System.out.print(\"2\");}finally{
System.out.print(\"3\");System.out.print(\"4\");}}
public static void main(String args[]){foo();}}
A)2 B)34 C)23 D)234
50、下列类中在多重catch中同时使⽤时,( C )异常类应该最后列出。A) ArithmeticException B) NumberFormatExceptionC)Exception D) ArraylndexOutOfBoundsException51.下列有关数组的叙述错误的是(C )
A)数组是将⼀组相同类型的数据顺序存储,组成⼀种复合数据类型
B)在Java语⾔中,数组是⼀种引⽤类型,数组名如同对象名⼀样,是⼀种引⽤C)对于多维数组,从最⾼维开始,可以对每⼀维分配不等长的空间D)在Java语⾔中,数组元素可以互相赋值,⽽数组名不能直接赋值52.在Java程序中声明⼀个数组,错误的是(C )
A)int a[]; B)int a[][]; C)float a[10]; D)float[]a[];53.下语句不能通过编译的是(D)。A) int[] a={1,2,3,4}; B) int b[];
C) int c[]=new int[3]; D) int d = new int[];
54.在下述Java语⾔语句中,错误的创建数组的⽅法是( D )
A) int intArray [ ];intArray=new int[5];B) int intArray [ ]=new int[5];C) int [ ] intArray ={1,2,3,4,5};D) int intArray [5]={1,2,3,4.5};55.若数组a定义为int[][] a = new int[3][4],则a是( B )A)⼀维数组 B)⼆维数组 C)三维数组 D)四维数组
56.设数组Array由以下语句定义int age=new int[10];则数组的第⼀个元素的正确引⽤⽅法为( D )A) age[1] B) age[0] C) age[] D) age[0]
57.设有定义语句int a[]={66,88,99};则以下对此语句的叙述错误的是( C )。A)定义了⼀个名为a的⼀维数组 B)a数组有3个元素C)a数组的下标为1~3 D)数组中的每个元素是整型
58.在Java程序中有定义:int x[][]=new int[4][5];则x.length和x[3].length 的值分别是(A)
A)4和5 B)5和4 C)4和3 D)5和3
59.已知int[] a={5,6,7,8,4,3,2,1};则a[1] + a[2] - a[3]=( C )A)4 B)3 C)5 D)以上都不对60.已知int[] a={1,2,3,4,3,2,1};则a[a[1]]=( B )A)2 B)3 C)4 D)以上都不对61. 下列语句不正确的是_____。
A. String message = new String(“Welcome to JAVA”);B. String message = “Weclcome to JAVA”;C. String message = Weclcome to JAVA;D. char[] charArry = {‘G’,‘o’‘o’‘d’};String message = new String(charArry);
62.⼦类从⽗类中继承⽅法,⼦类需要修改⽗类中定义的⽅法实现,这称做_____。A. ⽅法更新B. ⽅法重定义C. ⽅法重载D. ⽅法覆盖⼆、填空及简答
1.数组元素通过索引来访问,数组array的长度为 array.length 。2.数组最⼩下标是 0 。
3.Java中数组下标的数据类型是整形。
4.语句 int[] a=new int[100]的含义是_创建⼀个数组a ,有100个元素 __。5. 主⽅法main(Sting[]args)的参数String[]args 是⼀个__字符串_ __数组
7.下⾯的⽅法是⼀个不完整的⽅法,其中的⽅法unsafe()会抛出⼀个IOException,那么在⽅法的处应加⼊什么语句,才能使这个不完整的⽅法成为⼀个完整的⽅法?() public void methodName() throw IOException {if(unsafe()) {//do something…}else if(safe()) {//do the other…}}
9.如何将⼀个组件添加到窗⼝中?(⽤add⽅法)
10.描述FlowLayout。如何创建⼀个FlowLayout管理器?(⽤new FlowLayout语句))
11.如何创建⼀个GridLayout管理器?如何将⼀个组件添加到GridLayout容器中?(new GridLayout())13.使⽤new Color(400,200,300)创建Color时会有什么问题?(第1、3个参数超出限制范围)14.下列程序的输出是什么?public class Foo{private boolean x;
public static void main(String[] args){Foo foo = new Foo();
System.out.print1n(foo.x);}}
____有错误,x不能直接访问______________
15.程序填空。已知创建了⼀个Car类,car_number是车牌号码。在测试类CarDemo中,新建⼀个Car类对象,并重新设置其车牌号码为33887,最后调⽤ShowNumber⽅法显⽰车牌
① num② println③ new④ 33887
⑤ showNumber ()三、改错题
1、改正下列程序中的错误1)public class ShowErrors{
public static void main(String[] args){ShowErrors t = new ShowErrors(5);}}
2)public class ShowErrors{
public static void main(String[] args){ShowErrors t = new ShowErrors();t.x();}}
3)public class ShowEerrors{
public void method1(){Circle c;
System.out.print1n(”what is radius” + c.getRadius());C = new Circle();}}
4)public class ShowEerrors{
public static void main(String[] args){C c = new C(5.0)
System.out.print1n(c.value);}}class C﹛int value = 2;}
5) public class C{int p;
public void setP(int p){this.p = p;}}
四、阅读下列程序,并回答问题1)下⾯程序的输出是什么?public class Superclass {public boolean aVariable;public void aMethod() {aVariable = true;}}
public class Subclass extends Superclass {public boolean aVariable;public void aMethod() {aVariable = false;super.aMethod();
System.out.println(aVariable);
System.out.println(super.aVariable);}
public static void main(String[] arg s) {Subclass su = new Subclass();su.aMethod();}}答:falsetrue
2)写出表达式的运⾏结果。
StringBuffer s1 = new StringBuffer(\"Java\");StringBuffer s2 = new StringBuffer(\"HTML\");(1)s1.append(\" is fun\"); ____ Java _ is fun ________(2)s1.insert(1,s2); ____ JHTMLava _________(3)s1.charAt(2); ________v_____(4)s1.length(); ______4_______(5)s1.substring(2); ______va_______3)写出下⾯程序的输出public class Test{
public static void main(String[] args) {int num = 0;
int[] nums = new int[1];m(num,nums);
System.out.println(“num=”+ num+”,nums[0]=”+ nums[0]);}
public static void m(int x, int[] y){x = 5;y[0]=5;}
答:num=0,nums[0]=54)以下代码的输出结果是什么int x =40;
int[] numbers = new int[x];x = 80;
System.out.println(“x=” + x);
System.out.println(“数组numbers的长度=” + numbers.length);答:x=80
数组numbers的长度=405)写出下⾯程序的输出public class Test{
public static void main(String[] args) {int[][] array = new int[5][6];int[] x ={1,2};array[0] = x;
System.out.println(“array[0][1]=”+ array[0][1]);}}
答:array[0][1]=2
6)阅读下⾯程序,回答后⾯的问题。class Animal {void run(){
System.out.println(“Animal is running!”);}}
class Pig extends Animal{void run(){
System.out.println(“Pig is running!”);}
void eat(){
System.out.println(“Pig is eating!”);}}
下⾯的语句正确吗?正确的写T,错误的写F(1) Animal a = new Pig(); _____T________(2) a.run(); _____T________(3) a.eat(); _____F________
(4)Pig p1 = (Pig)a; _____T________(5) Pig p2 = new Animal(); _____F________
7)请完善程序,使它得到正确的结果。程序功能说明如下:java源程序⽂件中,定义了Bicycle类及其⼦类MountainBike类,Bicycle类的成员变量model只能被类⾃⾝的⽅法所访问。该⽂件中“/*$1*/”和“/*$2*/”⾏是需要补充的语句,请仔细阅读程序,补充相应
的语句,使整个程序能够正常运⾏。(注意:不改动程序的结构,不得增⾏或删⾏)class Bicycle {
protected String make; //⽣产⼚家/*$1*/
private String model; //型号
public Bicycle(String make, String model) {this.make = make; this.model = model;}
public String toString() {return(make + \" \" + model);}}
class MountainBike extends Bicycle {public boolean hasSuspension; //悬挂
public MountainBike(String make, String model, boolean hasSuspension) { /*$2*/ super(make,model);this.hasSuspension = hasSuspension;}}
public class Test {
public static void main(String[] args) {
MountainBike giant = new MountainBike(\"China-GIANT\System.out.println(giant);}}
8)程序输出结果是什么?class A{public A(){
System.out.println(“A no-arg construct is invoked”);}}
class B extends A{public B(){
System.out.print(“B no-arg construct is invoked”);
}
public static void main(String[] args){B b = new B();}}
A no-arg construct is invokedB no-arg construct is invoked四、编写程序
1、编写程序,随机⽣成100个0-9之间的整数,统计每个数字的个数,并输出结果。提⽰:Math.random():产⽣[0.0, 1.0)的随机数;0-9之间的随机整数:(int)(Math.random() * 10);答:
public class ccc {
public static void main(String[] args) {int[] counts = new int[10];for(int i=0;i<100;i++){
int num = (int)(10*Math.random());counts[num]++;}
for(int i=0;i<10;i++)
System.out.println(counts[i]);}}
2、编写⼀个名为Car的类,模拟汽车。步骤:
命名为Car的类;
int类型的数据域speed表⽰汽车的速度(默认为0km);boolean型的数据域on表⽰汽车是否启动(默认为false);double类型的数据域weight表⽰汽车重量(吨,默认为1.2);string类型的数据域color表⽰汽车的颜⾊(默认为blue);⽤⽆参构造⽅法创建默认汽车;编写设置和存取这些数据域的⽅法;
编写toString()⽅法返回描述汽车的字符串,如果汽车起动,该⽅法⽤⼀个组合字符串返回汽车的速度、颜⾊和重量。如果汽车不在启动状态,该⽅法⽤返回字符串“car is off”加上汽车的颜⾊和重量信息答:
public class Car{
private int speed =0;private boolen on = false;private double weights=1.2;private String color =”blue”;public void setSpeed(int speed){this.speed = speed;}
public int getSpeed(){return speed;}
public void setOn(boolean on){this.on = on;}
public boolen getOn(){return on;}
public void setWeights(double weights){this.weights = weights;}
public double getWeights(){return weights;}
public void setColor(String color){this. color = color;}
public Stringt getColor(){return color;}
public string toString(){if(on){
return “汽车的速度:”+speed + “,颜⾊:”+ color + “重量:”+weight;}else{
return “car is off“+ “,颜⾊:” + color + “重量:”+weight;}
}}
3、设计⼀个名为Student的类来表⽰⼀个学⽣(10’)这个类包括:
⼀个名为major的String类型私有数据域表⽰学⽣专业。⼀个名为age的int类型私有数据域表⽰学⽣的年龄。为这两个数据域设置get⽅法器和set⽅法创建⼀个有特定名字和年龄的构造⽅法
覆盖public String toString()⽅法,返回⼀个字符串包含学⽣的姓名和年龄public class Student {private String major;private int age;
Student(String name , int age){
http://www.doczj.com/doc/1b204d3366ec102de2bd960590c69ec3d5bbdbd2.html = name;this.age = age;}
void setName(String name){
http://www.doczj.com/doc/1b204d3366ec102de2bd960590c69ec3d5bbdbd2.html = name;}
String getName(){return name;}
void setAge(int age){this.age = age;}
int getAge(){return age;}
public String toString(){String str = name + age;return str;}}
4、补充程序。创建⼀个窗⼝,并在其中放置⼀个按钮的实现过程。(5’) import javax.swing.*;public class MyTestFrame {
public static void main(String[] args) {
JFrame myFrame = new JFrame(“Test Frame”);//创建窗⼝JButton JbtnOk = new JButton(\"我是按钮\");myFrame.add(JbtnOk); //按钮放⼊框架中myFrame.setSize(400, 300);//设置窗⼝⼤⼩
myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myFrame.setVisible(true);//窗⼝显⽰}}
5、创建⼀个⼤⼩为5的整型数组,并完成以下任务:赋予5个值给该数组的5个元素。将该数组进⾏排序。将该数组进⾏输出。import java.util.Arrays;import java.util.Scanner;public class SortArray {
public static void main(String[] args) {int[] array=new int[5];
Scanner in=new Scanner(System.in);for(int i=0;i<5;i++){array[i]=in.nextInt();}
Arrays.sort(array);for(int i=0;i<5;i++){
System.out.println(array[i]+\" \");}}}
六、名词解释题:1.constructor 构造⽅法2.socket 套接字3.interface 接⼝4.inheritance 继承5.override 覆盖6.polymorphism 多态7.argument 参数8.attribute 属性
9.static variable 静态变量10.index 索引11.array 数组
12.abstract class 抽象类13.object 对象14.exception 异常15.thread 线程16.I/O 输⼊输出17.Method ⽅法18.API 应⽤程序接⼝19.Package 包20.OO ⾯向对象
因篇幅问题不能全部显示,请点此查看更多更全内容