1、选择题(20分)
本题共有10个小题,每个小题都有4个答案,但只有1个是正确的,请把正确答案的代码填入小题后的空格中,每个小题2分,共20分。
(1)下列不属于面向对象编程的三个特征的是( )。
A.封装 B.指针操作 C.多态性 D.继承
(2)向容器中添加新组件的方法是( )。
A.add( ) B.insert( ) C.fill( ) D.set ( )
(3)下列标识符中哪项是不合法的?( )。
A.BigMeaninglessName B.$int C.1st D.$1
(4)关于容器类(container)下列说法正确的是( )。
A.容器本身不是一个组件 B.是component类的子类
C.不具有构件的所有性质 D.不能在容器中放置其他组件或容器
(5)在Applet的生命周期中,下列哪个方法使Applet成为激活状态?( )。
A.destroy( ) B.start( ) C.init ( ) D.stop( )
(6)下列哪个选项不是inputStream类中的方法?( )
A.Public abstract int read( )throws IOException
B.Public final void writeint(int v)throws IOException
C.Public void close( ) throws IOException
D.Public int available( ) throws IOException
(7)Frame 的默认的布局管理器是下列哪一个?( )。
A.FlowLayout B.BorderLayout C.GridLayout D.CardLayout
(8)Java 程序的执行过程中用到一套JDK 工具,其中java.exe是指( )。
A.Java 文档生成器 B. Java 解释器 C.Java 编译器 D.Java 类分解器
(9) 事件处理机制能够让图形界面响应用户的操作,主要包括( )。
A、事件 B 、事件处理 C、事件源 D、以上都是
(10) java 语言中提供了用于网络工作的类和接口的包是( )。
A、java.net B、java.network
C、java.internet D、java.connect
2、填空题(20分)
本题共有10个小题,请把合适的内容填到每个小题的空白处,每小题2分,共20分。
(1)在Java中有一种叫作 的特殊方法,我们在程序中用它来对类的对象成员进行初始化。
(2)java 有两类应用程序:Java Application和 。
(3)事件源实例化后,必须进行授权,注册该类事件的 。
(4)如果一个类包含一个或多个abstract方法,它就是一个 类。
(5)设有数组定义:int MyIntArray[ ]={10,20,30,40,50,60,70};
则执行F面几个语句后的输出结果是___ ____。
int s=0;
for(int i=0; i<MyIntArray.1ength;i++)
s+=MyIntArray[i];
System.out.println(s);
(6)Java Appliction应用程序的编写和执行可分为编写源代码、 和解释执行三步。
(7)一个Applet标记中,必须出现的属性有 、WIDTH、 HEIGTH。
(8)java 语言通过接口支持 继承,是类继承具有更灵活的扩展性。
(9)数据报通信协议UDP 是无连接协议,对每个数据报是一个独立的信息传输单位,包括完整的源地址和 。
(10)用static修饰的方法,称为 方法。它们不是对象的方法,而是整个类的方法。
3、判断题(10分)
本题共有10个小题,请判断说法的正误,正确的说法在小题后括号中打√号,否则打×号,每个小题1分,共10分。
(1)Java 仅支持类间的多重继承。 ( )
(2)类的私有属性和私有方法不可以被其子类访问。 ( )
(3)重载的方法不可以通过它们的返回值类型的不同来区分。 ( )
(4) 在父类中声明为 final 的方法,不可以在其子类中被重新定义(覆盖)。( )
(5) 接口中所有方法不都为抽象方法。 ( )
(6) 子类的类成员变量不能与其父类的类成员变量同名。 ( )
(7)类头定义包含的四个部分,分别为:访问控制修饰符、类名说明、父类名说明和接口名的说明,它们中的任何一个都是不能缺少的。 ( )
(8)方法可以没有返回值,或有一个返回值,也可以有多个返回值。 ( )
(9)Java 源程序的文件名必须和主类的类名相同。 ( )
(10)Java语言中的接口可以继承,一个接口通过关键字extends可以继承另一个接口。( )
4、读程序题(每小题6分,本题共30分)
(1)阅读程序,给出程序的运行结果。
public class ClassA
{
public String a;
}
class ClassB extends ClassA
{
public String b="hello";
public static void main(String args[])
{
ClassB bb=new ClassB();
bb.a=" world";
System.out.println(bb.b+bb.a);
}
}
(2)有如下源程序:
import java.applet.Applet ;
import java.awt.Graphics ;
public class MyApplet_param extends Applet //定义主类
{
private String s = "" ; //用于接收HTML参数的程序变量
private int x ;
private int y ;
public void init ( )
{
s = getParameter ( "vstring" ) ;//接收HMTL中传递的参数
x = Integer.parseInt ( getParameter ( "x" ) ) ;
y = Integer.parseInt ( getParameter ( "y" ) ) ;
}
public void paint ( Graphics g )
{
if(s != null)
g.drawString (s,x,y);
}
}
对应的超文本文件为:
<HTML>
<BODY>
<APPLET code = "MyApplet_param.class" height=200 width = 300>
<PARAM name = vstring value = "我是来自HTML的参数">
<PARAM name = x value = 50>
<PARAM name = y value = 100>
</APPLET>
</BODY>
</HTML>
问:上述JAVA小程序的运行结果是什么?
(3)有如下源程序:
import java.awt.*;
import java.applet.*;
public class Test54 extends Applet{
B b;
public void init( ){
b=new B( 'f', 87.6f, 69.1f);
}
public void paint(Graphics g){
g.drawString("序号 "+"性别 "+"成绩1 "+"成绩2 ",20,50);
b.Print(g);
}
}
class A{
static int n=100;
char ch;
A( ) { n++; }
A( char c){ this( ); ch=c; }
void Print(Graphics g){
g.drawString(" "+n+" "+ch,20,70);
}
}
class B extends A{
float s1, s2;
B(float r1,float r2){ s1=r1; s2=r2; }
B( char c, float r1, float r2){
super(c);
s1=r1; s2=r2;
}
void Print(Graphics g){
super.Print(g);
g.drawString(" "+s1+" "+s2,40,70);
}
}
问题: 该程序的输出是什么?
(4)现有类说明如下:
class A{
int x=20;
int GetA(){return x;}
}
class B extends A{
int x=200;
int GetB(return x;}
}
问题:
1)类B是否能继承类A的属性x?。
2)若b是类B的对象,则b.GetB()的返回值是什么?
3)若b是类B的对象,则b.GetA()的返回值是什么?
4)类A和类B都定义了x属性,这种现象称为什么?
(5)阅读以下程序给出程序的功能,并给出一个水仙花数。
public class Narcissus
{
public static void main(String args[])
{
int i,j,k,n=150,m=1;
while(n<1000)
{
i = n/100;
j = (n-i*100)/10;
k = n%10;
if((Math.pow(i,3) + Math.pow(j,3) + Math.pow(k,3)) == n)
System.out.println("找到第"+ m++ + "个水仙花数:" + n);
n++;
}
}
}