第一单元Java基础知识测样
班级___________姓名:_____________ 得分:_____________
一、选择题(每题2分,共40分)
1、下面哪项可以得到数组元素的个数,java中定义数组名为 abc,( B )
A、abc.length( ) B、abc.length C、len(abc) D、ubound(abc)
2、构造方法何时被调用(B )
A.类定义时 B.创建对象时 C.调用对象方法时 D.使用对象的变量时
3、下列语句片段 int a=10,b=4,c=20,d=6; System.out.println(a++*b+c*--d); 的结果为( C )
A.144 B.28 C.140 D.不能执行
4、下面哪个修饰符修饰的方法只能被本类中的其他方法使用( C )
A、protected B、static C、private D、public
5、编译并运行下述程序段的结果是:( A )。
public class Test{
public static void main(String argv[]){ int[] count = new int[4]; System.out.println(count[4]); } }
A.编译时错误 B.运行时错误 C.输出0 D.输出null
6、在java的一个异常处理中,哪个语句块可以有多个( A )
A、catch B、finally C、try D、throws
7、若在某一个类定义中定义有如下的方法: final void aFinalFunction( ); 则该方法属于( C )。
A.本地方法 B.静态方法 C.最终方法 D.抽象方法
9、类Test1定义如下:
1) public class Test1{
2) public float aMethod(float a, float b){ } 3)
4) } 将以下哪种方法插入行3是不合法的。( B ) A、public float aMethod(float a, float b, float c){ } B、public float aMethod(float c, float d){ } C、public int aMethod(int a, int b){ }
D、private float aMethod(int a, int b, int c){ }
10、Java程序的执行过程中用到一套JDK工具,其中java.exe是指( B )
A.Java文档生成器B.Java解释器 C.Java编译器D.Java类分解器
11、在异常处理中,如释放资源、关闭文件、关闭数据库等由( C )来完成。
A.try子句 B.catch子句 C.finally子句 D.throw子句
12、定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:(C)
A. private class MyClass extends Object B. class MyClass extends Object C. public class MyClass
D. protected class MyClass extends Object
13、给出如下代码:
class Test{ private int m;
public static void fun() { // some code... } }
如何使成员变量m 被函数fun()直接访问? ( C ) A、将private int m 改为protected int m B、将private int m 改为 public int m C、将private int m 改为 static int m D、将private int m 改为 int m
14、A派生出子类B, B派生出子类C, 并且在Java源代码中有如下声明: 1)A a0 =new A();
2)A a1 =new B(); 3)A a2 =new C();
问以下哪个说法是正确的?(D ) A. 只有第1行能通过编译
B. 第1、2行能通过编译,但第3行编译出错
C. 第1、2、3行能通过编译,但第2、3行运行时出错 D. 第1行、第2行和第3行的声明都是正确的
15、下面哪个语句(初始化数组)是不正确的:( B )
A.int x[] = {1,2,3}; B.int x[3] = {1,2,3};
C.int[] x = {1,2,3}; D.int x[] = new int[]{1,2,3};
16、下述概念中不属于面向对象方法的是( D )。
A. 对象、消息 B.继承、多态 C.类、封装 D.过程调用
17、下面哪条语句把方法声明为抽象的公共方法?( B ) A.public abstract method(); B.public abstract void method(); C.public abstract void method(){} D.public void method() extends abstract;
18、在java中如果要在字符串类型对象s=“JAVA”,中找出”V?出现的位置可使用下面哪个法:(C) A.mid(2,s); B.charAt(2); C.s.indexOf(“V?); D.indexOf(s,?V?);
19、给出下面代码:
public class Person{ static int arr[] = new int[10]; public static void main(String a[]) { System.out.println(arr[1]); } }
哪个语句是正确的? ( B )
A.编译时将产生错误; B.输出零; C.编译时正确,运行时将产生错误; D.输出空。
20、哪个关键字可以抛出异常? ( C ) A、 transient B、 finally C、 throw D、 static
二. 填空题(20分)
1. 面向对象的3个特性是多态、继承性和封装。
2. 如果想在对象实例化的同时就初始化成员属性,则使用构造函数。
3. 实体方法和构造方法不能修饰为abstract?
4. 编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为类名.class 。
5.异常处理过程中,一个try程序块可以对应多个catch块。
6. Java程序在extends之后只能有一个父类, 即extends只能实现 1 继承。
7. 分别用__class_关键字来定义类,用_new__关键字来分配实例存储空间。
三.简答题(20分) 1. 写出Java中8种基本数据类型? 整数类型:byte、short、int、long 浮点类型:float、double 字符型:char
布尔型:boolean 2. 简述break和continue语句在使用时的区别? break语句作用:1、可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句。2、使流程跳出switch结构。 continue语句作用:结束本次循环,即忽略循环体中continue语句下面尚未执行的语句,接着进行下一次是否执行循环的判定。 continue语句和break语句的区别:continue语句只结束本次循环,而不是终止整个循环的执行。break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。break语句可以用在循环语句和switch语句中。在循环语句中用来结束内部循环;在switch语句中用来跳出switch语句。
3.方法重写要符合什么条件?和方法重载有什么区别? 方法重载:就是在同一个类中,方法的名字相同,但参数个数、参数的类型或返回值类型不同!方法重写:它是指子类和父类的关系,子类重写了父类的方法,但方法名、参数类型、参数个数必须相同!
4.抽象类和抽象方法有什么特点? 答:①一个抽象类里可以没有抽象方法,但含有抽象方法的类必定为抽象类。 ②抽象类不能被实例化为对象,而只能作为其它类的超类,并且必须被继承。
③若某子类继承自一个抽象类,而该子类不是抽象类,则子类需用覆盖的方式来实例化超 类中的所有抽象方法。抽象方法可再与public、protected复合使用,但不能与final、private 和static复合使用。
④抽象方法只有方法声明,不能有方法体。
5.简述异常处理的过程。
程序运行时出现错误时,创建异常对象,抛出异常对象,捕获该异常对象并进行处理。
四.代码题(20分) 1. 使用Scanner定义数组的长度,循环赋值给数组,并计算出数组里的最大值、最小值、平均值与元素之和。
2. 定义任意长度的数组,使用冒泡排序对数组进行降序排列。