(1)下列构造方法的调用方式中,正确的是(C)
A、按照一般方法调用 B、由用户直接调用 C、能通过new直接调用 D、被系统调用
(2)在Java中能实现多重继承效果的方式是(C)
A、内部类 B、适配器 C、接口 D、同步
(3)int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个 变量的语句是(B)
A、public int MAX_LENGTH=100
B、Final int MAX_LENGTH=100
C、public const int MAX_LENGTH=100
D、Public final int MAX_LENGTH=100
(4)以下叙述中,正确的是(A) A、声明变量时必须指定一个类型
B、Java认为变量number与Number相同 C、Java中唯一的注释方式是“//” D、源文件中public类可以有0和多个 (5)下列叙述中,错误的是(D) A、父类不能代替子类 B、子类能够代替父类 C、子类继承父类 D、父类包含子类
(6)下列代码中,将引起编译错误的行是(B) 1)public class Exercise{
2) public static void main(String args[]){ 3) float f=0.0; 4) f+=1.0; 5) } 6)}
A、第2行 B、第3行 C、第4行 D、第6行 (7)下列关于继承的哪项叙述是正确的?(D) A、在Java中允许多重继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和一个接口 D、Java的单一继承使代码更可靠
(8)下面哪个修饰符可以使在一个类中定义的成员变量只能被同一包的类访问?A、private B、无修饰符 C、public D、protected
(9)给出下列代码,如果使成员变量m被方法fun()直接访问?(D) class Test
{ private int m;
public static void fun() { ...} }
A、将private int m 改为protected int m B、将private int m 改为public int m C、将private int m 改为static int m
B) (D、将private int m 改为 int m
(10)已知有下面类的说明,则下面哪个语句是正确的?(B) public class Test
{ private float f=1.0f; int m=12; static int n=1;
public static void main(String arg[]) { Test =new Test();} }
A、t.f; B、this.n; C、Test.m D.Test.f
11、给出下面代码,则数组初始化中哪项是不正确的?(Bc) byte [] array1,array2[]; byte array3 [] []; byte [] [];
byte [] [] array4;
A、array2=array1 B、array2=array3 C、array2=array4 D、array3=array4 12、下列代码的执行结果是(C) public class Test { public int aMethod() { static int i=0; i++; System.out.println(i); }
public static void main (String args[] )
{ Test test = new Test () ; test.aMethod(); }
A、编译错误 B、0 C、1 D、运行成功,但不输出 13、下列关于内部类说法,不正确的是(B)
A、内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用 B、内部类可以使用它所在类的静态成员变量 C、子类不允许调用父类的构造函数
D、在同一个类中定义的重载构造函数可以相互调用 1、定义类头时能使用的修饰符是(C)。
A、 private B、 static C、 abstract D、 protected
2、在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上(C)语句。
A、import java.awt.* ; B、import java.applet.Applet ; C、import java.io.* ; D、import java.awt.Graphics ;
3、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为(C)。 A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 4、设有下面两个类的定义:
class Person {} class Student extends Person {
long id; // 身份证号 int score; // 入学总分
String name; // 姓名
int getScore(){return score;} }
问:类Person和类Student的关系是(B)。 A、包含关系 B、继承关系
C、关联关系 D、无关系,上述类定义有语法错误
5、若已定义 byte[ ] x= {11,22,33,-66} ; 其中0≤k≤3,则对x数组元素错误的引用是(C)。
A、 x[5-3] B、 x[k] C、 x[k+5] D、 x[0] 6、设有下面的两个类定义: class AA {
void Show(){ System.out.println(“我喜欢Java!”); }
class BB extends AA {
void Show(){ System.out.println(“我喜欢C++!”); }
则顺序执行如下语句后输出结果为:(A) AA a; BB b; a.Show(); b.Show();
A、我喜欢Java! B、我喜欢C++! 我喜欢C++! 我喜欢Java! C、我喜欢Java! D、我喜欢C++! 我喜欢Java! 我喜欢C++! 7、对于构造函数,下列叙述不正确的是(C)。 A、构造函数也允许重载。
B、子类无条件地继承父类的无参构造函数。 C、子类不允许调用父类的构造函数。
D、在同一个类中定义的重载构造函数可以相互调用。 8、下列类定义中,不正确的是(C)。 A、 class x { .... }
B、class x extends y { .... }
C、static class x implements y1,y2 { .... } D、public class x extends Applet { .... } 9、设有下面两个赋值语句:
a = Integer.parseInt(“1024”);
b = Integer.valueOf(“1024”).intValue(); 下述说法正确的是(A)。
A、a是整数类型变量,b是整数类对象。 B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且它们的值相等。 D、a和b都是整数类型变量并且它们的值相等。 10、下列说法中错误的一项是(D) A、 一个线程是一个Thread类的实例
B、 线程从传递给Runnable实例run()方法开始执行 C、 线程操作的数据来自Runnable实例
D、 新建的线程调用start()方法就能立即进入运行状态 11、对于子类的构造函数说明,下列叙述中不正确的是(C) A、子类无条件的继承父类的无参构造函数
B、子类可以在自己的构造函数中使用super关键字来调取父类的第一个可执行语句 C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数
D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数 12、顺序执行下列程序语句后,则b的值是(C) String a=”Hello”:
String b=a.substring (0,2):
A、Hello B、Hel C、He D、Nuy
13、为AB类的一个无形或参数无返回值的方法是(A)
Method书写头,使得使用类名AB作为前缀就可以调用。 A、Static void method B、public void method C、final void method C、abstract void method 14、不使用static修复符限定的方法移为对象(实例)方法,下列哪一个说法是正确的(D) A、实例方法可以直接调用父类的实例方法 B、实例方法可以直接调用父类的类方法 C、实例方法可以直接调用其他类的实例方法 D、实例方法可以直接调用本类的实例方法 二、填空题(每空 2 分,共 20 分) 1、Java中所有类都是类 实体 的子类。
2、在Java程序中定义的类有两种成员: 属性 、方法 。 3、设x = 2 ,则表达式 ( x + + ) * 3 的值是 6 。
4、创建一个名为 MyPackage 的包的语句是pack MyPackage 。 5、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码字符占用 2 字节内存空间,则无论是中文字符还是英文字符,每个都是占用 字节内存空间。
6、子类重新定义一个与从父类那里继承来的域变量完全相同的变量,这种面向对象程序设计特性称为域的 多态。
7、构造方法只能通过new运算符调用,用户不能直接调用。 8、 在操作系统中,被称做轻型的进程是 线程。
三、判断改错题(每题2分,共 10 分,如果错误请改正)
1、Java程序里,创建新的类对象用关键字new,回收无用的类对象使用关键字free。( x )自动清空
2.有的类定义时可以不定义构造函数,所以构造函数不是必需的。( x ) 默认的不一定要写出来
3、一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。( x )改为实现 4、用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。( x ) 5、程序中抛出异常时(throw …),只能抛出自己定义的异常对象。( x ) 四、程序改错题(每处4分,共20 分) 1、改正下面程序段中的错误(共5处) import java.util.Scanner; class Mark{
public static void main(String[] args){ //第1处
System.out.printfln(\"请输入一个分数\"); //第2处 //定义输入的分数为“mark”,且分数会有小数 double mark;
Scanner scanner = new Scanner( ); //第3处 mark = sScanner.nextDouble();
//判断是否有输入错误。
if(mark<0&&mark>100){ //第4处 System.out.println(\"输入有误! \"); System.exit(0); }
/*判断分数的等级 90分以上者A级, 80~分者 B级,70~79分者 C级, 60~69者 D级,60分以下 E级 */
if (mark>=90) System.out.println(\"this mark is grade \\'A\\' \");
if (mark>=80) System.out.println(\"this mark is grade \\'B\\' \"); //第5处 else if (mark>=70) System.out.println(\"this mark is grade \\'C\\' \"); else if (mark>=60) System.out.println(\"this mark is grade \\'D\\' \"); else System.out.println(\"this mark is grade \\'E\\' \"); } }
五、读程序(共 10 分)。 1: import java.util.Arrays; 2:
3: public class SortArray {
4: public static void main(String args[]) {
5: String[] str = {\"size\6: Arrays.sort(str);
7: for (int i=0; i8: System.out.print(str[i]+\" \"); 9: } 10: }(1)写出程序运行后的结果。(6分)
(2)方法调用str[0].length()的返回结果是多少?(4分) 六、程序填空题(每处4分,共20 分) 说明:在一个空处可能包括多条语句。
1、编写程序实现窗口,包含一个标签、一个文本框和一个按钮,当用户单击按钮时,程序把文本框中的内容提制到标签中。(使用AWT)
(1) //引入相关包 public MyFrame{
public MyFrame(){
Frame fr = new Frame();
(2) //设置窗体的布局为FlowLayout Label lbl = new Label(“Init info”);
TextField txt = new TextField(30); Button btn = new Button(“Sure”); (3) //给按钮注册
(4) //使用窗体可见,并设置大小 }
(5) //定义内部类监听ActionEvent事件
{
public void actionPerformed(ActionEvent e){ lbl.setText(txt.getText()); } }
public static void main(String[] args){ new MyFrame(); } }