2022年《JAVA语言程序设计》期末考试试题及答案 .pdf
学而不思则惘,思而不学则殆JAVA 语言程序设计期末考试试题及答案(应考必备题库)一、单选择题1、编译 Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为 ( )。A. java B. .class C. html D. .exe 2、设 x = 1 , y = 2 , z = 3,则表达式yz/x 的值是( )。A. 3 B. 3. 5 C. 4 D. 5 3、不允许作为类及类成员的访问控制符的是( )。A. public B. private C. static D. protected 4、为 AB 类的一个无形式参数无返回值的方法method书写方法头, 使得使用类名 AB 作为前缀就可以调用它,该方法头的形式为( )。A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题1、开发与运行 Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码和解释运行字节码。2、在 Java的基本数据类型中, char型采用 Unicode 编码方案,每个Unicode码占用2字节内存空间,这样,无论是中文字符还是英文字符,都是占用2字节内存空间。3、设 x = 2 ,则表达式( x + + )3 的值是0 。4、 若 x = 5, y = 10, 则 x = y 的逻辑值分别为true和false。5、抽象(abstract) 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。最终(final) 方法是不能被当前类的子类重新定义的方法。6、创建一个名为MyPackage 的包的语句是 package MyPackage ; ,该语句应该放在程序的位置为:应该在程序第一句。7、设有数组定义: int MyIntArray = 10 , 20 , 30 , 40 , 50 , 60 , 70; 则执行以下几个语句后的输出结果是120。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆int s = 0 ; for (int i = 0 ; i MyIntArray.length ; i + + ) if ( i % 2 = = 1 ) s += MyIntArrayi ; System.out.println(s); 8、在 Java程序中,通过类的定义只能实现单重继承,但通过接口的定义可以实现多重继承关系。三、写出下面程序的运行结果1、 import java.io.*; public class abc public static void main(String args ) AB s = new AB(Hello!,I love JA VA.); System.out.println(s.toString( ); class AB String s1; String s2; public AB(String str1, String str2) s1 = str1; s2 = str2; public String toString( ) return s1+s2; 运行结果: Hello! I love JAVA. 2、 import java.io.* ; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆public class abc public static void main(String args ) int i, s = 0 ; int a = 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 ; for ( i = 0 ; i a.length ; i + ) if ( ai%3 = = 0 ) s += ai ; System.out.println(s=+s); 运行结果: s = 180 3、import java.io.* ; public class abc public static void main(String args ) System.out.println(a=+a+nb=+b); class SubClass extends SuperClass int c; SubClass(int aa, int bb, int cc) super(aa, bb); c=cc; class SubSubClass extends SubClass int a; SubSubClass(int aa, int bb, int cc) super(aa, bb, cc); A = aa+bb+cc; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆void show() System.out.println(a=+a+nb=+b+nc=+c); 运行结果: a=60 b=20 c=30 JAVA 语言程序设计 期末考试试题及答案2 (应考必备题库)一判断题1Java的源代码中定义几个类,编译结果就生成几个以.class 为后缀的字节码文件。 ( )2Java程序里 ,创建新的类对象用关键字new,回收无用的类对象使用关键字free。 ( )3Java有垃圾回收机制,内存回收程序可在指定的时间释放内存对象。( )4构造函数用于创建类的实例对象,构造函数名应与类名相同,返回类型为void。 ( )5在异常处理中,若try 中的代码可能产生多种异常则可以对应多个catch 语句,若catch中的参数类型有父类子类关系,此时应该将父类放在后面,子类放在前面。( )6拥有 abstract方法的类是抽象类,但抽象类中可以没有abstract方法。( )7Java的屏幕坐标是以像素为单位,容器的左下角被确定为坐标的起点。( )8静态初始化器是在其所属的类加载内存时由系统自动调用执行。( )9在 Java 中对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。( )名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆二单项选择题1Java application 中的主类需包含main 方法,以下哪项是main 方法的正确形参?()A、 String args B、String ar C、Char arg D、StringBuffer args 2以下关于继承的叙述正确的是() 。A、在 Java中类只允许单一继承B、在 Java中一个类只能实现一个接口C、在 Java中一个类不能同时继承一个类和实现一个接口D、在 Java中接口只允许单一继承3paint()方法使用哪种类型的参数 ? ()A、Graphics B、Graphics2D C、String D、Color 4以下哪个不是 Java的原始数据类型()A、int B、Boolean C、float D、char 5以下哪项可能包含菜单条() 。A、Panel B、Frame C、Applet D、Dialog 6若需要定义一个类域或类方法,应使用哪种修饰符?()A、static B、package C、private D、public 7在浏览器中执行 applet 程序,以下选项中的哪个方法将被最先执行() 。A、init() B、start() C、destroy() D、stop() 8给出下面代码,关于该程序以下哪个说法是正确的?()public class Person static int arr = new int5; public static void main(String a) System.out.println(arr0); A、编译时将产生错误B、编译时正确,运行时将产生错误C、输出零D、输出空9下列哪些语句关于Java内存回收的说明是正确的 ? ()名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆A、程序员必须创建一个线程来释放内存B、内存回收程序负责释放无用内存C、内存回收程序允许程序员直接释放内存D、内存回收程序可以在指定的时间释放内存对象10以下哪个关键字可以用来对对象加互斥锁?()A、transient B、synchronized C、 serialize D、static 11以下代码段执行后的输出结果为()int x =3;int y =10;System.out.println(y%x); A、-1 B、2 C、1 D、3 12有以下程序片段,下列哪个选项不能插入到行1。 ()1. 2 .public class Interesting 3. /do sth 4. A、import java.awt.*; B、package mypackage; C、class OtherClass D、public class MyClass 13. 设有下面两个赋值语句:a = Integer.parseInt(“12”);b = Integer.valueOf(“12”).intValue();下述说法正确的是() 。A、a是整数类型变量, b 是整数类对象。B、a 是整数类对象, b 是整数类型变量。C、a和 b 都是整数类对象并且值相等。D、a和 b 都是整数类型变量并且值相等。14 FilterOutputStream是 BufferedOutputStream 、 DataOutputStream及 PrintStream的父类,以下哪个类可能是FilterOutputStream构造函数的参数类型?A、OutputStream B、File C、InputStream D、BufferedOutputStream 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 6 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆15在编写 Java Applet 程序时,需在程序的开头写上( )语句。A、import java.awt.* ; B、import java.applet.Applet ; C、import java.io.* ; D、import java.awt.Graphics ; 16类 Parent 、Child 定义如下:1public class Parent 2 public float aFun(float a, float b) throws 3IOException 4 5public class Child extends Parent 67 将以下哪种方法插入行6 是不合法的。()A、float aFun(float a, float b) B、public int aFun(int a, int b)throws Exception C、public float aFun(float p, float q) D、public int aFun(int a, int b)throws IOException 17在使用 interface声明一个接口时,只可以使用()修饰符修饰该接口。A、private B、protected C、private protected D、public 18、有以下方法的定义,请选择该方法的返回类型() 。ReturnType method(byte x, double y) return (short) x/y*2; A、byte B、short C、int D、double 19、关于以下代码段的说法正确的是()1String s=abcde; 2StringBuffer s1=new StringBuffer(abcde); 3if(s.equals(s1) 4s1=null; 5if(s1.equals(s) 6s=null; A、第 1 行编译错误, String 的构造器必须明确调用名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 7 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆B、第 3 行编译错误,因为s与 s1 有不同的类型C、编译成功,但执行时在第5 行有异常抛出D、编译成功,过程中也没有异常抛出20、编译并运行以下程序,以下描述哪个选项是正确的()1. class X 2. protectied String toString( )i 3. return super.toString(); 4. A、编译通过运行无异常B、编译通过但运行时出错C、行 2 出错,不能成功编译D、不能成功编译,行3 出错三程序阅读题1以下程序的输出结果为相等。class StringTest1 public static void main(String args) String s1=hello; String s2=new String(hello); if(s1.equals(s2) System.out.println(相等); else System.out.println(不相等 ); 2以下程序段的输出结果为5 6 7 8 9。public class TestArray public static void main(String args ) int i , j ; int a = 5,9,6,8,7; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆 for ( i = 0 ; i a.length-1; i + ) int k = i; for ( j = i ; j a.length ; j+ ) if ( ajak ) k = j; int temp =ai; ai = ak; ak = temp; for ( i =0 ; ia.length; i+ ) System.out.print(ai+ ); System.out.println( ); 3写出以下程序的功能。import java.io.*; public class TestFile public static void main(String args) throws Exception BufferedReader br = new BufferedReader( new InputStreamReader(System.in); BufferedWriter bw = new BufferedWriter(new FileWriter(“input.txt); String s; while (true) System.out.print(请输入一个字符串:); System.out.flush(); s=br.readLine(); if (s.length()=0) break; bw.write(s); bw.newLine(); bw.close(); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆 功能:从键盘逐一输入字符串,逐一输出至input.txt 文件中,直至输入空行。4阅读以下程序,写出输出结果。class Animal Animal() System.out.print (Animal ); public class Dog extends Animal Dog() System.out.print (Dog ); public static void main(String args) Dog snoppy= new Dog(); 输出结果: Animal Dog JAVA 语言程序设计 期末考试试题及答案3 (应考必备题库)一、单项选择题1、如下哪个是 Java中的标识符()A、public B、super C、3number D、width 2、如下哪个是 Java中的标识符 ( ) A、fieldname B、super C、3number D、#number 3、已知如下定义: String s = story; 下面哪个语句不是合法的 ( ) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆A、s += books; B、s = s + 100; C、int len = s.length; D、String t = s + “abc”; 4、如下哪个是 Java中有效的关键字 () A、name B、hello C、false D、good 5、下面的代码段执行之后count 的值是什么 ( ) int count = 1; for ( int i = 1; i = 5; i+) count += i; System.out .println(count); A、5 B、1 C、15 D、16 6、定义一个类,必须使用的关键字是( ) A、public B、class C、interface D、static 7、定义一个接口必须使用的关键字是()A、public B、class C、interface D、static 8、如果容器组件p 的布局是 BorderLayout,则在 p 的下边中添加一个按钮b,应该使用的语句是()A、p.add(b); B、p.add(b,North); C、p.add(b,South); D、b.add(p,North); 9、声明并创建一个按钮对象b,应该使用的语句是()A、Button b=new Button(); B、button b=new button(); C、Button b=new b(); D、b.setLabel(“ 确定” );10、Frame对象默认的布局管理器是()A、FlowLayout B、BorderLayout C、CardLayout D、null 11、下列哪一个 import 命令可以使我们在程序中创建输入/输出流对象()A、import java.sql.*; B、import java.util.*; C、import java.io.*; D、import .*; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆12、下面哪一个 import 命令可以为我们提供编写网络应用程序的类()A、import java.sql.*; B、import java.util.*; C、import java.io.*; D、import .*; 13、如果需要从文件中读取数据,则可以在程序中创建哪一个类的对象()A、FileInputStream B、FileOutputStream C、DataOutputStream D、FileWriter 二、填空题1、如果将类 MyClass 声明为 public,它的文件名称必须是( MyClass.java)才能正常编译。2、Java程序中的单行注释符是(/ ) ,多行注释符是(/* */ ) 。3、Java中布尔类型的常量有两种,它们是(true)和( false) 。4、Java 中用于定义小数的关键字有两个: (float) 和 (double) ,后者精度高于前者。5、Java中用于两个数相等比较的运算符是: (=) ,用于不相等比较的运算符是() 。6、在 Java中定义一个字符串类型的变量str 的语句是: (String str;) ,定义一个具有 10 个元素的整型数组a的语句是:(int arr = new int10;) 。7、导入 mypackage包中的所类的命令是(import mypackage.*; ) 。8、当声明一个数组 int arr = new int5; 时,这代表这个数组所保存的变量类型是(int) ,数组名是( arr) ,数组的大小为( 5) ,数组元素下标的使用范围是(0到 4) 。9、 假设 x=13,y=4,则表达式 x%y != 0 的值是(true) , 其数据类型是(boolean ) 。10、异常处理是由( try) 、 (catch )和 finally 块三个关键所组成的程序块。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆11、以下程序段的输出结果是(三角形 )int x = 5, y = 6, z = 4; if (x + y z & x + z y & z + y x) System.out .println( 三角形 ); elseSystem.out .println( 不是三角形 ); 12、下面程序段的执行结果是(6 5 4 3 2)int a = 2, 3, 4, 5, 6 ; for ( int i = a.length - 1; i = 0; i-) System.out .print(ai + );三、程序阅读题1、以下程序的输出结果为 _ Peter is 17 years old! _。publicclass Person String name ; intage ; public Person(String name, int age) this. name = name; this. age = age; publicstaticvoid main(String args) Person c = new Person(Peter, 17); System.out .println(c.name + is + c.age + years old!); 2、以下程序的输出结果为 _课程号 :101 课程名 :ASP 学分:3_。publicclass Course private String cNumber; private String cName ; privateintcUnit; public Course(String number, String name, int unit) cNumber = number; cName = name; cUnit = unit; publicvoid printCourseInfo() 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆System.out .println( 课程号 : + cNumber + 课程名 : + cName + 学分: + cUnit); class CourseTest publicstaticvoid main(String args) Course c; c = new Course(101, ASP , 3); c.printCourseInfo(); 3、以下程序的输出结果为 _汤姆猫体重: 20.0斤_。publicclass Tom privatefloatweight; privatestatic String name ; publicvoid setWeight(float weight) this. weight = weight; privatevoid out() System.out .println(name + 体重: + weight + 斤 ); publicstaticvoid main(String args) Tom. name = 汤姆猫 ; Tom cat = new Tom(); cat.setWeight(20); cat.out(); 4、以下程序的输出结果_姓名 :Tom 年龄:15 家庭住址 :金水区电话 :66123456 学校:九中 _。publicclass Father String name , address, tel; intage ; public Father(String name, int age) this. name = name; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 14 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆this. age = age; void out() System.out .print( 姓名 : + name ); System.out .print( 年龄 : + age ); void outOther() System.out .print( 家庭住址 : + address); System.out .print( 电话 : + tel); class Son extends Father String school; public Son(String name, int age) super(name, age); void out() super.out(); super.outOther(); System.out .println( 学校: + school); publicstaticvoid main(String args) Son son = new Son(Tom , 15); son.address = 金水区 ; son.school = 九中 ; son.tel = 66123456; son.out(); 5、下列程序的运行结果是 _12345_。publicclass MyClass inta = 1, 2, 3, 4, 5 ; void out() for ( int j = 0; j a. length; j+) System.out .print(aj + ); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 15 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆publicstaticvoid main(String args) MyClass my = new MyClass(); my.out(); 四、简答题1、简述 Java中异常处理的机制?答:首先 Java的异常是面向对象的。一个Java的 Exception 是一个描述异常情况的对象 .当出现异常情况时,一个 Exception 对象就产生了 ,并放到异常的成员函数里。Java的异常处理是通过 5个关键词来实现的:try,catch,throw,throws和 finally。1.异常处理:在 Java语言的错误处理结构由try,catch,finally 三个块组成。其中 try 块存放将可能发生异常的Java语言,并管理相关的异常指针;catch块紧跟在 try 块后面,用来激发被捕获的异常;finally 块包含清除程序没有释放的资源,句柄等。不管try 块中的代码如何退出,都将执行finally 块。2.抛出异常: Java语言可以不在方法中直接捕获,而用throw 语句将异常抛给上层的调用者。 Throw 语句就是来明确地抛出一个异常;首先你必需得到一个Throwable 的实例句柄,通过参数传到catch 中,或者采用 new 操作符来创建一个。2、什么是继承?答: 通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。3、请简述重载和重写的区别?答:方法的重写 Overriding和重载 Overloading是 Java 多态性的不同表现。重写 Overriding是父类与子类之间多态性的一种表现,重载Overloading是一个类中多态性的一种表现。如果在子类中定义某方法与其父类有相同的名称和参数,我们说该方法被重写 (Overriding)。子类的对象使用这个方法时,将调用子类中的定义,对它而言,父类中的定义如同被“屏蔽”了。如果在一个类中定义了多个同名的方法,它们或有不同的参数个数或有不同的参数类型,则称为方法的重载(Overloading)。Overloaded 的方法是可以改变返回值的类型。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 16 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆五、程序设计题1、按以下要求编写程序(1) 创建一个 Rectangle类,添加 width 和 height 两个成员变量(2) 在 Rectangle中添加两种方法分别计算矩形的周长和面积(3) 编程利用 Rectangle输出一个矩形的周长和面积解答:publicclass Rectangle floatwidth, height; public Rectangle(float width, float height) this. width = width; this. height = height; publicfloat getLength() return ( this. width + this. height) * 2; publicfloat getArea() returnthis. width * this. height; publicstaticvoid main(String args) Rectangle rect = new Rectangle(10, 20); System.out .println( 周长是: + rect.getLength(); System.out .println( 面积是: + rect.getArea(); 2、按以下要求编写程序(1) 编写 Animal 接口,接口中声明run() 方法(2) 定义 Bird 类和 Fish 类实现 Animal 接口(3) 编写 Bird 类和 Fish 类的测试程序,并调用其中的run()方法解答:publicinterface Animal void run(); class Bird implements Animal publicvoid run() System.out .println( 鸟儿在飞 .); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 17 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆 class Fish implements Animal publicvoid run() System.out .println( 鱼儿在游 .); publicclass TestAnimal publicstaticvoid main(String args) Bird bird = new Bird(); bird.run(); Fish fish = new Fish(); fish.run(); 3、编写一个 Frame框架应用程序,要求如下:(1) 在窗口设置两个菜单 “ 文件” 、“ 编辑”(2) 在“ 文件” 菜单里添加三个菜单项 “ 打开” 、“ 保存” 、“ 关闭”(3) 在“ 编辑” 菜单里添加两个菜单项 “ 复制” 、“ 粘贴”(4) 点击关闭菜单项时,使程序关闭。解答:import java.awt.Color; import java.awt.Frame; import java.awt.Menu; import java.awt.MenuBar; import java.awt.MenuItem; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; /* * 主窗体 */ publicclass MyFrame extends Frame privatestaticfinallongserialVersionUID = 6895463895656626294L; private Frame frmMain; / 窗体名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 18 页,共 47 页 - - - - - - - - - 学而不思则惘,思而不学则殆MenuBar mb; / 菜单栏Menu mnuFile; / 文件 菜单Menu mnuEdit; / 编辑 菜单MenuItem miOpen ; / 打开 菜单项MenuItem miSave; / 保存 菜单项MenuItem miClose; / 关闭 菜单项MenuItem miCopy ; / 复制 菜单项MenuItem miPaste;