《Java程序设计》练习题.doc
Java程序设计练习题一、判断题1、Java语言采用面向对象的思想编程,具有跨平台、分布式、多线程等优点。( )2、在main方法中可以直接调用非静态的方法。 ( )3、方法重载就是一个类中有多个同名但有不同形参和方法体的方法。 ( )4、抽象类可有构造方法,因此也能用new进行实例化。 ( )5、一个类可继承多个父类,实现多个接口。 ( )6、用final修饰的类不能被继承。 ( )7、在Java程序中发生异常时,JVM会找到每个符合条件的catch都执行一次。 ( )8、一个Java源程序可有多个类,但只仅有一个public类,而且源程序名与public类名相同。( )9、类A和类B在同一个包中,则除了私有成员外,类A可以访问类B的所有成员。( )10、接口中的成员变量全部为常量,方法为抽象方法。 ( )11、方法中的形参可以和方法所属类的属性同名。 ( )12、接口无构造器,不能有实例,也不能定义常量。 ( )13、java的类不允许嵌套定义。 ( )14、在接口中所有的方法都是抽象方法,所以必须在方法定义之前加上abstract关键字。 ( )15、抽象类中不能包含final修饰的方法。 ( )16、在Java程序中异常分为运行时异常和非运行时异常,非运行异常必须进行处理( )17、System.out和System.err都是标准的输出流,都可以在监视器上打印输出 ( )18、在JFrame中添加组件时不能直接用add方法。 ( )19、如果想让Frame窗口能够被关闭,则可以实现WindowListener接口,并且实现windowClosing()方法。 ( )20、GridLayout的构造器可以包含两个参数,分别是指网格的行数和列数,行数为0则表示可以有任意行,列数为0则表示可以有任意列 ( )21、启动多线程必须调用start()方法,如果调用run方法则没有启动新的线程 ( )22、run方法是运行线程的主体,若run方法运行结束,线程就消亡了。 ( )23、利用File对象可以判断一个文件或目录是否存在。 ( )24、JFrame,JPanel,JApplet和JButton四种组件都属于容器组件。 ( )25、BorderLayout是面板的缺省布局管理器。 ( )26、BorderLayout最多可以使用5个组件。 ( )27、一个面板(JPanel)不能被加入另一个面板(JPanel)中。 ( )28、菜单需要一个JMenuBar对象,以使他们能被添加到JFrame。 ( ) 29、线程可以用yield使同优先级的线程运行。 ( ) 30、System.in是标准输入流,能用read方法读取键盘的输入。 ( )31、数据流就是数据通信通道,指在计算机的输入输出之间运动的数据序列。( )32、标签(JLabel)可以在屏幕上显示一个字符或一幅画。 ( )33、BorderLayout是容器javax.swing.JFrame默认的布局管理器。 ( )34、编写小应用程序(Applet)一般需要编写两种类型的文件,即Java源文件和Html文件。 ( )35、要在程序中实现多线程,必须在源程序前面使用import语句显示的导入Thread类。 ( )36、通过类.URL中的成员方法可获得网络资源定位器的相关信息( )37、catch块后必须有finally块。 ( )38、JTextArea可以用来接收多行文本的输入。 ( )39、一个线程创建并启动后,它将执行自己的run()方法。 ( )40、Socket的实例对象调用其成员方法getInputStream来获得该Socket所对应的输入流。( ) 51、在Java坐标系统中,X值从左向右增加。( )52、BorderLayout布局管理器把组件排列在北、南、东、西和中间区域。( )53、JTextArea是提供操作单行文本的区域。( )54、异常处理器的排列次序影响处理异常的方法。( )55、线程可以用yield方法使较低优先级的线程运行。( )56、随机存取文件中的记录必须等长。( )57、数据报(DatagramPacket)传输是不可靠的,无法保证包按顺序到达。( )58、用catch(Exception exception)语句可以捕获所有异常和错误。( )59、每个Java线程的优先级都设置在常数112之间,默认的优先级设置为常数6。( )60、当Socket连接上面的传输结束后,服务器执行Socket的shutdown方法来关闭连接。( )二、填空题1、在JDK操作命令中,编译命令(或编译器)是_,运行命令(或解释器)是_,Java类文件归档命令是_,使 Applet应用小程序脱离Web浏览器环境进行运行和调试的命令是_。2、在Java基本数据类型中,float的缺省值是_,boolean的缺省值是_。Java的变量类型分为_数据类型和_数据类型。3、已知int x=123,则表达式x/100+x%100/10+x%10的值为_,表达式+x + x+的值为_。4、设 int x=12,y=5; 执行语句(x%y=0)&&(x>y)的值为_,执行语句 x=x+/-y 后x的值为 。5、某Java源程序中有一个类的定义为:public class MyPrg,则该源程序的文件名应该为: 。6、将一个字符串s转换为int型整数,需要用到包装类_ _ 的 _ _ 方法。7、语句String s = new String("xyz");创建了 个String对象。8、 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 方法是不能被当前类的子类重新定义的方法。9、定义字符串:String s = new StringBuffer().append("a").append("b").append("c").toString();,则s的值是_ _。10、数组在Java语言中是一种_形式的数据类型,它存储的是数组的地址,而不是数组的元素值,System类里的_方法是复制数组的一种方法,它可指定需要复制元素和存放目标数组的位置。11、创建一个名为 MyPackage 的包的语句是 ,该语句应该放在程序的位置为: 。12、在java源程序的类头中使用关键字_声明该类实现某个接口。13、对象是用_关键字实例化类之后的结果,_访问修饰符所声明的类成员,仅能被同包(同路径)或具有继承关系的相关类使用。14、当一个类获取另一个类中所有的非私有的数据和操作作为它自己的部分或全部成分时,就称为这两个类之间具有_关系。_是用来实现类间多重继承功能的结构。15、用new关键字实例化类之后的结果是_,接口是指利用_关键字来声明,其中不包含任何实现语句,仅建立抽象成员方法的一种类。16、抽象类用关键字_修饰,抽象类的目的是_。17、Java中所有类都是类 的子类。引用ArrayList和Vector都要加载的语句是_。18、Throwable的直接子类是_ _和_ _。19、java通过五个关键字来管理异常处理:try,catch,_,_,_。20、输入流和输出流在Java中对应两个抽象类_和_。InputStream及其子类读取_流数据。Reader及其子类用于读取 流数据。21、输入输出异常类的类名是: 、数组下标越界异常类的类名是: 。22、用FileInputStream类创建文件(c:test.txt)对象的语句是_,DataInputStream对象提供_方法可以按行读取文件内容。23、创建以读写方式打开文件(c:test.txt)的RandomAcessFile对象,并使得raf成为该对象的应用变量的语句是 ;之后,从c:test.txt文件中读取一个int型整数到变量i中可以使用语句: 。24、在编写Java界面程序时,常用的布局管理器包括流式布局管理器FlowLayout、边界布局管理器BorderLayout、_和_。25、相对于AWT的组件来说,swing中的组件被称作 ,JFrame是swing中的顶层容器组件,不能直接在它上面放置其他组件,而必须将组件放置在它内容面板上,获得其内容面板容器的方法是: 。容器组件的布局管理器 决定放置在它上面的各组件的大小和位置,可以用 方法设置容器组件的布局管理器。26、在Swing GUI层次体系中的顶层容器主要包括 javax.swing. 、javax.swing. 和javax.swing. 。27、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 类的子类并且存储该源程序文件的文件名为 。28、当小应用程序被调用时,类Applet成员方法 被首先调用,当关闭小应用程序时,类Applet成员方法 被最后调用。29、Container 的_方法可以将_组件加入容器。30、编写一个线程可以用继承 类和实现 接口来实现。31、在执行Java线程的程序中,程序通过调用_方法启动线程,随后又调用_方法。32、如果几个并发线程对相同的数据对象进行存取,可能导致数据不一致,为避免发生这种情况,需要编程实现线程同步,在执行访问共享数据的代码时对数据加互斥锁,加锁语句的关键字是_ _,如果编程时不注意,加锁可能导致死锁,避免死锁的一般做法是 。33、Java线程程序可以调用_方法,使线程进入睡眠状态,可以通过调用_方法设置线程的优先级。34、通过实现接口 可以创建一个包含线程体的类,该接口只申明了一个方法: ,假定一个线程体对象为rt,则可以用Thread myThread = 语句来创建一个线程对象,并用语句 启动myThread线程对象。35、Java提供两种套接字,其中使用_协议的被成为流套接字,使用_协议的被称为数据报套接字。36、DatagramPacket类的_方法返回一个整数,它指定DatagramPacket的端口;DatagramPacket类的_方法返回一个整数, 它代表DatagramPacket中的字节数。37、在TCP协议下建立通信程序,在服务器端首先要创建类 的实例对象;在客户端,创建类 实例对象。38、中提供了两个类_和_,分别用于服务器端和客户端的Socket通信。39、用Java实现网络编程时,在有连接的Socket通信机制中,服务器端阻塞用Socket对象的_方法,而在无连接的Socket通信机制中, 服务器端阻塞用DatagramSocket对象的_方法。40、基于TCP的Java网络编程中,服务器端阻塞用Socket对象的 方法。基于UDP的Java网络编程中, 服务器端阻塞用DatagramSocket对象的 方法。三、选择题1、编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( ) A) .java B) .class C) .html D) .exe2、Java 编译程序的文件名是( ) A) java.exe B) javadoc.exe C) javac.exe D) jar.exe3、下述那一个保留字不是类及类成员的访问控制符( ) A) public B) private C) static D) protected4、下列变量定义合法的是 ( ) A) boolean flag=False; B) int k = 1+1; C) char c = “b”; D)float radius = 1.2; 5、下面哪个是不合法的变量名称? ( )A) 2D B) True C) _name D) T1 6、 下面哪个定义变量的语句不合规范? ( )A、 int retireAge=60;B、 final int RETIREAGE=60;C、 static int retireAge=60;D、 private int RETIREAGE=60; 7、下列数组的定义不合法的是: ( )A) char c=new char23;B) char c=new char6;C) char c=new char4;D) int a = new int1010;8、下列数组的定义合法的是( )A) int a = (1,2,3); B) int d= (13);C) int a = new int3;D) char c=new char4;9、下述哪个说法是不正确的?( )A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法D) for语句中定义的变量,当for语句执行完时,该变量就消亡了10、下列说法中,不正确的是( ) A) 一个java源程序编译通过后,得到的结果文件数也只有一个。B) 一个java源程序经过编译后,得到的文件的扩展名一定是.class。C) 一个java源程序只能有一个public class类定义,且源文件的名字与public class的类名相同,扩展名必须是.java。D) 一个java源程序可以包含多个class类。11、下列说法中,不正确的是: ( )A、一个java源程序经过编译后,得到的文件的扩展名一定是.class。B、一个java源程序编译通过后,得到的结果文件数也只有一个。C、一个java源程序编译通过后,得到的结果文件数可能有个。D、一个java源程序编译通过后,不一定能用java解释器执行。12、对于以下声明:String s1="hello" String s2="world" String s3; 下面的操作合法的是( ) A)s3=s1+s2; B)s3=s1-s2; C)s3=s1&s2; D)s3=s1&&s2;13、下面的代码合法的是: ( )A) public abstract method();B) public abstract void method();C) public abstract void method() ;D) public void method() implements abstract;14、执行语句:int n = 7; int b = 2 * n+;后,b和n的值分别是 ( ) A)b = 15, n = 8 B)b = 16, n = 8C)b = 14, n = 8D)b = 14, n = 715、下列哪个不能作为switch表达式的数据类型( )A)int B)charC)shortD)long16、下面哪一项是Java实现动态多态性的具体手段( )A)重载; B)覆盖(重写)C)接口D)抽象类17、下列哪一个是创建数组的正确指令( )A)int a = new int10; B)int a = new int(10);C)int a;D)int a;18、System.out.print(“1”+2)打印到屏幕的结果是( )A)3B)12C)1+2D)419、对于下列代码: public class ExampleString str=new String("hello");char ch='d','b','c'public static void main(String args)Example ex=new Example();ex.change(ex.str,ex.ch);System.out.println(ex.str+"and"+ex.ch0);public void change(String str,char ch)str="world"ch0= 'a'输出结果是: ( )A) hello and d B) hello and aC) world and d D) world and a20、下列说法哪个是正确的? ( )A) 子类不能定义和父类同名同参数的方法B) 子类只能继承父类的方法,而不能重载C) 重载就是一个类中有多个同名但有不同形参和方法体的方法D) 子类只能覆盖父类的方法,而不能重载21、如果一个程序段中有多个catch,则程序会按如下哪种情况执行? ( )A) 找到合适的例外类型后继续执行后面的catchB) 找到每个符合条件的catch都执行一次C) 找到合适的例外类型后就不再执行后面的catchD) 对每个catch都执行一次22、以下哪一项不是File类的功能: ( )A) 创建文件B) 创建目录C) 删除文件D) 拷贝文件23、下列说法哪个是正确的? ( )A) BorderLayout是面板的缺省布局管理器B) 当鼠标指针位于一个GUI组件的边上时,发生一个MouseEvent事件C) 一个面板(JPanel) 不能被加入到另一个面板(JPanel)中D) 在BorderLayout中,添加到NORTH区的两个按钮将并排显示。24、下列类不属于java.lang.*包的是( )A) Math B) System C) Date D) StringBuffer25、System类属于下列哪个包?( )A) java.io.*B) java.lang.*C) java.util.* D) java.awt.*26、下列哪个不属于File类中的方法( )A) exists( ) B) delete( ) C) mkdir( ) D) copy( )27、下列哪个不属于StringBuffer类中的方法?( )A) compareTo ( )B) indexOf( )C) append( ) D) charAt( )28、下列接口或类不属于java.util.*包的是( )A) CollectionB) StringTokenizerC) Map D) Character29、假设int x=4,y=100,下列语句的循环体共执行几次?( )while(y/x>3) if(y%x>3) x=x+1; else y=y/x; A) 1次 B) 2次 C) 3次 D) 4次30、Test.java程序代码如下:1) public class Test2) public static void main(String args)3) System.out.println(args2);4) 5) 以上程序编译后用java Test 1 2 3 4运行的输出结果是什么? ( )A) 1 B) 2 C) 3 D) 431、对于异常处理语句trycatchfinally,下面哪个说法是正确的?( )A) 如果有多个catch语句,对所有的catch都执行一次B) 如果有多个catch语句,对每个符合条件的catch都执行一次C) 找到合适的异常类型后就不再执行后面的catchD) 任何情况下,finally部分都会被执行一次32、对于异常处理语句trycatch,下面那句话不正确? ( )A、一个符合条件的catch的处理语句中没有break语句,则执行后会继续执行后续catchB、不管有没有捕获异常,finally部分都会被执行C、找到合适的异常类型后就不再执行后面的catchD、应该先处理子异常类,再处理父异常类。33、用文件字节输出流对文件进行写操作时,需要先创建文件输出流对象,文件输出数据流的构造方法是 public FileOutputStream(String name,Boolean append) throws FileNotFoundException,当参数append的值为true时,表示 ( )A、创建一个新文件B、在原文件的尾部添加数据C、覆盖原文件的内容D、在原文件的指定位置添加数据34、下列哪种操作不会抛出异常?( )A) 浮点数除0 B) 浮点数乘0C) 打开不存在的文件 D) 用负数索引访问数组35、在java程序中,下列关于线程的说法错误的是( )A) 线程启动调用start方法B) 线程的主体是run方法C) 线程运行中调用sleep方法可以进入阻塞状态D) 在java中,优先级的数值为1的线程可以抢占优先级为5的线程的资源36、下述哪一组方法,是一个类中方法重载的正确写法? ( )A、int addValue( int a, int b )return a+b; float addValue ( float a, float b) return a+b;B、int addValue (int a, int b )value=a+b; float addValue ( int a, int b) return (float)(a+b);C、int addValue( int a, int b )return a+1; int addValue ( int a, int b) return a+b;D、int addValue( int a, int b ) return a+b; int addValue ( int x, int y ) return x+y;37、若编译和运行下列代码,出现的结果将是 ( )class MyClass int i = 0;public int myMethod(int x) return i+x; public static void main(String args) System.out.println(myMethod(10); A、0 B、10 C、编译出错 D、 以上答案都不对38、以下是接口I的定义:interface Ivoid setValue(int val);int getValue();以下哪个代码能通过编译?( )A) class A extends I int value; void setValue(int val)value=val; int getValue()return value;B) class B implements I int value; void setValue(int val)value=val;C) interface C extends I void increment( );D) interface D implements I void increment();39、对于以下类:class Aclass B extends Aclass C extends Apublic class Test public static void main(String args) A x= new A(); B y=new B(); C z=new C(); /此处插入一条语句 下面哪个语句可以放到插入行? ( ) A) x=y; B) z=x; C) z=(C)y; D) y=(A)y;40、若编译和运行下列代码,出现的结果将是 ( )public class MyAdd extends Thread static int total = 10; int n; public MyAdd(int n) this.n=n; public void run() try sleep(n); total=total+n; System.out.println(total);catch(Exception e) System.out.println(“EXCEPTION!”); public static void main(String args) MyAdd t1 = new MyAdd(3000); MyAdd t2 = new MyAdd(1000); t1.start(); t2.start(); A、打印 1010, 4010 B、 打印 3010, 4010C、打印 1010, 3010 D、 打印 3010, 101041、若编译和运行下列代码,出现的结果将是_? ( )public class MyThread implements Runnable String myString = "Yes " public void run() this.myString = "No " public static void main(String args) MyThread t = new MyThread(); new Thread(t).start(); for (int i=0; i < 10; i+) System.out.print(t.myString); A、打印 yes yes yes yes yes yes yes yes yes yes B、 打印 no no no no no no no no no noC、打印 yes no yes no yes no yes no yes no D、 打印结果无法确定42、下列说法哪个是不正确的?