《Java程序设计》练习题

更新时间:2023-11-24 09:34:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《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、通过类java.net.URL中的成员方法可获得网络资源定位器的相关信息( 对 ) 37、catch块后必须有finally块。 (错 )

38、JTextArea可以用来接收多行文本的输入。 (对)

39、一个线程创建并启动后,它将执行自己的run()方法。 ( 对 ) 40、Socket的实例对象调用其成员方法getInputStream来获得该Socket所对应的输入流。( 对 )

41、在Java坐标系统中,X值从左向右增加。( 对 )

42、BorderLayout布局管理器把组件排列在北、南、东、西和中间区域。( 对 ) 43、JTextArea是提供操作单行文本的区域。( 错 ) 44、异常处理器的排列次序影响处理异常的方法。( 对 ) 45、线程可以用yield方法使较低优先级的线程运行。( 错 ) 46、随机存取文件中的记录必须等长。( 错 )

47、数据报(DatagramPacket)传输是不可靠的,无法保证包按顺序到达。( 对 ) 48、用catch(Exception exception)语句可以捕获所有异常和错误。( 错 ) 49、每个Java线程的优先级都设置在常数1~12之间,默认的优先级设置为常数6。(错) 50、当Socket连接上面的传输结束后,服务器执行Socket的shutdown方法来关闭连接。(错)

二、填空题

1、javac,java,jar,appletview 2、0.0f,false,基本,引用 3、6,248 4、false,3 5、MyPrg.java

6、Interger,parseInt() 7、2

8、抽象(或abstract),final 9、“abc”

10、引用(或复合),arraycopy 11、package MyPackage,第一行 12、implements

13、new,protected 14、继承,接口

15、对象,interface

16、abstract, 提供了一个基本类,实现代码或算法的重用

17、Object,import java.util.* ; 18、Error和Exception

19、finally,throw,throws

20、InputStream,OutputStream,字节,字符

1、在JDK操作命令中,编译命令(或编译器)是___javac__________,运行命令(或解释器)是____java_______,Java类文件归档命令是__________jar______________,使 Applet应用小程序脱离Web浏览器环境进行运行和调试的命令是___________appletview______。 2、在Java基本数据类型中,float的缺省值是______0.0f_______,boolean的缺省值是__________________。Java的变量类型分为____基本___数据类型和_____引用______数据类型。

3、已知int x=123,则表达式x/100+x0/10+x的值为__6________,表达式++x + x++的值为_____248__________。

4、设 int x=12,y=5; 执行语句(x%y==0)&&(x>y)的值为__false______,执行语句 x=x++/--y 后x的值为 3 。 5、某Java源程序中有一个类的定义为:public class MyPrg,则该源程序的文件名应该为:MyPrg.java。

6、将一个字符串s转换为int型整数,需要用到包装类___ Interger的 __parseInt() _ 方法。

7、语句String s = new String(\创建了 2 个String对象。

8、抽象 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 final 方法是不能被当前类的子类重新定义的方法。 9、定义字符串:

String s = new StringBuffer().append(\, 则s的值是____ _。

10、数组在Java语言中是一种_______引用(或复合)___________形式的数据类型,它存储的是数组的地址,而不是数组的元素值,System类里的_________arraycopy_________方法是复制数组的一种方法,它可指定需要复制元素和存放目标数组的位置。

11、创建一个名为 MyPackage 的包的语句是package MyPackage , 该语句应该放在程序的位置为:第一行。

12、在java源程序的类头中使用关键字_____implements___声明该类实现某个接口。 13、对象是用________new________关键字实例化类之后的结果,______protected________访问修饰符所声明的类成员,仅能被同包(同路径)或具有继承关系的相关类使用。

14、当一个类获取另一个类中所有的非私有的数据和操作作为它自己的部分或全部成分时,就称为这两个类之间具有_____继承_关系。________接口________是用来实现类间多重继承功能的结构。

15、用new关键字实例化类之后的结果是_____对象_____,接口是指利用_____interface______关键字来声明,其中不包含任何实现语句,仅建立抽象成员方法的一种类。

16、抽象类用关键字_____abstract______修饰,抽象类的目的是____ 提供了一个基本类,实现代码或算法的重用__。

17、Java中所有类都是类Object的子类。引用ArrayList和Vector都要加载的语句是__________import java.util.* ;____________________。

18、Throwable的直接子类是____Error和Exception ______。

19、java通过五个关键字来管理异常处理:try,catch,_finally,throw,throws___。 20、输入流和输出流在Java中对应两个抽象类____InputStream和OutputStream____。InputStream及其子类读取__字节___流数据。Reader及其子类用于读取字符流数据。

21、IOException,ArrayIndexOutOfBoundsException

22、new FileInputStream(“c:\\\\test.txt”),readLine()

23、RandomAcessFile raf=new RandomAcessFile(“c:\\\\test.txt”,“rw”);

i= raf.readInt(); 24、GridLayout、CardLayout

25、轻量级,getContentPane(),setLayout 26、JFrame,JWindow,JDialog

27、Applet,MyApplet.java 28、init(),destroy() 29、add,GUI

30、Thread,Runnable 31、start,run

32、synchronized,

从全局考虑获得锁的顺序,并且在整个程序中都遵守这个顺序;释放锁时,要按加锁的反序释放。

33、sleep,setPriority()

34、Runnable,public void run(),new Thread(rt),myThread.start() 35、TCP,UDP

36、getPort(),getLength() 37、ServerSocket,Socket 38、ServerSocket,Socket 39、accept(),receive() 40、accept(),receive()

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、java.net中提供了两个类_________________和_______________,分别用于服务器端和客户端的Socket通信。

39、用Java实现网络编程时,在有连接的Socket通信机制中,服务器端阻塞用Socket对象的_________________方法,而在无连接的Socket通信机制中, 服务器端阻塞用DatagramSocket对象的_____________________方法。

40、基于TCP的Java网络编程中,服务器端阻塞用Socket对象的方法。 基于UDP的Java网络编程中, 服务器端阻塞用DatagramSocket对象的方法。

三、选择题

1-10 BCCBA DCCAA 11-20 BABCD BABBC 21-30 CDBCB DADBC 31-40 CABBD ACCAA

1、编译Java源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( ) A) .java B) .class C) .html D) .exe 2、Java 编译程序的文件名是( )

A) java.exe B) javadoc.exe C) javac.exe D) jar.exe

3、下述那一个保留字不是类及类成员的访问控制符( )

A) public B) private C) static D) protected 4、下列变量定义合法的是 ( ) 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 char[2][3]; B) char c[][]=new char[6][]; C) char [][]c=new char[][4];

D) int []a[] = new int[10][10];

8、下列数组的定义合法的是( )

A) int a = (1,2,3); B) int d[]= (1?3);

C) int []a[] = new int[3][]; D) char [][]c=new char[][4]; 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=\

String s2=\ 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 = 8 C) b = 14, n = 8 D) b = 14, n = 7

15、下列哪个不能作为switch表达式的数据类型( ) A) int B) char C) short D) long 16、下面哪一项是Java实现动态多态性的具体手段( ) A) 重载; B) 覆盖(重写) C) 接口 D) 抽象类 17、下列哪一个是创建数组的正确指令( ) A) int[] a = new int[10]; B) int[] a = new int(10); C) int a[]; D) int[] a;

18、System.out.print(“1”+2)打印到屏幕的结果是( ) A) 3 B) 12 C) 1+2 D) 4

19、对于下列代码: public class Example{

String str=new String(\ 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+\ }

public void change(String str,char ch[]){ str=\

ch[0]= 'a';

} }

输出结果是: ( ) A) hello and d B) hello and a

C) world and d D) world and a

20、下列说法哪个是正确的? ( ) A) 子类不能定义和父类同名同参数的方法 B) 子类只能继承父类的方法,而不能重载

C) 重载就是一个类中有多个同名但有不同形参和方法体的方法 D) 子类只能覆盖父类的方法,而不能重载

21、如果一个程序段中有多个catch,则程序会按如下哪种情况执行? ( ) A) 找到合适的例外类型后继续执行后面的catch B) 找到每个符合条件的catch都执行一次

C) 找到合适的例外类型后就不再执行后面的catch D) 对每个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) StringBuffer 25、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( ) 28、下列接口或类不属于java.util.*包的是( )

D) charAt( )

A) Collection B) StringTokenizer C) MapD) Character 29、假设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 Test{

2) public static void main(String[] args){ 3) System.out.println(args[2]); 4) } 5) }

以上程序编译后用java Test 1 2 3 4运行的输出结果是什么? ( ) A) 1 B) 2 C) 3 D) 4

31、对于异常处理语句try?catch?finally,下面哪个说法是正确的?( )

A) 如果有多个catch语句,对所有的catch都执行一次 B) 如果有多个catch语句,对每个符合条件的catch都执行一次 C) 找到合适的异常类型后就不再执行后面的catch

D) 任何情况下,finally部分都会被执行一次

32、对于异常处理语句try?catch,下面那句话不正确? ( )

A、一个符合条件的catch的处理语句中没有break语句,则执行后会继续执行后续catch B、不管有没有捕获异常,finally部分都会被执行 C、找到合适的异常类型后就不再执行后面的catch D、应该先处理子异常类,再处理父异常类。

33、用文件字节输出流对文件进行写操作时,需要先创建文件输出流对象,文件输出数据流的构造方法是 public FileOutputStream(String name,Boolean append) throws FileNotFoundException,当参数append的值为true时,表示 ( ) A、创建一个新文件 B、在原文件的尾部添加数据 C、覆盖原文件的内容

D、在原文件的指定位置添加数据

34、下列哪种操作不会抛出异常?( ) A) 浮点数除0

B) 浮点数乘0

D) 用负数索引访问数组

C) 打开不存在的文件

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 I{

void 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 A{}

class B extends A{} class C extends A{} public 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() {

本文来源:https://www.bwwdw.com/article/1kzt.html

Top