Java第一阶段综合测试题
考试时间:2个小时考试类型:闭卷
姓名:________ 班级:________ 考试分数:_______ 一、单选题(每题2分,共40分) 1.以下关于异常的说法正确的是:() A. 一旦出现异常,程序运行就终止了
B. 如果一个方法申明将抛出某个异常,它就必须真的抛出那个异常
C. 在catch子句中匹配异常是一种精确匹配 D. 可能抛出系统异常的方法是不需要申明异常的 2.下面关于Java的引用,说法正确的是:() A. 应用实际上就是指针 B. 应用本身是Primitive C. 引用就是对象本身
D. 一个对象只能被一个引用所指引
3.对于import java.util包,以下那种说法是错误的?() A. Vector类属于java.util包 B. Vector类放在…/java/util/目录下 C. Vector类放在java.util文件中 D. Vector类是Sun公司的产品 4. 如下代码 public class Test { public int aMethod() { static int i = 0; i++; return i; }
public static void main (String args[]) {
Test test = new Test(); test.aMethod(); int j = test.aMethod(); System.out.println(j); } }
输出结果是什么?() A. 0 B. 1 C. 2 D. 编译失败 5.如下代码: public class Foo {
public static void main(String[] args) { try { return; } finally {
System.out.println( \"Finally\" ); } } }
输出结果是什么?() A. Finally B.编译失败
C. 代码正常运行但没有任何输出. D. 运行时抛出异常
6.下面的语句会产生什么样的输出?() System.out.println(4&7); A.4 B.5
C.6 D.7 E.0
7.下面的程序中,temp的最终值是什么?() long temp=(int)3.9; temp%=2; A .0 B .1 C .2 D .3 E .4
8.下面哪个不是JAVA关键字() A integer B double C float D default
9.下列哪种说法是正确的()
A.实例方法可直接调用超类的实例方法 B.实例方法可直接调用超类的类方法 C.实例方法可直接调用其他类的实例方法 D.实例方法可直接调用本类的类方法
10.下列标识符(名字)命名原则中,正确的是() A. 类名的首字母小写
B. 变量和方法名的首写字母大写 C. 接口名的首写字母小写 D. 常量完全大写
11.下列关于构造方法的叙述中,错误的是() A. Java语言规定构造方法名与类名必须相同
B. Java语言规定构造方法没有返回值,但不用vold声明 C. Java语言规定构造方法不可以重载
D. Java语言规定构造方法只能通过new自动调用 12.类Test1定义如下: 1.public class Test1{
2.public float aMethod(float a,float b){ return 0;} 3. 4.}
将以下哪种方法插入行3是不合法的。()
A、public float aMethod(float a,float b,float c){ return 0;}
B、public float aMethod(float c,float d){ return 0;} C、public int aMethod(int a,int b){ return 0;}
D、private float aMethod(int a,int b,int c){ return 0;} 13.哪个语句创建了一个数组实例?() A. int[] ia = new int [15]; B. float fa = new float [20]; C. char[] ca = “Some String”; D. int ia [][] = {4, 5, 6} {1, 2, 3};
14.以public修饰的类如:public class Car{…} 则Car() A、可被其它程序包中的类使用 B、仅能被本程序包中的类使用 C、不能被任意其它类使用 D、不能被其它类继承
15.已知A类被打包在packageA , B类被打包在packageB ,且B类被声明为public ,且有一
个成员变量x被声明为protected控制方式。C类也位于packageA包,且继承了B类。
则以下说话正确的是()
A . A类的实例不能访问到B类的实例
B. A类的实例能够访问到B类一个实例的x成员
C. C类的实例可以访问到B类一个实例的x成员//protected 使用
该修饰符说明的变量
可被该类自身,同包的其他类和其他包中该类的子类所访问 Private,使用该修饰符的变量只能被该类自身所访问,任何其他类都不能访问
D. C类的实例不能访问到B类的实例 16.构造函数何时被调用() A.类定义时 B.创建对象时 C.调用对象方法时 D.使用对象的变量时
17.Java程序的执行过程中用到一套JDK工具,其中java.exe是指()
A.Java文档生成器 B.Java解释器 C.Java编译器 D.Java类分解器 18.break语句() A、只中断最内层的循环 B、只中断最外层的循环
C、借助于标号,可以实现任何外层循环中断 D、只中断某一层的循环
19.Java语言中下面哪个可以用作正确的变量名称() A、3D B、name C、extends D、implements 20.如下代码: class Super {
public Integer getLenght() { return new Integer(4);
} }
//类型不匹配
public class Sub extends Super { public Long getLenght() { return new Long(5); }
public static void main(String[] args) { Super sooper = new Super(); Sub sub = new Sub();
System.out.println(sooper.getLenght().toString() + \sub.getLenght().toString() ); } }
输出是什么?() A. 4,4 B. 4,5 C. 5,4 D. 5,5 E. 编译失败.
二:多选题(每题3分,共30分)
1.下面哪个语句正确地声明一个整型的二维数组?() A. int a[][] = new int[][]; B. int a[10][10] = new int[][]; C. int a[][] = new int[10][10]; D. int [][]a = new int[10][10]; E. int []a[] = new int[10][10];
2.下面哪些不是java的简单数据类型? () A. short B. Boolean
C. Double D. float
3.下面哪些语句能够正确地生成5个空字符串?()
A.String a[]=new String[5];for(int i=0;i<5;a[i++]=“”); B.String a[]={“”,“”,“”,“”,“”}; C.String a[5]; D.String[5]a;
E.String []a=new String[5];for(int i=0;i<5;a[i++]=null); 4.下列标识符不合法的有()
A.new B.$Usdollars C.1234 D.car.taxi 5.下列说法错误的有() A.数组是一种对象 B.数组属于一种原生类
C.int number=[]={31,23,33,43,35,63} D.数组的大小可以任意改变 6.不能用来修饰interface的有()
A.private B.public C.protected D.Static 7.下列说法错误的有()
A.在类方法中可用this来调用本类的类方法 B.在类方法中调用本类的类方法时可直接调用 C.在类方法中只能调用本类中的类方法 D.在类方法中绝对不能调用实例方法 8.如下代码 class A { A() { } }
class B extends A { }
哪两个说明是正确的?() A. B类的构造器应该是public.
B. B类的构造器应该是没有参数 C. B类的构造器应该调用this(). D. B类的构造器应该调用super(). 9.在接口中以下哪条定义是正确的? () A. void methoda();
B. public double methoda(); C. public final double methoda(); D. static void methoda(double d1); E. protected void methoda(double d1);
//接口中的成员都是“共有的”“抽象的”“实例的”成员方法 10.以下哪四个能使用throw抛出? () A. Error B. Event C. Object D. Throwable E. Exception F. RuntimeException
三:简答题(每题5分,共15分)
1.Overload和Override的区别。Overloaded的方法是否可以改变返回值的类型?
重载(Overload)为,在同一个类中,两个或两个以上方法有同一个名字,
只要他们的参数声明不同即可。返回类型改变了;
重写(Override)为继承了父类的方法,但对父类的方法重新定义了
2.swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
Switch的表达式必须为byte ,short,int,或char型
3.多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
多线程有两种实现方法,分别是继承Thread类和实现Runnable接口
同步有两种实现方法,分别是synchronized wait 与notify 四:编程题(共15分)
1、设计一个简单的类:Worker。该类包含id、姓名、薪水和年龄,要求有私有的属性、有参
和无参的构造方法、public类型的setter和getter方法和toString方法
public class Work { private int id; private String name; private double slarly; private int age; public Work (){ }
public Work(int id,String name,double slarly,int age){ http://www.doczj.com/doc/5d15209125.html, = name; this.id=id; this.age=age; this.slarly=slarly; }
public int getId() { return id; }
public void setId(int id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) {
http://www.doczj.com/doc/5d15209125.html, = name; }
public double getSlarly() { return slarly; }
public void setSlarly(double slarly) { this.slarly = slarly; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public String toString(){ return
\"id\"+getId()+\"name\"+getName()+\"slarly\"+getSlarly()+\"age\"+getAge();
} }
2、设计一个测试类:WorkerTest,该类首先用set方法传值,然后用构造方法传值,并将该对象打印出来
3、用switch和Scanner知识,在控制台上实现:
如:输入1时,打印一句:“这是第一格”;输入2时,打印一句:“这是第二格”;.......... .;当随便输入时,打印“你输入有误”
1.用循环控制语句打印输出:1+3+5+…….+99=?结果
因篇幅问题不能全部显示,请点此查看更多更全内容