资源描述
复习与练习
一、单项选择题:
1. 在Java中,接口中定义的常量总是被隐式声明为___C_____。
①public ②static ③final ④void
第 14 页 共 14 页
A. ①③
B. ①②
C. ①②③
D. ②③④
2. 以下声明常量的语句不正确的是__B______。
A. final double PI=3.14159;
B. double PI=3.14159;
C. static final double PI=3.14159;
D. public static final double PI=3.14159;
3. 在java代码中,以下哪种类型的注释是正确的?___D_____
A. */ 注释行1
注释行2
注释行3 /*
B. // 注释行1
注释行2
注释行3 //
C. (* 注释行1
注释行2
注释行3 *)
D. /* 注释行1
注释行2
注释行3 */
4. 下面是有关子类继承父类构造方法的描述,其中正确的是____D____。
A. 如果子类没有定义构造方法,则子类无构造方法
B. 子类构造方法必须通过super关键字调用父类的构造方法
C. 子类必须通过this关键字调用父类的构造方法
D. 子类无法继承父类的构造方法
5. 下面关于继承的叙述正确的是___A_____。(D答案也是对的,但是老师却没给准确答复,所以单选题的话选A,多选的话就选AD)
A. 在Java中只允许单一继承
B. 在Java中一个类只能实现一个接口
C. 在Java中一个类不能同时继承一个类和实现一个接口
D. Java的单一继承使代码更可靠
6. 在Java 中,由Java编译器自动导入,而无需在程序中用import导入的包是___D____。
A. java.applet
B. java.awt
C. java.util
D. java.lang
7. 可以加在下面的不完整程序中”doing the same…”处的是____C____。
class Person{
String name, department;
int age;
public Person (String n) {name=n;}
public Person (String n, int a) {name=n; age=a;}
public Person (String n, String d, int a) {
// doing the same two arguments version of constructor
// including assignment name=n, age=a
department =d;
}
}
A. Person(n,a);
B. this(Person(n,a));
C. this(n,a);
D. this(name,age);
8. 请看下面程序,第10行调用的printValue是___D_____声明的。
1) class Person {
2) public void printValue (int i, int j) {/*…*/}
3) public void printValue (int i) {/*…*/}
4) }
5) public class Teacher extends Person {
6) public void printValue ( ) {/*…*/}
7) public void printValue (int i) {/*…*/}
8) public static void main(String args[]) {
9) Person t=new Teacher( );
10) t.printValue (10);
11) }
12) }
A. 第2行
B. 第3行
C. 第6行
D. 第7行
9. 用户可以通过单击下拉框中选择项目进行输入的GUI组件是___C___。
A. JTextField
B. ButtonGroup
C. JComboBox
D. JList
10. 下面的接口(抽象类)定义正确的是__B______。
A. public class A
private int x;
public getx() {
return x;}
B. public abstract class A{
private int x;
}
public abstract int getx();
public int amethod() {
return 0 ;}
C. public class A {
private int x;
public abstract int getx();}
D. public interface InterfaceA {
private int x;
public int getx() {
return x;}}
11. Exception类是___A____的子类。
A. Throwable类
B. Error类
C. Runnable类
D. String类
12. 取得异常细节信息的方法是__C_____。
A. getLocalizedMessage()
B. toString()
C. getMessage()
D. printStackTrace()
13. 我们可以把Swing组件放入JFrame的____C____上。
A. JRootPane
B. JLayeredPane
C. ContentPane
D. GlassPane
14. 能够将组件放在单元大小相同的一个二维网格中,组件从左到右、从上到下依次添加到网格中,这种布局管理器应该是__C_____。
A. FlowLayout
B. BorderLayout
C. GridLayout
D. CardLayout
15. 依次执行下面的语句
JButton1.setToolTipText(“aaa”);
JButton1.setEnabled(false);
则下面语句中描述正确的是_____A___。
A. 按钮不能正常使用,把鼠标移到按钮上会出现aaa的提示语句
B. 按钮可以正常使用,把鼠标移到按钮上会出现aaa的提示语句
C. 按钮不能正常使用,把鼠标移到按钮上没有任何变化
D. 按钮可以正常使用,把鼠标移到按钮上没有任何变化
16. notify()方法唤醒的线程是____C_____。
A. 通过调用stop()方法而进入阻塞状态的线程
B. 通过调用sleep()方法而进入阻塞状态的线程
C. 通过调用wait()方法而进入阻塞状态的线程
D. 通过调用join()方法而进入阻塞状态的线程
17. 对于一个实现了MouseListener接口的对象myHandler,要把鼠标事件监听器添加到一个名为button的按钮中,以便myHandler对象可以接收并处理鼠标事件。以下代码正确的是____D_____。
A. button.add(myHandler);
B. button.addListener(myHandler);
C. addMouseListener(button,myHandler);
D. button.addMouseListener(myHandler);
18. 下列说法错误的是___A_____。
A. 在Java中,File类只能表示文件,不可以表示目录。
B. 输入流InputStream和输出流OutputSteam构成字节流的祖先。
C. 读取器Reader和写出器Writer是所有字符流的超类。
D. 如果一个Java对象可以序列化,就必须实现Serializable接口。
19. 下列说法正确的是____D____。(不要求)
A. UDP是面向连接的、可靠的协议。
B. TCP是无连接服务的、不可靠的协议。
C. 在使用TCP协议的网络应用程序中,ServerSocket对象调用receive()方法在指定的端口监听到来的连接。
D. 在使用TCP协议的网络应用程序中,利用方法getInputStream()和getOutputStream()可以获得socket连接的输入和输出流。
20. 以下说法哪项是正确的是____A____。
1.class MyListener
2.extends MouseAdapter implements MouseListener{
3. public void mouseEntered(MouseEvent mev)
4. { System.out.println("Mouse entered."); }
5. }
A. 以上代码可通过编译
B. 不能通过编译,因为没有实现MouseListener接口中的所有方法
C. 不能通过编译,因为类头定义不能分行
D. 能通过编译,若组件用该类作为Mouse的监听者并且接收了mouse-exited事件,则在执行过程中会抛出异常
21、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。
A.java B.class C.html D.exe
22、设 int x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。
A.3 B.3. 5 C.4 D.5
23、main方法是Java Application程序执行的入口点,关于main方法的方法头以下哪项是合法的( B )?
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[] )
24、在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( C )语句。
A.import java.awt.* ; B.import java.applet.Applet ;
C.import java.io.* ; D.import java.awt.Graphics ;
25、在Java Applet程序用户自定义的Applet子类中,常常重载( D )方法在Applet的界面中显示文字、图形和其它界面元素。
A.start( ) B.stop( ) C.init( ) D.paint( )
26.下列不可作为Java语言中的标识符是 (____D___ )
A、 cs B、 $99 C、 错误 D、 1sin
27. 下列的哪个程序段可能导致错误(___B___ )?
A)String s=”hello”;
String t=”good”;
String k= s + t;
B)String s=”hello”;
String t;
t=s[3]+ ”one”;
C)String S=”hello”;
String standard=s.toUpperCase();
D)String S=”hello”;
String t=s + ”good”;
28.在创建对象时 必须(____B___ )
A、 先声明对象,然后才能使用对象
B、 先声明对象,为对象分配内存空间,然后才能使用对象
C、 先声明对象,为对象分配内存空间,对对象初始化,然后才能使用对象
D、上述说法都不对
29.下列常见的系统定义的异常中,哪个是数组越界异常? (____A___ )
A)ArrayIndexOutOfBoundsException B)IOException
C)NullPointerException D)ArithmeticException
30. JAVA 中(___C____ )
A 一个子类可以有多个父类,一个父类也可以有多个子类
B 一个子类可以有多个父类,但一个父类只可以有一个子类
C 一个子类可以有一个父类,但一个父类可以有多个子类
D 上述说法都不对
31.下面有关流的说法种正确的是(___D___ )
A 字节流直接建立在字符流上
B 字符流直接建立在字节流上
C 字节输入流类名以“reader”结尾
D 字节流的读取效率高于字符流
32.下列哪个选项不是InputStream类中的方法? (____B___ )
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
33.下列哪个选项是javax.swing.JApplet的父类? (_____B__ )
A)java.awt.Panel B)java.Applet.Applet
C)java.awt.Frame D)java.awt.Window
34. 以下语句有语法错的是:A
A. int x=1;y=2;z=3; B. for (int x=10,y=0;x>0;x++);
C. while (x>5); D. for( ; ;);
35.以下有关构造方法的说法,正确的是:(______A_ )
A. 一个类的构造方法可以有多个
B. 构造方法在类定义时被调用
C. 构造方法只能由对象中的其它方法调用。
D. 构造方法可以和类同名,也可以和类名不同
36. 设 int x=1,float y=2,则表达式 x / y的值是:D
A.0 B.1 C.2 D.以上都不是
37. 下列属于容器的组件有(_____B__ )
A. JButton B. JPanel C. Thread D. JTextArea
38.在java语言中实型常数45.67占用多少个储存字节(_____D__ )?(题不严密,数字精度不确定,单精度B,双精度是D)
A、 2 B、 4 C、 6 D、 8
39.下列类定义中哪些是合法的抽象类的定义?(_____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(){System.out.println(“growl”);};}
40.编译运行下面程序时有何种结果(____C___ )?
class Test{
public static void main(){
System.out.println(“hello”);
}
}
A、程序不能编译,因为main()方法定义不正确
B、程序能编译,但不能运行,因为class未声明为public的。
C、程序能无错的编译运行,但运行时产生异常。
D、程序运行时显示“hello”
41.过滤流类FilterOutputStream是BufferedOutputStream、DataOutputStream和PrintStream类的父类,下列个类中哪些是FilterOutputStream类的构造方法的有效的参数(_____B__ )?
A、InputStream B、OutputStream C、File D、RandomAccessFile
42.Java Applet在被浏览器加载的时候首先被执行且在applet整个生命周期中只被运行一次的方法是(__A_____ )?
A、init() B、start() C、opreationcrawl() D、reader()
43. 下列哪一个类的对象可以用于查询关于数据库的信息?B(不要求)
A)DatabaseMetaData B)Statement
C)Connection D)DriverManager
44.给出下列代码,如何使成员变量m被方法fun()直接访问? (_____C__ )
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 D)将private int m改为int m
45.下列关于Frame类的说法不正确的是(______C_ )
A)Frame是Window类的直接子类 B)Frame对象显示的效果是一个窗口
C)Frame被默认初始化为可见 D)Frame的默认布局管理器为BorderLayout
46.下列哪个选项的java源文件代码片段是不正确的(____B___ )?
A)package testpackage;
public class Test{}
B)import java.Io.*;
package testpackage;
public class Test{}
C) import java.io.*;
class Person{}
public class Test{}
D) import java.io.*;
import java.awt.*;
public class Test{}
47.在Frame容器中使用FlowLayout管理布局时,若要设定紧凑排列,则需要调用下列哪一个方法? (___D____ )
A)setVisible(true) B)add() C)setLayout(new FlowLayout()) D)pack()
48.下列说法中错误的一项是( C )。
A)通常编写GUI程序时,使用的是Component类的子类
B)Component类封装了组件通用的方法和属性
c)类Component是许多常用构件类的父类,但是Container不是其子类
D)许多常用的构件类都继承了Component的成员方法和变量
49.JApplet的默认布局管理器是( B )。
A)FlowLayout B)BorderLayout C)GridLayout D)BoxLayout
50.下列哪一项是Microsoft最早推出的数据库连接标准? B(不要求)
A)CORBA B)ODBC C)JDBC D)J2E
二、填空题:
1. 在Java中,所有类的父类是Object。
2. 面板对象的默认布局管理器是FlowLayout(流式布局)(中英文均可)。
3. Java源文件中最多只能有一个public类,其它类的个数不限。
4. 面向对象的语言将客观世界都看成由各种对象组成,共同特征和行为的对象组成类,类是变量和方法的集合体。
5. 设 a = 8,则表达式 a >>> 2 的值是。(十进制,假设计算机字长为8)
6. 创建一个名为 MyPackage 的包的语句是package MyPackage;。
7. 关键字Synchronized可以用来对对象加互斥锁。
8. int型public成员变量MAX_LENGTH,该值保持为常数100,则定义这个变量的语句是public final int MAX_LENGTH = 100;。
9. swing组件中JList(中英文均可)组件的对象可以使用setSelectionMode(int mode)方法设置选中模式。
10. 在Java编程中有两种常见的创建对象实例的方法,第一种是用new操作符调用类的构建器;第二种是调用类的newInstance方法,它返回一个对象实例的引用。创建InetAddress对象实例,需要采用第2种方法。(不要求)
11. DatagramPacket类用来创建UDP数据报。数据报按用途分为发送数据和接收数据。(不考)
12. 如果在执行catch块中的语句时也出现异常,try的代码将被跳过。
13. 例如以下源代码,
public class Example1{
public static void main(String args[]){…}
}
使用javac Example1.java语句编译该源程序,编译后相同路径下增加的文件名为Example1.class。
14. Java中使用FileInputStream读文件,是按字节流来处理数据的。
15. 以下代码,
class MyString extends String{
…
}
不能编译的原因是String是final类。
16. 在面向对象程序设计中通过动态绑定原理,使用单个变量(或方法)来引用不同类的对象,自动调用引用对象的对应方法。以上描述的是面向对象程序设计 多态 的特性。
17.J2EE是使用容器管理的应用平台,主要面向______企业______级别的市场。
18.异常类的最上层为Throwable类,此类有两个子类:Exception和____Error________。
19.Java 语言支持程序并行执行的多线程编程,实现了一般传统语言难以实现的某些功能;Java的线程是通过java.lang. Thread类来实现的,在该类中封装了虚拟的cpu。
20.Java 语言中,输入输出处理需要引入的包是java.io ,面向字符的输入输出类的基类是____Reader________和Writer。
21.OOP有三大特性,封装性、继承性、多态性;java中用关键字class把某些数据成员和方法成员对外隐藏起来,以避免数据成员被不正当的存取;这一操作是对OOP哪一个特性的具体体现 ____封装性________。
22.在Java程序中,通过类的定义只能实现单重继承,但通过______接口______的定义可以实现多重继承关系的模拟实现。
23.字符串分为两大类,一类是字符串常量,使用String类的对象表示;另一类是字符串变量,使用_____StringBuffer_______类的对象表示。
24.下列程序段的输出结果为_____Value is 2.Value is 3._______________________________ 。
int a=2;
switch(a){
case 2:
System.out.print("Value is 2.");
case 3:
System.out.println("Value is 3.");
break;
default:
System.out.println("end");
break;
25. 过滤字节输出流都是_____OutputStream_______抽象类的子类。
26.Java中访问控制符(权限修饰符)有____public________,protected,private和默认修饰符(无修饰符)等。
27 Java程序分为应用程序和小程序两种,其中应用程序必须包含_____main__________方法,该方法的格式是public static void main(String args[])。小程序必须从___Applet___类继承而来。
28 Java程序通过___continue___________语句跳出本次循环。
29 列举一个最常见到的runtime exception(运行时异常类型)____ArrayStoreException___。
30 抽象类通过____abstract_____关键字声明,此关键字不能和___final___修饰符一起连用。
31若想引用util包中的所有类,其格式应该为__import java.util.*;_____________。
32已知定义字符串s,其格式为
String s=new String (“hello”).
若要求出s的长度,应调用String类中的____length()___方法。
33 若要实现多线程的同步处理,应用___Synchronized______修饰方法,使得被修饰的方法一次只能由一个线程使用。
34 阅读以下程序,输出结果为 ______4,5___________ 。
class MySuper {
public long getLength(){
return 4;
}
}
public class SubDemo extends MySuper {
public long getLength(){
return 5;
}
public static void main (String[] args){
MySuper sooper = new MySuper();
SubDemo sub = new SubDemo();
System.out.println(sooper.getLength()+ "," + sub.getLength());
}}
35 请将下面程序填充完整:
class fruit extends Thread
{
public void run()
{
for(int i=0;i<5;i++)
{
System.out.println(i+" "+this.getName());
}
System.out.println("done!"+getName());
}
}
class two
{
public static void main(String args[])
{
fruit f1=new fruit();
_______f1.start();__________________;//启动线程f1
}
}
三、程序阅读题(这个老师没给,都是大家的答案,怎么看大家懂得~~)
4. 阅读以下程序:
public class A
{ public static void main(String[] args)
{String s,s1="";
char c;
s=args[0];
for (int i=0;i<s.length();i++)
{ c=s.charAt(i);
if(c>='a' && c<='z'){
s1=s1+Character.toUpperCase(c);
}else{ s1=s1+Character.toLowerCase(c);}}
System.out.println(s1);}}
若在dos命令行输入:java A ABcdE,
则输出为 abCDe 。
5. 阅读以下程序,输出结果为 -1 。
import java.io.*;
public class ATest{
public static void main(String args[]) {
SubClass sb = new SubClass( );
System.out.println(sb.funOfMod( )); }}
class SuperClass{
int a = -10 , b =-3 ;}
class SubClass extends SuperClass
{ int funOfMod( ) { return a%b; }}
6. 阅读以下程序,输出结果为 Programming ,java 。
public class Change{
public static void main(String[] args){
Changer c=new Changer();
c.method(args);
System.out.println(args[0]+”,”+args[1]);}}
class Changer{
void method(String[] s){
String temp=s[0];
s[0]=s[1];
s[1]=temp;}}
通过以下命令运行该程序,
java Change Java Programming
7. 以下程序段的输出结果为 123 。
class C1 {
C1 () {
System.out.print ("1");}}
class C2 extends C1 {
C2() {
System.out.print ("2");}}
public class C3 extends C2 {
C3() {
System.out.println("3");}
public static void main(String[] args) {
C3 c = new C3( );}}
8. 以下程序段的输出结果为 aaacccbbb 。
class a{
public a(){
System.out.print("aaa");}}
public class Extends extends a {
Extends(){
this(12);
System.out.print("bbb");}
Extends(int x){
System.out.print("ccc");}
public static void main(String[] args)
{
new Extends();
}
}
五、编程题:
1. 编写一个输出"Hello World!"的程序(Application)
1 .public class Hello{
public static void main(string args[])
{System.out.println(“Hello World!”);}
}
2 .设计一个Teacher类,包括4个String类型的私有字段Name、TeacherID、Address、Course,以及供外部访问(返回或设置)这4个私有字段对应的方法getName、setName、getTeacherID、setTeacherID、getAddress、setAddress、getCourse、setCourse。同时,Teacher类还有一个能按查询条件字符串(qryString)查询老师授课课程的方法queryCourse,若qryString与该Teacher的TeacherID相符,该方法返回字符串类型的课程名称(Course);若不相符,返回空字符串。
最后,编写Test类:
1) 声明Teacher类的对象
2) 设置该对象中的4个私有字段分别为:TeacherID=”001”、Name=”Peter”、Address=”Beijing”、Course=”OS”
假设qryString为001,查询该教师教授的课程;显示“Teacher:此处为对象的Name,Course:此处为对象的课程”
2.
class Teacher{
private String Name;
private String TeacherID;
private String Address;
private String Course;
public void setName(String n){
Name=n;
}
public void setTeacherID(String ID){
TeacherID=ID;
}
public void setAddress(String add){
Address=add;
}
public void setCourse(String c){
Course=c;
}
public String getName(){
return Name;
}
public String getTeacherID(){
return TeacherID;
}
public String getAddress(){
return Address;
}
public String getCourse(){
return Course;
}
public String queryCourse(String qryString){
if (TeacherID.equals(
展开阅读全文