610 likes | 707 Views
兴安盟广播电视大学. 《JAVA 语言和 WWW 技术 》 期末复习 主讲人:郎鸿雁 2008 年 12 月. 一、判断题. 1 .静态初始化器没有方法名、返回值和参数列表,静态初始化器是在它所属的类加载入内存时由系统自动调用。 2 .凡是 Java Applet 程序,必须加载 java.applet 包;凡是使用图形界面,必须加载 java.awt 包;凡是使用图形界面的事件处理,必须加载 java.awt.event 包。. √. √. 一、判断题.
E N D
兴安盟广播电视大学 《JAVA语言和WWW技术》 期末复习 主讲人:郎鸿雁 2008年12月
一、判断题 1.静态初始化器没有方法名、返回值和参数列表,静态初始化器是在它所属的类加载入内存时由系统自动调用。 2.凡是Java Applet程序,必须加载java.applet包;凡是使用图形界面,必须加载java.awt包;凡是使用图形界面的事件处理,必须加载java.awt.event包。 √ √
一、判断题 3.接口是一种特殊的类,接口中的域都是常量,接口中的方法都是抽象方法,因此接口中的域都应该由public static final修饰,接口中的方法都应该由public abstract修饰。 4.任何类都有构造函数,如果没有构造函数,就不能创建该类的对象。 × √
一、判断题 5.Java的事件处理机制中引入了委托事件模型,具体说来就是,所有事件类都有一个监听者接口与之相对应,而事件类中的每个具体事件类型都有一个具体的抽象方法与之对应。 6.所有已被private修饰符修饰的方法以及包含在final类中的方法,都是final方法。 × √
一、判断题 7.单行文本框TextField和多行文本区域TextArea都可以引发TextEvent类代表的TEXT_VALUE_CHANGED事件和ActionEvent类的ACTION_PERFORMED事件。 8.接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。 × √
一、判断题 9.设String对象s=”Hi”,则语句System.out.println(s.concat(”Yohoo!”))的输出是Hi Yohoo!。 10.创建Vector对象时可以指定该对象的扩展单位,如不指定系统将以Vector的初始容量为单位扩展这个对象。 √ √
一、判断题 11.Java Applet是由独立的解释器程序来解释运行的。 12.Java源程序是由类定义组成的,每个程序中只有一个类是主类,这个主类是指包含main方法的类。 × ×
一、判断题 13.数组是长度固定的数据结构,数组中的元素只能是简单数据类型;向量(Vector)对象中元素的个数是可变的,向量中的元素不能是简单数据类型 。 14.Java程序中,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 × ×
一、判断题 15.抽象方法必须存在于抽象类之中,所以抽象类中的方法都必须是抽象方法。 16.抽象类中的抽象方法必须在该类的子类中具体实现。 × ×
一、判断题 17.如果p是父类Parent的对象,而c是子类Child的对象,则语句c=p是正确的。 18.某程序中的主类不是Thread的子类,也没有实现Runnable接口,则这个主类运行时不能控制主线程睡眠。 × ×
一、判断题 19.Java中的String类的对象既可以是字符串常量,也可以是字符串变量。 20.一个暂时终止运行的线程(如阻塞或睡眠)在排除了终止原因后直接运行。 × ×
二、单项选择题 1.Java Application程序中有且只能有一个main方法,该方法头的书写合法的是( )。A.public static void main()B.public static void main(String [] args)C.public static int main(String [] arg)D.public void main(String arg[]) 答案:B
二、单项选择题 2.Java的类库被划分为若干不同的包,每个包中都有若干个具有特定功能和相互关系的类和接口。以下缺省加载的包是( )。A.java.lang包 B.java.io包C.java.util包 D.java.awt包 答案:A
二、单项选择题 3.关于被私有保护访问控制符private protecte修饰的成员变量,以下说法正确的是( )。A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类。B.可以被两种类访问和引用:该类自身、该类的所有子类。C.只能被该类自身所访问和修改。D.只能被同一个包中的类访问。 答案:B
二、单项选择题 4.下列关于修饰符混用的说法,错误的是( )。A.abstract不能与final并列修饰同一个类。B.abstract类中不可以有private的成员。C.abstract方法必须在abstract类中。D.static方法中能处理非static的属性。 答案:D
二、单项选择题 5.容器Panel和Applet缺省使用的布局编辑策略是( )。A.BorderLayout B.FlowLayout C.GridLayout D.CardLayout 答案:B
二、单项选择题 6.一般来说,每个事件类都有一个监听者接口与之相对应,而事件类中的每个具体事件类型都有一个具体的抽象方法与之对应。以下事件类( )不对应具体的事件,所有没有监听者与之相对应。A.ActionEvent B.InputEventC.ItemEvent D.MouseEvent 答案:B
二、单项选择题 7.关于以下application的说明,正确的是( )。1. class StaticStuff2. {3. static int x=10;4. static { x+=5; }5. public static void main(String args[])6. {7. System.out.println(“x=”+x);8. }9. static {x/=3;}10. }A.4行和9行不能通过编译,因为缺少方法名和返回类型。B.9行不能通过编译,因为只能有一个静态初始化其器。C.编译通过,执行结果为:x=5D.编译通过,执行结果为:x=3 答案:C
二、单项选择题 8.关于以下程序代码的说明正确的是( )。1. class HasStatic{2. private static int x=100;3. public static void main(String args[]){4. HasStatic hs1=new HasStatic();5. hs1.x++;6. HasStatic hs2=new HasStatic();7. hs2.x++;8. hs1=new HasStatic();9. hs1.x++;10. HasStatic.x--;11. System.out.println(“x=”+x);12. }13. }A.5行不能通过编译,因为引用了私有静态变量。B.10行不能通过编译,因为x是私有静态变量。C.编译通过,输出结果为:x=103D.编译通过,输出结果为:x=102 答案:D
二、单项选择题 9.通过调用new List(10,false)创建一个列表,关于该列表的几个说法哪项是错误的( )。 A.该列表不支持复选 B.该列表有10个选项 C.根据需要该列表可能有垂直滚动条 D.该列表支持10个可见选项 答案:B
二、单项选择题 10.Java中的容器( )是可以拥有菜单的容器。 A.Applet B.Panel C.FileDialog D.Frame 答案:D
二、单项选择题 11.以下程序段代码哪一项是错误的( )。 A.package testpackage; public class Test{//do something...} B.import java.io.*; package testpackage; public class Test{// do something...} C.import java.io.*; class Person{// do something...} public class Test{// do something...} D.import java.io.*; import java.awt.*; public class Test{// do something...} 答案:B
二、单项选择题 12.当Frame的大小被改变时Frame中的按钮的位置可能被改变时使用的是哪一个布局管理器( )。A.BorderLayout B.FlowLayout C.GridLayout D.CardLayout 答案:B
三、书写语句完成下面的功能 1.定义一个类,其名称为MyClass,它可以被所有的其他类访问。 答案:public class MyClass{}
三、书写语句完成下面的功能 2.调用对象Object1的方法method1,把返回值赋值给变量Hold。 答案:Hold=Object1.method1();
三、书写语句完成下面的功能 3.定义一个无形式参数无返回值的方法method2的方法头,使得通过类名作前缀就可以调用它。 答案:static void method2()
三、书写语句完成下面的功能 4.为类Class2编写构造函数的方法头,该构造函数接受两个整形形式参数。 答案:Class2(int c1,int c2)
三、书写语句完成下面的功能 5.声明并创建一个含有10个整形数据的数组,且每个数组元素的初值等于其相应的下标。 答案:int array[10]=new int[10]for(int i=0;i<array.length;i++) array[i]=i;或int array[10]={0,1,2,3,4,5,6,7,8,9};
三、书写语句完成下面的功能 6. 把二维数组TwoDimArray的每一行的第一个元素设置为零。 答案:for(int i=0;i<TwoDimArray.length;i++) TwoDimArray[i][0]=0;
三、书写语句完成下面的功能 7. 为HTML文件书写一个语句,嵌入一个名为MyApplet.class的Applet字节码文件,其宽度为300,高度为200。 答案: <applet code=”MyApplet.class” width=300 height=200>
三、书写语句完成下面的功能 8. 创建一个空白的TextField对象tf,其长度为10个字符。 答案:TextField tf=new TextField(10);
三、书写语句完成下面的功能 9. 某同学用语句drawOval(10,10,150,150)画出一个圆,请画出它的外接矩形。 答案:drawRect(10,10,150,150);
三、书写语句完成下面的功能 10. 创建一个FlowLayout,使应用该布局管理器的各个组件都向右对齐地排列。 答案: FlowLayout fl=new FlowLayout(FlowLayout.RIGHT);
三、书写语句完成下面的功能 11.创建一个下拉列表Choice对象size,并将其注册给ItemEvent类所代表的选择事件对应的监听者接口。 答案: Choice size=new Choice();size.addItemListener(this);
三、书写语句完成下面的功能 12. 在子类Child的一个构造函数中,要通过参数para1、para2和para3调用其父类Parent的构造函数,写出Child构造函数的第一个可执行语句。 答案: super(para1,para2,para3);
四、指出下列每题中的错误,并进行改正。 1.class MyClass { int var=100; static int getVar() { return var; } } 错误:静态方法getVar()不能访问非静态变量var。改正:将变量var标志为静态变量,或者将方法getVar()标志为非静态方法。
四、指出下列每题中的错误,并进行改正。 2.public class MyClass { int data; void MyClass(int d) { data=d; } } 错误:构造函数不能定义返回类型。改正:将void去掉。
四、指出下列每题中的错误,并进行改正。 3.class MyClass { int data1,data2; MyClass() { data1=-1; } MyClass(int d) { data2=d; this(); } } 错误:this和super调用构造函数必须是方法中的第一条语句。改正:将语句this();放在语句data2=d;之前。
四、指出下列每题中的错误,并进行改正。 4.public static void main(String args[]) { try { char ch=(char)System.in.read(); } catch(InterruptedException e) { System.err.println(e.toString()); } } 错误:catch块中的异常类型不对。改正:将异常类型InterruptedException改为IOException。
四、指出下列每题中的错误,并进行改正。 5.public class MyApplet extends Applet { Label MyLabel; public void init(String args[]) { MyLabel=new Label(“can you see me?”); add(MyLabel); } } 错误:方法init()不应该有参数,另外缺少import语句。改正:加上语句import java.applet.*;和import java.awt.*;,将方法init()的方法头改为public void init()。
五、写出下列程序运行后的结果。 1.源程序如下: import java.io.*; class FirstApplication { public static void main(String args[]) { int array[]={1,2,3,4,5}; printArray(array); could_modify(array); printArray(array); }
五、写出下列程序运行后的结果。 static void could_modify (int a[]) { for(int i=0;i<a.length;i++) a[i]*=i; } static void printArray(int a[]) { for(int i=0;i<a.length;i++) System.out.print(a[i]+"\t"); System.out.println(); } } 输出结果: 1 2 3 4 5 0 2 6 12 20
五、写出下列程序运行后的结果。 2.源程序如下: import java.awt.Button; import java.awt.Frame; import java.awt.FlowLayout; class ButtonFrame extends Frame { ButtonFrame(String s) { super(s); setSize(200,100); setLayout(new FlowLayout()); for(int i=0;i<6;i++) add(new Button("Button"+i)); setVisible(true); } }
五、写出下列程序运行后的结果。 class TestButtonFrame { public static void main(String[] args) { ButtonFrame buttonFrame=new ButtonFrame("Test5_2"); } } 输出结果:
五、写出下列程序运行后的结果。 3.源程序如下: import java.io.*; class Point { private double x, y; public Point(double a, double b){ x = a; y = b; } public double x() { return x; } public double y() { return y; } public boolean equals(Point p) { return (x == p.x && y == p.y); } public String toString() { return new String("(" + x + ", " + y + ")"); } public static void main(String args[]) { Point p = new Point(2,3); System.out.println("p.x() = " + p.x() + ", p.y() = " + p.y()); System.out.println("p = " + p.toString());
五、写出下列程序运行后的结果。 Point q = new Point(7,4); System.out.println("q = " + q.toString()); if (q.equals(p)) System.out.println("q equals p"); else System.out.println("q does not equal p"); q = new Point(2,3); System.out.println("q = " + q.toString()); if (q.equals(p)) System.out.println("q equals p"); else System.out.println("q does not equal p"); try { System.in.read(); } catch (Exception e) {} } }
五、写出下列程序运行后的结果。 输出结果: p.x() = 2.0, p.y() = 3.0 p = (2.0, 3.0) q = (7.0, 4.0) q does not equal p q = (2.0, 3.0) q equals p
六、以下是一个Java Application程序,用链表结构来进行队列的模拟,阅读程序后回答问题。 class Node //结点类 { private int elem; private Node next; Node(int data) { elem=data; ( A ); }
六、以下是一个Java Application程序,用链表结构来进行队列的模拟,阅读程序后回答问题。 Node(int data,Node next) { elem=data; this.next=next; } void setElem(int data) { elem=data; }
六、以下是一个Java Application程序,用链表结构来进行队列的模拟,阅读程序后回答问题。 int getElem() { return elem; } void setNext(Node next) { this.next=next; } Node getNext() { return next; } }