《Java程序设计》课程试卷
1.使用Java语言编写的源程序保存时的文件扩展名是(B )。
(A).class (B).java (C).cpp (D).txt
2.设int a=-2,则表达式a>>>3的值为( C )。
(A)0 (B)3 (C)8 (D)-1
3.设有数组的定义int[] a = new int[3],则下面对数组元素的引用错误的是( C )。
(A)a[0]; (B)a[]; (C)a[3]; (D)int i=1;a[i];
4.在类的定义中可以有两个同名函数,这种现象称为函数( D )。
)
(A)封装(B)继承(C)覆盖(D)重载
5.在类的定义中构造函数的作用是( D )。
(A)保护成员变量(B)读取类的成员变量(C)描述类的特征(D)初始化成员变量
6.下面关键字中,哪一个不是用于异常处理语句(B )。
(A)try (B)break (C)catch (D)finally
7.类与对象的关系是(A )。
(A)类是对象的抽象(B)对象是类的抽象(C)对象是类的子类(D)类是对象的具体实例
8.下面哪一个是Java中不合法的标识符(D )。
(A)$persons (B)twoNum (C)_myVar (D)*point
9.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。
(A)static void method( ) (B)public void method( )
、
(C)final void method( ) (D)abstract void method( )
10.欲构造ArrayList类的一个实例,此类继承了List接口,下列哪个方法是正确的( C )。
(A)ArrayList myList=new Object( ) (B)List myList=new ArrayList( )
(C)ArrayList myList=new List( ) (D)List myList=new List( )
源文件和编译后的文件扩展名分别为( B )
(A) .class和.java (B).java和.class
(C).class和.class (D) .java和.java
12.在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。>
(A) start( ) (B) stop( ) (C) init( ) (D) paint( )
13.对于一个Java源文件,import, class定义以及package正确的顺序是:( A )
(A) package,import,class (B) class,import,package (C) import,package,class (D) package,class,import
14.下面哪个是非法的:( D )
(A) int I = 32; (B) float f = ; (C) double d = ; (D) char c = ‘u’;如果一个类的成员变量只能在所在类中使用,则该成员变量必须使用的修饰是( C )
(A) public (B) protected (C) private(D) static
17.下面关于main方法说明正确的是( B )
(A) public main(String args[ ]) (B) public static void main(String args[ ])
(C) private static void main(String args[ ]) (D) void main()
|
18.哪个关键字可以对对象加互斥锁( B )
(A) transient (B) synchronized (C) serialize (D) static
19.关于抽象方法的说法正确的是( D )
(A)可以有方法体(B) 可以出现在非抽象类中
(C) 是没有方法体的方法(D) 抽象类中的方法都是抽象方法
包的File类是( B )
(A)字符流类(B) 字节流类(C) 对象流类(D) 非流类
21.Java application中的主类需包含main方法,以下哪项是main方法的正确形参( B )
A、String args
B、String args[]
C、Char arg
D、StringBuffer args[]
<
22.以下代码段执行后的输出结果为( A )
int x=-3;int y=-10;
、-1B、2 C、1 D、3
23.以下关于继承的叙述正确的是()。
A、在Java中类只允许单一继承
B、在Java中一个类只能实现一个接口
C、在Java中一个类不能同时继承一个类和实现一个接口
D、在Java中接口只允许单一继承
¥
24. 若有定义: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]
25.paint()方法使用哪种类型的参数( D )
A、Graphics
B、Graphics2D
C、String
D、Color
26.以下哪个不是Java的原始数据类型( B )
A、int
B、Boolean
C、float
D、char
27.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( C )
[
A)隐藏B)重写C)重载D)Java不支持此特性
28.以下有关构造方法的说法,正确的是:(A )
A.一个类的构造方法可以有多个B.构造方法在类定义时被调用
C.构造方法只能由对象中的其它方法调用。D.构造方法可以和类同名,也可以和类名不同
29.在浏览器中执行applet 程序,以下选项中的哪个方法将被最先执行( B )。
A、init()
B、start()
C、destroy()
D、stop()
31、有以下方法的定义,请选择该方法的返回类型( D )。
ReturnType method(byte x, double y)
,
{
return (short)x/y*2;
}
A、byte
B、short
C、int
D、double
32.下列类定义中哪些是合法的抽象类的定义(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{abstract void growl(){有以下程序片段,下列哪个选项不能插入到行1。( D )
1.
class Interesting{
3.}
A、import .*;
B、package mypackage;
C、class OtherClass{ }
D、public class MyClass{ }
34. 设有下面两个赋值语句:
a = (“12”);
¥
b = (“12”).intValue();
下述说法正确的是( A )。
A、a是整数类型变量,b是整数类对象。
B、a是整数类对象,b是整数类型变量。
C、a和b都是整数类对象并且值相等。
D、a和b都是整数类型变量并且值相等。
35.在编写Java Applet程序时,需在程序的开头写上( B )语句。
A、import .* ;
B、import ;
C、import .* ;
D、import ;
36.下列哪一项不属于Swing的顶层容器( B )
:
A)JApplet B)JTree C)JDialog D)JFrame
37. 为了使包ch4在当前程序中可见,可以使用的语句是( A )。
A)import ch4.*;B)package ch4.*; C)ch4 import; D)ch4 package;
38. 请问所有的异常类皆继承哪一个类( B )。
A)B)C)D)进行Java基本的GUI设计需要用到的包是(C )。
A)B)C)D)
40. 当点击鼠标或者拖动鼠标时,触发的事件是下列的哪一个(D )
A)KeyEvent B)ActionEvent C)ItemEvent D)MouseEvent
—
一、选择题(2’*15=30’)
1、如下哪个是Java中的标识符( A )
A、fieldname
B、super
C、3number
D、#number
2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。
A. 3
B. 3. 5
C. 4
D. 5
3、下面的代码段执行之后count的值是什么( D )
int count = 1;
for (int i = 1; i <= 5; i++) {
|
count += i;
}
、5 B、1 C、15 D、16
4、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。
A. static void method( )
B. public void method( )
C. final void method( )
D. abstract void method( )
5、下列程序段执行后的结果是( A )。
String s = new String("abcdefg");
for (int i=0; i<(); i+=2){
;
A) aceg B) ACEG C) abcdefg D) abcd
6、下面程序段执行后b的值是( B )。
Integer integ =new Integer(9);
boolean b = integ instanceof Object;
A) 9 B) true C) 1 D) false
7.关于for循环和while循环的说法哪个正确(B)
A.while循环先判断后执行,for循环先执行后判断。
¥
B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果
C.两种循环任何时候都不可以替换
D.两种循环结构中都必须有循环体,循环体不能为空
8.关于对象成员占用内存的说法哪个正确(B)
A.同一个类的对象共用同一段内存
B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间
C.对象的方法不占用内存D.以上都不对
9.关于继承的说法正确的是:(B)
】
A、子类将继承父类所有的属性和方法。
B、子类将继承父类的非私有属性和方法。
C、子类只继承父类public方法和属性
D、子类只继承父类的方法,而不继承属性
10.覆盖与重载的关系是(A)
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中
B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事
11、下面哪一个import命令可以为我们提供编写网络应用程序的类( D )
A、import .*;
B、import .*;
C、import .*;
D、import .*;
]
12、如果容器组件p的布局是BorderLayout,则在p的下边中添加一个按钮b,应该使用的语句是(C )
A、(b);
B、(b,"North");
C、(b,"South");
D、(p,"North");
13、Frame对象默认的布局管理器是(B )
A、FlowLayout
B、BorderLayout
C、CardLayout
D、null
14、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象( A )
A、FileInputStream
B、FileOutputStream
C、DataOutputStream
D、FileWriter
1.关于选择结构下列哪个说法正确(B)
A.if语句和else语句必须成对出现B.if语句可以没有else语句对应
/
C.switch结构中每个case语句中必须用break语句D.switch结构中必须有default语句
2.while循环和do…while循环的区别是:(D)
A.没有区别,这两个结构任何情况下效果一样B.while循环比do…while循环执行效率高
C.while循环是先循环后判断,所以循环体至少被执行一次
D.do…while循环是先循环后判断,所以循环体至少被执行一次
3.关于for循环和while循环的说法哪个正确(B)
A.while循环先判断后执行,for循环先执行后判断。
B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果
…
C.两种循环任何时候都不可以替换D.两种循环结构中都必须有循环体,循环体不能为空
4.下列修饰符中与访问控制无关的是(D)
A.private B.Public C.protected D.final
5.void的含义:(A)
A.方法没有返回值B.方法体为空C.没有意义 D.定义方法时必须使用6.return语句:(C)
A.只能让方法返回数值B.方法都必须含有C.方法中可以有多句return D.不能用来返回对象7.关于对象成员占用内存的说法哪个正确(B)
>
A.同一个类的对象共用同一段内存B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存D.以上都不对
8.下列说法哪个正确( C )
A.不需要定义类,就能创建对象B.对象中必须有属性和方法
C.属性可以是简单变量,也可以是一个对象D、属性必须是简单变量
9.下列说法哪个正确(A)
A、一个程序可以包含多个源文件
B、一个源文件中只能有一个类
C、一个源文件中可以有多个公共类
D、一个源文件只能供一个程序使用
(
10.关于方法main()的说法哪个正确(C)
A.方法main()只能放在公共类中 B main()的头定义可以根据情况任意更改
C.一个类中可以没有main()方法D.所有对象的创建都必须放在main()方法中
11.构造函数何时被调用(A)
A、创建对象时
B、类定义时
C、使用对象的方法时
D、使用对象的属性时
12.抽象方法:(C)
A、可以有方法体
B、可以出现在非抽象类中
C、是没有方法体的方法
D、抽象类中的方法都是抽象方法13.关于继承的说法正确的是:(B)
}
A、子类将继承父类所有的属性和方法。
B、子类将继承父类的非私有属性和方法。
C、子类只继承父类public方法和属性
D、子类只继承父类的方法,而不继承属性
14.关于构造函数的说法哪个正确(C)
A、一个类只能有一个构造函数
B、一个类可以有多个不同名的构造函数
C、构造函数与类同名
D、构造函数必须自己定义,不能使用父类的构造函数
15.this和super:( C )
A、都可以用在main()方法中
B、都是指一个内存地址
C、不能用在main()方法中
D、意义相同
16.关于super的说法正确的是:( B )
.
A、是指当前对象的内存地址
B、是指当前对象的父类对象的内存地址
C、是指当前对象的父类
D、可以用在main()方法中
17.覆盖与重载的关系是(A)
A、覆盖只有发生在父类与子类之间,而重载可以发生在同一个类中B.覆盖方法可以不同名,而重载方法必须同名
C.final修饰的方法可以被覆盖,但不能被重载D.覆盖与重载是同一回事
18.关于接口哪个正确( A )
A、实现一个接口必须实现接口的所有方法B.一个类只能实现一个接口
C.接口间不能有继承关系D.接口和抽象类是同一回事
~
19.异常包含下列哪些内容(A)
A.程序执行过程中遇到的事先没有预料到的情况B.程序中的语法错误
C.程序的编译错误D.以上都是
20.对于已经被定义过可能抛出异常的语句,在编程时:(A)
A、必须使用try/catch语句处理异常,或用throws将其抛出B.如果程序错误,必须使用try/catch语句处理异常
C.可以置之不理D.只能使用try/catch语句处理
21.字符流与字节流的区别在于(D)
A.前者带有缓冲,后者没有B.前者是块读写,后者是字节读写
.
C. 二者没有区别,可以互换使用
D. 每次读写的字节数不同
22.下列流中哪个不属于字节流(D)
A.FileInputStream B.BufferedInputStream C. FilterInputStream D. InputStreamReader
1.在面向对象的方法中,一个对象请求另一个对象为其服务的方式是通过发送( D )
A、调用语句
B、命令
C、口令
D、消息
语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点:( B )
A、安全性
B、多线程
C、跨平台
D、可移值
3.编写和运行Java applet程序与编写和运行Java application程序不同的步骤是:(B )
A、编写源代码
B、编写HTML文件调用该小程序,以.html为扩展名存入相同文件夹
C、编译过程
D、解释执行
的字符类型采用的是Unicode编码方案,每个Unicode码占用____个比特位。( B )
A、8
B、16
C、32
D、64
5.关于下列程序段的输出结果,说法正确的是:( D 基本类型数值数据的默认初始值为0 )
public class MyClass{
static int i;
public static void main(String argv[]){
}
A、有错误,变量i没有初始化。
B、null
C、1
D、0
,
6.下列代码的执行结果是:( B )
public class Test3{
public static void main(String args[]){
","); }
A、1,1
B、1,
C、,1
D、,
9.若要把变量声名为暂时性变量,应使用如下哪种修饰符(C)
A、protected
B、provate
C、transient(临时变量)
D、volatile (共享变量)
10.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型
或顺序各不相同,传回的值也可以不相同,这种面向对象程序特性称为:( C )
A、隐藏
B、覆盖
C、重载
D、Java不支持此特性
11.如要抛出异常,应用下列哪种子句( B )
A、catch
B、throws
C、try
D、finally
12.在使用interface声明一个接口时,只可以使用____修饰符修饰该接口。( D )
A、private
B、protected
C、private protected
D、public
14.为读取的内容进行处理后再输出,需要使用下列哪种流(D )
A、File stream
B、Pipe stream
C、Random stream
D、Filter stream
15.为实现多线程之间的通信,需要使用下列哪种流才合适( D )
A、Filter stream
B、File stream
C、Random access stream
D、Piped stream
与aWT的区别不包括:( D )
A、Swing是由纯Java实现的轻量级构件
B、Swing没有本地代码
C、Swing不依赖操作系统的支持
D、Swing支持图形用户界面
{
18.注释的基本原则不包括:( D )
A、注释应该增加代码的清晰度
B、注释要简洁
C、在写代码之前写注释
D、尽量给每一条语句加注释
包中定义了多个流类型来实现输入和输出功能,可以从不同的角度对其进行分类,按功能分为:( C )
A、输入流和输出流(方向)
B、字节流和字符流(内容)
C、节点流和处理流(分工)
填空题:
1.数组x定义:String x[ ][ ]=new int[3][2]; x[0 ][0 ]=”abc”, x[0 ][1]=”12345”;
则的值为______2___,x[0][1].length( ) 的值为__5___。
2、Java语言的变量由变量名、_变量类型、变量属性、_初值___组成。
3、当程序中需要抛出异常时,应该使用_throw子句,当需要在方法中声明可能抛出的异常类型,应该使用throws 子句。
`
4、包中的Applet类定义了Applet与其运行环境之间的一个标准接口。
5、Java语言中提供的GUI功能主要由包和包中的类和接口实现。
6、Java源程序文件和字节码文件的扩展名分别为和。
7、Java语言的类型检查机制要求对于没有返回值的方法,在其前面必须加___void___进行说明。
8、类是Java语言的一种引用数据类型。
9、在Java语言中,所有的对象均通过new运算符分配内存,并对内存进行自动管理。
程序可以包括许多方法,统一格式为
int型的类成员变量MAX_LENGTH,且该变量的值保持常数值1000,则定义该变量的语句是public int MAX_LENGTH=1000;。
12、;
13、子类必须通过_super_关键字调用父类有参数的构造函数。
14、在Java语言中,所有的类都是类__Object__的子类。
15、在Java程序中,通过类的定义只能实现单重继承,但通过__接口__ 的定义可以实现多重继承关系。
16、如果在Java程序中,需要使用java.util包中的所有类,则应该在程序开始处加上语句_import .*_。
17、下列程序的运行结果是__01234_______________
public class ex2 {
public static void main(String[] args)
{
|
for(int cnt=0;cnt<10;cnt++)
{
if(cnt==5)
break;
}}}
19、Java 源文件中最多只能有__________1___________个公共类,其它类的个数不限。
20、在Java 中所有实现的多维数组,实际上是由一维数组构成的_数组的数组。
21、设x =15 ,则表达式( x + + )/4 的值是___3_______________。
】
22、___抽象______方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。
23、____run()______方法用于定义线程的执行体. _____start()______方法用于启动线程.
24、String str1=”abc”;
String str2=new String(“abc”);
;则程序运行后输出结果为:_____fault________
25、Java语言中,有一个类是所有类或接口的父类,这个类的名称是____Object______。
26、当启动Applet 程序时,首先调用的方法是int()。
27、Java语言是一种完全的面向对象的,适用于网络环境程序设计语言。
…
28. 如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是____Applet_____类的子类并且存储该源程序文件的文件名为。
29. 设int x = 2 ,则表达式(x++)/3 的值是_____0_______________。
30. Java提供的访问权限修饰符有4个,即:public、_private、protected和友元。
31. Java中有两种常用的字符串类,一个是String,另一个是_stringBuffer。
32. Java实现多线程的方法有两种,一种方法是通过创建_____________________类的子类实现多线程,另一种方法是定义一个实现
_____________________接口的类。
33. Java不支持多继承。但它允许一个类同时实现多个__接口____,这就相当于部分实现了多继承。
34. Java源文件中,__________import___________语句位于package语句之后、类定义之前。Package、import、class .
35. __OutputStreamWriter__类是OutputStream类的子类,用来处理以文件作为数据输出的数据流。
1、如果将类MyClass声明为public,它的文件名必须是才能正常编译。
2.面向对象有三大特点分别是继承、封装、多态。
3、设x = 2 ,则表达式( x + + )/3 的值是0 。
4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用 2 字节内存空间
5、Java中用于两个数相等比较的运算符是:(==),用于不相等比较的运算符是(< >)。
6、在Java中声明一个字符串类型的变量str的语句是:String str; ,定义一个具有10个元素的整型数组a的语句是:int [] a=new int[10]; 。
7、设有数组定义:int MyIntArray[ ] = {10,20,30,40,50,60,70}; 则执行以下几个语句后的输出结果是20+40+60=120 。
…
int s = 0 ;
for (int i = 0 ; i < ; i + + )
if ( i % 2 = = 1 )
s += MyIntArray[i] ;
、异常处理是由(try)、(catch)和finally块三个关键所组成的程序块。
1.定义类的保留字是( class ),定义接口的保留字是( interface )。
2.Socket通常也称为( 套接字),用于描述( IP地址) 和( 端口)。
3.线程的优先级在( 1 )至( 10 )之间,数值越大( 任务越紧急)。
,
4.构造方法是一种特殊的成员方法,构造方法名与( 类名) 相同。
5.Java语言只允许单继承,指每个类只能有一个( 父类)。
6.Java源程序的扩展名是( .java ),经过编译后的程序的扩展名是(.class )。
7. 在一个时间只能由一个线程访问的资源称为( 临界资源) 。访问临界资源的代码( 临界代码)。
8. 在多线程系统中,多个线程之间有( 同步) 和( 互斥) 两种关系。
包中的_ObjectInputStream_____和_ObjectOutputStream_类主要用于对对象(Object)的读写。(serializable)
2.在编写异常处理的Java程序中,每个catch语句块都应该与__try_____语句块对应,使得用该语句块来启动Java 的异常处理机制。
3. 顺序执行以下两个语句的输出结果是:10____。
String s="我喜欢学习Java!";
4. Java语言通过接口支持_多重___继承,使类继承具有更灵活的扩展性。
5. 实例化对象:就是创建一个对象。用__new_____运算符来实现对象的实例化。
6.我们用_int______来定义一个整数,用__char____来定义一个字符类型,称为原始数据类型。
7. 当用户在TextField中输入一行文字后,按回车,实现__ ActionListner_______接口可实现对事件的响应。
8. 包含Swing构件的Applet(小应用程序)应该是__Applet____类的子类。
8、在Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、
编译生成字节码和解释运行字节码。
2、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。
四、简答题(4’*5=20’)
JAVA的基本数据类型有那些String是不是基本类型
float,int,char,byte,double,long,short,boolean。string不是基本类型
2、什么是继承
通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。
3、Java I/O中字符流和字节流的区别
java流在处理上分为字符流和字节流。字符流处理的单元为2个字节的Unicode字符,分别操作字符、字符数组
或字符串,而字节流处理单元为1个字节,操作字节和字节数组
4.创建线程的两种方法
a.Thread类的子类创建线程包括继承Thread类,重写run方法,在应用类中创建Thread之类的对象和调用start 方法。
B.使用Runnable接口包括实现Runnable接口,实现run方法,创建THread类对象,采用实现Runnable接口类的对象作为参数和调用start方法。
5.抽象类和接口的区别
a。接口中的所有方法都是抽象的,而抽象类可以定义带有方法体的不同方法。
b。一个类可以实现多个接口,而只能继承一个抽象父类。
c。接口与实现它的类不构成继承体系,而抽象类是属于一个类的继承体系。
d。接口中的方法默认是public abstract的,而成员变量默认是public static常量。
e。implements关键字用于实现接口,extends关键字用于继承。