JAVA程序设计习题
一、
选择题
1.使用Java语言编写的源程序保存时的文件扩展名是(B)。
(A).class (B).java (C).cpp (D).txt 2.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( C )。
(A)a[0]; (B)a[a.length-1]; (C)a[3]; D)int i=1; a[i];
3.在类的定义中可以有两个同名函数,这种现象称为函数(D)。
(A)封装 (B)继承 (C)覆盖 (D)重载 4.在类的定义中构造函数的作用是( D)。 (A)保护成员变量 (B)读取类的成员变量 (C)描述类的特征 (D)初始化成员变量 5.类与对象的关系是( A )。
(A)类是对象的抽象 (B)对象是类的抽象
C)对象是类的子类 D)类是对象的具体实例 6.下面哪一个是Java中不合法的标识符( D )。 (A)$persons (B)twoNum (C)_myVar (D)*point
7.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。
(A)static void method( ) (B)public void method( )
(C)final void method( ) (D)abstract void method( )
8.Java源文件和编译后的文件扩展名分别为(B)
(A) .class和 .java (B).java和 .class (C).class和 .class (D) .java和 .java
9.对于一个Java源文件,import, class定义以及package正确的顺序是:(A) (A) package,import,class (B) class,import,package (C) import,package,class (D) package,class,import
10.下面哪个是非法的: B
(A) int I = 32; (B) float f = 45.0; (C) double d = 45.0; (D) char c = ‘u’;
A 11. 如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是 C
(A) public (B) protected (C) private (D) static
12.下面关于main方法说明正确的是 B (A) public main(String args[ ]) (B) public static void main(String args[ ])
(C) private static void main(String args[ ]) (D) void main()
13.关于抽象方法的说法正确的是(C)
(A)可以有方法体 (B) 可以出现在非抽象类中 (C)是没有方法体的方法 (D) 抽象类中的方法都是抽象方法
14.Java application中的主类需包含main方法,以下哪项是main方法的正确形参?(B )
A、 String args B、String args[] C、Char arg D、StringBuffer args[]
15.以下代码段执行后的输出结果为( A) int x=-3; int y=-10;
System.out.println(y%x); A、 -1 B、2 C、1 D、3
16.以下关于继承的叙述正确的是(A)。 A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口 D、在Java中接口只允许单一继承
17. 若有定义:byte[] x={11,22,33,-66};
其中0≤k≤3,则对x数组元素错误的引用是(BC) A)x[5-3]
B)x[k] 未说明K是否为整数 C)x[k+5] 超出范围 D)x[0]
18.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为(C) A) 隐藏 B) 重写 C) 重载
D) Java不支持此特性
19. 以下有关构造方法的说法,正确的是:( A ) A. 一个类的构造方法可以有多个 B. 构造方法在类定义时被调用
C. 构造方法只能由对象中的其它方法调用。 D. 构造方法可以和类同名,也可以和类名不同
20.给出下面代码,关于该程序以下哪个说法是正确的?( C) public class Person{
static int arr[] = new int[5];
public static void main(String a[]) {
System.out.println(arr[0]); } }
A、编译时将产生错误 B、编译时正确,运行时将产生错误 C、输出零 D、输出空
21、下列类定义中哪些是合法的抽象类的定义?( C) A、abstract Animal{abstract void growl();}
B、class abstract Animal{abstract void growl();} C、abstract class Animal{abstract void growl();}
D、abstract class Animal{abstrac growl(){System.out.println(“growl”);};}
22.有以下程序片段,下列哪个选项不能插入到行1。( D ) 1.
2.public class Interesting{ 3.//do sth 4. }
A、import java.awt.*; B、package mypackage; C、class OtherClass{ } D、public class MyClass{ }
23. 为了使包ch4在当前程序中可见,可以使用的语句是(A)。 A)import ch4.*; B)package ch4.*; C)ch4 import; D)ch4 package; 二、 填空题:
t void
1、Java源程序文件和字节码文件的扩展名分别为__java____和 __classs_ ___。 2、Java语言的类型检查机制要求对于没有返回值的方法,在其前面必须加___void__ ______进行说明。
3、每个Java Application程序可以包括许多方法,但是必须有且只能有一个 _main___方法,统一格式为_public static void main(String[] args){}________,它是程序执行的入口。
4.若要在程序中定义一个公用的int型的类成员变量MAX_LENGTH,且该变量的值保持常数值1000,则定义该变量的语句是_ public static final int MAX_LENGTH=1000; _
5.子类必须通过_____super____关键字调用父类有参数的构造函数。 6.在Java语言中,所有的类都是类_Object______的子类。
7.在Java程序中,通过类的定义只能实现单重继承,但通过__接口____ 的定义可以实现多重继承关系。
8.如果在Java程序中,需要使用java.util包中的所有类,则应该在程序开始处加上语句__import java.util.*;_____ __。
9、Java 源文件中最多只能有__1____个公共类,其它类的个数不限。
10、__抽象方法________方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
11、Java语言中,有一个类是所有类或接口的父类,这个类的名称是 __ ___Object____________。
12. Java提供的访问权限修饰符有4个,即:public private protected
deafault____.
13. Java不支持多继承。但它允许一个类同时实现多个___接口_____________,这就相当于部分实现了多继承。 14. Java源文件中,___import________语句位于package语句之后、类定义之前。
三、.问答题
1.Overload(重载)和Override(重写)的区别。 答:重载发生在一个类中,与返回值,访问修饰符无关;
重写发生在类与类之间,或者类与接口之间,与返回值/修饰符有关
2. abstract class和interface的区别
答:abstract修饰的类是一个抽象类,不能实例化对象,类中可以有抽象方法,也可以有实例方法;
Class 用来定义个一个类,可以被实例化
Interface 定义接口的关键字,接口中所有的变量皆为类常量,而方法全是抽象方法,一个类若要实现某接口,必须实现接口中所有方法,否则该类将还是一个抽象类!
3. 接口是否可继承接口? 抽象类是否可实现(implements)接口? 抽象类是否可继承实体类(concrete class)
答:接口可以继承多个接口,抽象类可以实现接口,抽象类也可以继承实体类!
4. 怎么实现单例模式(写代码) Public class Single{
Private static Single s=new Single();
Private Single(){ }
Public Single static newInstance(){ Return s; } }