1、Java 程序设计习题集第 页- 1 -目 录一、判断题 .2二、选择题 .4三、填空题 .17四、写出下列程序完成的功能 .25五、写出下面程序的运行结果 .29六、使用 Java 语言编写程序 .33七、简答题 .34Java 程序设计习题集一、判断题1Java 程序里,创建新的类对象用关键字 new,回收无用的类对象使用关键字 free。( F )2有的类定义时可以不定义构造函数,所以构造函数不是必需的。( F )3类及其属性、方法可以同时有一个以上的修饰符来修饰。( T )4Java 的屏幕坐标是以像素为单位,容器的左下角被定为坐标的起点。( F )(应该是左上角)5抽象方法必须在抽象
2、类中,所以抽象类中的方法都必须是抽象方法。( F)6Final 类中的属性和方法都必须被 final 修饰符修饰。( F )(静态的必须被静态的修饰符修饰)7最终类不能派生子类,最终方法不能被覆盖。(T )8子类要调用父类的方法,必须使用 super 关键字。( T )9一个 Java 类可以有多个父类。( F )10如果 p 是父类 Parent 的对象,而 c 是子类 Child 的对象,则语句 c = p 是正确的。( F )Java 程序设计习题集第 页- 2 -11一个类如果实现了某个接口,那么它必须重载该接口中的所有方法。( T )12当一个方法在运行过程中产生一个异常,则这个方法
3、会终止,但是整个程序不一定终止运行。( T )13接口是特殊的类,所以接口也可以继承,子接口将继承父接口的所有常量和抽象方法。( T )14用“+”可以实现字符串的拼接,用- 可以从一个字符串中去除一个字符子串。( F )15一个容器中可以混合使用多种布局策略。( T ) 16一个线程对象的具体操作是由 run()方法的内容确定的,但是 Thread类的 run()方法是空的,其中没有内容;所以用户程序要么派生一个 Thread的子类并在子类里重新定义 run()方法,要么使一个类实现 Runnable 接口并书写其中 run()方法的方法体。( T )17Java 的源代码中定义几个类,编译
4、结果就生成几个以.class 为后缀的字节码文件。( T )18Java Applet 是由独立的解释器程序来运行的。( F )19Java Applet 只能在图形界面下工作。( T )20Java 的字符类型采用的是 ASCII 编码。( F )21Java 的各种数据类型占用固定长度,与具体的软硬件平台环境无关。( T)22容器是用来组织其他界面成分和元素的单元,它不能嵌套其他容器。( F)23、Java 是不区分大小写的语言。( F)24、Java 的源代码中定义几个类,编译结果就生成几个以.class 为后缀的字节码文件。( T )25、Java Application 是由独立的解
5、释器程序来运行的。( F )26、Java Applet 的字节码文件必须嵌入 HTML 的文件中并由负责解释 HTML文件的 WWW 浏览器充当解释器来解释运行。( F )27、Java Application 只能在字符界面下工作。( F )28、Java 的字符类型采用的是 Unicode 编码,每个 Unicode 码占 16 个比特。( T )29、Java 源程序是由类定义组成的,每个程序可以定义若干个类,但只有一个类是主类。(T )30、子类的域和方法的数目一定大于等于父类的域和方法的数目。( F )31、类在实现接口的方法时,必须显示地使用 public 修饰符。( T )32
6、、一个类只能有一个父类,但一个接口可以有一个以上的父接口。(T )33、程序中抛出异常时(throw ),只能抛出自己定义的异常对象。( F )34、System 类中的 in 是一个输入对象。( T )Java 程序设计习题集第 页- 3 -35、实现一个接口,则在类中一定要实现接口中的所有方法。( T)36、所有的文件输入/输出流都继承于 InputStream 类/OutputStream 类。( F )37、一个异常处理中 finally 语句块只能有一个或者可以没有。(F )38、语句 import java.applet.Applet;最后的 Applet 是代表类(class)。
7、( T )39、类体中 private 修饰的变量在本类中能访问,类生成的对象也能访问。( F )40、线程使用 sleep()方法休眠后,可以用 notify()方法唤醒。( F )41、一个异常处理中 finally 语句块只能有一个或者可以没有。( T )42、用 Javac 编译 Java 源文件后得到代码叫字节码。(T )43、数组、类和接口都是引用数据类型。( F )44、一个 Applet 编译后的类名是 Test.class,运行此小程序的命令是Java Test。( F )45、Java 语言中一个 Char 类型的数据占用 2 个字节大小的内存空间。( T )46、编译语句
8、 Double aDouble=37.2D 不会出现编译错误。(F )47、编译语句 int aInt=66666 不会出现编译错误。(T )48、判断下面说法的正误:if(true)int i=17;System.out.println(i);运行此程序的结果是输出 17。 (F)49、float x=26f; int y=26; int z=x/y; 以上语句能正常编译和运行。 ( F)50、判断下面说法的正误:int x=9; if(x8 and x 2 的值是( B )。A、1 B、2 C、3 D、48若 a 的值为 3 时,下列程序段被执行后,c 的值是多少?( C )c = 1;i
9、f ( a0 ) if ( a3 ) c = 2; else c = 3; else c = 4;A、1 B、2 C、3 D、49在编写 Java Application 程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( C )语句。A、import java.awt.* ; B、import java.applet.Applet ;Java 程序设计习题集第 页- 5 -C、import java.io.* ; D、import java.awt.Graphics ;10对于构造函数,下列叙述正确的是( ACD ) 。A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。B、
10、构造函数的返回类型只能是 void 型。C、构造函数的主要作用是完成对类的对象的初始化工作。D、一般在创建新对象时,系统会自动调用构造函数。11下面的是关于类及其修饰符的一些描述,正确的是:( AD ) 。A、abstract 类只能用来派生子类,不能用来创建 abstract 类的对象。B、final 类不但可以用来派生子类,也可以用来创建 final 类的对象。C、abstract 不能与 final 同时修饰一个类。D、abstract 方法必须在 abstract 类中声明,但 abstract 类定义中可以没有 abstract 方法。12若需要定义一个类域或类方法,应使用哪种修饰符
11、?( A )A、static B、package C、private D、public13若在某一个类定义中定义有如下的方法: abstract void performDial( );该方法属于( D ) 。A、本地方法 B、最终方法 C、解态方法 D、抽象方法14下列关于静态初始化器的叙述中,哪一个是正确的?( B )A、静态初始化器是在构造函数之前加上 static 修饰符。B、静态初始化器是对类自身进行初始化。C、静态初始化器在同一个类中只能有一个。D、静态初始化器是在其所属的类加载内存时不是由系统自动调用执行。15不使用 static 修饰符限定的方法称为对象(或实例)方法,下列哪一
12、个说法是正确的?( AB )A、实例方法可以直接调用父类的实例方法。B、实例方法可以直接调用父类的类方法。C、实例方法可以直接调用其他类的实例方法。D、实例方法不可以直接调用本类的类方法。16设有下面两个类的定义:class Person class Student extends Person long id; / 身份证号 Java 程序设计习题集第 页- 6 -int score; / 入学总分String name; / 姓名 int getScore()return score; 问:类 Person 和类 Student 的关系是( B ) 。A、包含关系 B、继承关系C、关联关系
13、 D、无关系,上述类定义有语法错误17设有下面的两个类定义:class AA void Show() System.out.println(“我喜欢 Java!”); class BB extends AA void Show() System.out.println(“我喜欢 C+!”);则顺序执行如下语句后输出结果为:( A )AA a; BB b;a.Show(); b.Show();A、我喜欢 Java! B、我喜欢 C+!我喜欢 C+! 我喜欢 Java!C、我喜欢 Java! D、我喜欢 C+!我喜欢 Java! 我喜欢 C+!18设有下面的一个类定义:class AA stati
14、c void Show( ) System.out.println(“我喜欢 Java!”); class BB void Show( ) System.out.println(“我喜欢 C+!”); 若已经使用 AA 类创建对象 a 和 BB 类创建对象 b,则下面哪一个方法调用是正确的:( AC )A、a.Show( ) B、AA.Show( );b.Show( ) BB.Show( );C、AA.Show( ); D、a.Show( );b.Show( ); BB.Show( );19在 Java 中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值
15、也可以不相同。这种面向对象程序特性称为( C ) 。A、隐藏 B、覆盖 C、重载 D、Java 不支持此特性20对于构造函数,下列叙述不正确的是( C ) 。A、构造函数也允许重载。Java 程序设计习题集第 页- 7 -B、子类无条件地继承父类的无参构造函数。C、子类不允许调用父类的构造函数。D、在同一个类中定义的重载构造函数可以相互调用。21在使用 interface 声明一个接口时,只可以使用( D )修饰符修饰该接口。A、private B、protectedC、private protected D、public22设有下面两个赋值语句:a = Integer.parseInt(“1
16、024”);b = Integer.valueOf(“1024”).intValue();下述说法正确的是( D ) 。A、a 是整数类型变量,b 是整数类对象。B、a 是整数类对象,b 是整数类型变量。C、a 和 b 都是整数类对象并且它们的值相等。D、a 和 b 都是整数类型变量并且它们的值相等。23在 Java Applet 程序用户自定义的 Applet 子类中,常常重载( D )方法在 Applet 的界面中显示文字、图形和其它界面元素。A、start( ) B、stop( )C、init( ) D、paint( )24在 Java 中,存放字符串常量的对象属于(B )类对象。A、C
17、haracter B、StringC、StringBuffer D、Vector25在 Java 中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是( B )包。A、java.io B、java.awtC、java.applet D、java.awt.event26在 Java 图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用( C )类的对象来实现。A、JLabel B、JButtonC、JTextArea D、JTextField27创建一个标识有“关闭”按钮的语句是( D )。A、JTextField b = new JTextField(“关闭”);B、J
18、Label b = new JLabel(“关闭”);C、JCheckbox b = new JCheckbox(“关闭”);D、JButton b = new JButton(“关闭”);28在编写异常处理的 Java 程序中,每个 catch 语句块都应该与( C )语句块对应,使得用该语句块来启动 Java 的异常处理机制。A、if else B、switch C、try D、throwJava 程序设计习题集第 页- 8 -29在编写 Java Applet 程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( D )语句。A、import java.awt.* ; B
19、、import java.applet.* ;C、import java.io.* ; D、import java.awt.event.* ;30对于子类的构造函数说明,下列叙述中不正确的是( BC ) 。A、子类无条件地继承父类的无参构造函数。B、子类可以在自己的构造函数中使用 super 关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数。D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。31.欲构造 ArrayList 类的一个实例,此类继承了 Lis
20、t 接口,下列哪个方法是正确的 ?( B )A、 ArrayList myList=new Object() ; B、 List myList=new ArrayList() ; C、 ArrayList myList=new List() ; D、 List myList=new List() ;32.paint()方法使用哪种类型的参数? ( A )A、 Graphics B、 Graphics2D C、 String D、 Color33.指出正确的表达式 ( C )A、 byte=128; B、 Boolean=null; C、 long l=0xfffL; D、 double=0.9
21、239d; 34.指出下列程序运行的结果( B ) public class Example String str=new String(“good“); charch=a,b,c; public static void main(String args) Example ex=new Example(); ex.change(ex.str,ex.ch); System.out.print(ex.str+“ and “); Sytem.out.print(ex.ch); Java 程序设计习题集第 页- 9 - public void change(String str,char ch) st
22、r=“test ok“; ch0=g; A、 good and abc B、 good and gbc C、test ok and abc D、 test ok and gbc 35.运行下列程序, 会产生什么结果( B ) public class X extends Thread implements Runable public void run() System.out.println(“this is run()“); public static void main(String args) Thread t=new Thread(new X(); t.start(); A、 第一行
23、会产生编译错误 B、 第六行会产生编译错误 C、 第六行会产生运行错误 D、 程序会运行和启动 36.要从文件“ file.dat“文件中读出第 10 个字节到变量 C 中,下列哪个方法适合? ( D ) A、 FileInputStream in=new FileInputStream(“file.dat“); in.skip(9);int c=in.read(); B、 FileInputStream in=new FileInputStream(“file.dat“); in.skip(10); int c=in.read(); C、 FileInputStream in=new Fil
24、eInputStream(“file.dat“); int c=in.read(); D、 RandomAccessFile in=new RandomAccessFile(“file.dat“); in.skip(9); int c=in.readByte(); 37.容器被重新设置大小后,哪种布局管理器的容器中的组件大小不随容器大小的变化而改变?( A ) A、 CardLayout Java 程序设计习题集第 页- 10 -B、 FlowLayout C、 BorderLayout D、 GridLayout 38.给出下面代码: public class Person static i
25、nt arr = new int10;public static void main(String a) System.out.println(arr1); 那个语句是正确的?( C ) A、 编译时将产生错误; B、 编译时正确,运行时将产生错误; C 、输出零; D、 输出空。 39.哪个关键字可以对对象加互斥锁?( B ) A、 transient B synchronized C serialize D static 40.下列哪些语句关于内存回收的说明是正确的? ( B )A、 程序员必须创建一个线程来释放内存; B、 内存回收程序负责释放无用内存 C、内存回收程序允许程序员直接释放内存 D、内存回收程序可以在指定的时间释放内存对象 41.下列代码哪几行会出错: ( C )1) public void modify() 2 int I, j, k; 3) I = 100; 4) while ( I 0 ) 5 j = I * 2; 6) System.out.println (“ The value of j is “ + j ); 7) k = k + 1; 8) I-; 9) 10 A、 line 4