JAVA期末考试复习试卷3_第1页
JAVA期末考试复习试卷3_第2页
JAVA期末考试复习试卷3_第3页
JAVA期末考试复习试卷3_第4页
JAVA期末考试复习试卷3_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Java模拟试题一,判断题1、 Java的各种数据类型所占用的内存长度与具体软硬件环境有关。 ( N )2、 若Java源程序中包含了几个类的定义,则编译后就生成对应的几个字节码文件。( N )3、 Java的类不允许多重继承,但接口支持多重继承。 ( Y )4、 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。 ( N )一、 选择题1、 编译Java Applet 源程序文件产生的字节码文件的扩展名为( B )。A、javaB、classC、html D、exe2、 Java application中的主类需包

2、含main方法,main方法的返回类型是什么?( D )A、intB、floatC、doubleD、void3、 当浏览器暂时离开含applet 程序的页面时,以下选项中的哪个方法将被执行?( )A、init()B、start() C、destroy() D、stop()4、 下面哪个不是Java中的容器? ( )A、Canvas B、ScrollPaneC、AppletD、Dialog 5、 以下标识符中哪项是不合法的( A )A、constB、$doubleC、helloD、BigMeaninglessName6、 以下哪项可能包含菜单条(B)A、PanelB、Fram

3、eC、AppletD、Dialog7、 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )。A、隐藏 B、覆盖 C、重载 D、Java不支持此特性8、 以下关于构造函数的描述错误的是( )。A、构造函数的返回类型只能是void型。B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。C、构造函数的主要作用是完成对类的对象的初始化工作。D、一般在创建新对象时,系统会自动调用构造函数。9、 以下关于继承的叙述正确的是( A )。A、在Java中类只允许单一继承B、在Java中一个类只能实现一个接口

4、C、在Java中一个类不能同时继承一个类和实现一个接口D、在Java中接口只允许单一继承10、 在编写Java Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上( D )语句。A、import java.awt.* ; B、import java.applet.* ;C、import java.io.* ; D、import java.awt.event.* ;11、 下列哪些语句关于Java内存回收的说明是正确的? ( B )A、程序员必须创建一个线程来释放内存B、内存回收程序负责释放无用内存C、内存回收程序允许程序员直接释放内存D、内存回收程序可以在指定的时间

5、释放内存对象12、 若需要定义一个类域或类方法,应使用哪种修饰符?( )A、static B、package C、private D、public13、 有以下方法的定义,请选择该方法的返回类型( D )。ReturnType method(byte x, double y)return (short)x/y*2;A、byteB、shortC、intD、double14、 有以下程序片段,下列哪个选项不能插入到行1。( D )1.2.public class Interesting3./do sth 4. A、import java.awt.*;B、package mypackage;C、cl

6、ass OtherClass D、public class MyClass 15、 以下哪项是接口的正确定义?( B )A、 interface B void print() ;B、 abstract interface B void print() ;C、 abstract interface B extends A1,A2 /A1、A2为已定义的接口 abstract void print() ;D、 interface B void print();16、 下面哪个函数是public void  aMethod().的重载函数?( D )A、void  aM

7、ethod( ).B、public int  aMethod().C、public void  aMethod ( ).D、public int  aMethod ( int m).17、 A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明: 1. A a0=new A();2. A  a1 =new B();3. A a2=new C();问以下哪个说法是正确的? ( )A、只有第1行能通过编译 B、第1、2行能通过编译,但第3行编译出错

8、C、第1、2、3行能通过编译,但第2、3行运行时出错D、第1行、第2行和第3行的声明都是正确的 18、 假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( D )class Aint i;static String s;void method1() static void method2() A、System.out.println(a.i);B、a.method1(); C、A.method1(); D、A.method2()19、 有如下代码段: 1) 2) if(unsafe()/do something 3) else if(safe()/do the o

9、ther 4) 其中,方法unsafe() 将抛出IOException, 请问可将以下哪项填入第1行?( D ) A、 public IOException methodName() B、 public void methodName() C、public void methodName() throw IOException D、public void methodName() throws IOException二、 程序阅读1、 写出以下程序的运行结果。 public class EqualOrNot public static void main(String args) B b1=

10、new B(5);B b2=new B(5);System.out.println(b1=b2);System.out.println(b1.equals(b2);class B int x;B( int y) x=y; falsefalse2、 写出以下程序的运行结果。import java.io.*;public class TestString public static void main(String args ) StringC s = new StringC ("hello ","world!"); System.out.println(s

11、); class StringC String s1; String s2; StringC( String str1 , String str2 ) s1 = str1; s2 = str2; public String toString( ) return s1+s2;hello world3、 写出以下程序的功能。import java.io.*;public class C public static void main(String args) throws IOException File inputFile = new File(“a.txt"); File outpu

12、tFile = new File(“b.txt"); FileReader in = new FileReader(inputFile); FileWriter out = new FileWriter(outputFile); int c; while (c = in.read() ) != -1) out.write(c); in.close(); out.close(); 将文件a.txt的内容复制到文件b.txt中4、 写出以下程序的功能。class Test public static void main(String args) String s;char c;int u

13、pper,lower;upper=lower=0;s=args0;for (int i=0;i<s.length();i+)c=s.charAt(i);if(c>='a' && c<='z')lower+;if(c>='A' && c<='Z')upper+;System.out.println(upper+”,”+lower);5、 写出以下程序的运行结果。import java.util.*;public class Vec public static void m

14、ain(String args) String s; s=new String2; s0=new String("no1"); s1=new String("no2"); Vector v = new Vector(); for(int i = 0; i <2; i+) v.addElement(si); v.insertElementAt(new String("no3"),2); Enumeration e = v.elements(); while(e.hasMoreElements() System.out.print(

15、e.nextElement()+" "); System.out.println(); v.removeElement("no2" ); for(int i = 0; i < v.size() ; i+) System.out.print(v.elementAt(i) +" "); System.out.println(); no1 no2 no3 n no1 no36、 写出以下程序的运行结果。class StaticTest static int x=1;int y;StaticTest()y+;public static

16、void main(String args ) StaticTest st=new StaticTest(); System.out.println("x=" + x); System.out.println("st.y=" + st.y); st=new StaticTest(); System.out.println("st.y=" + st.y); static x+;2 1 1 7、 阅读以下程序,写出输出结果。class Firstpublic First()aMethod();public void aMethod()Sy

17、stem.out.println(“in First class”);public class Second extends Firstpublic Second()aMethod(); public void aMethod()System.out.println(“in Second class”); / 被覆盖public static void main(String args)new Second( );in Second class n in Second Class8、 写出以下程序的运行结果。public class Apublic static void main(Strin

18、g args) System.out.println( test(15,26,4) );static int test(int x, int y, int z)return test( x, test(y,z) );static int test(int x,int y)if(x>y) return x;else return y;269、 写出以下程序的运行结果。class MyException extends Exceptionpublic String toString( )return "negative" public class ExceptionDem

19、opublic static void mySqrt(int a) throws MyExceptionif( a<0 )throw new MyException();System.out.println(Math.sqrt(a); public static void main( String args )trymySqrt(25 );mySqrt(-5 );catch( MyException e )System.out.println("Caught "+e); 5.0 Caught negative10、 写出以下程序的功能。public class Tes

20、tArray public static void main(String args ) int i , j ;int a = 1,3,2,5,4; for ( i = 0 ; i < a.length-1; i + ) int k = i; for ( j = i ; j < a.length ; j+ ) if ( aj>ak ) k = j; int temp =ai; ai = ak; ak = temp; for ( i =0 ; i<a.length; i+ ) System.out.print(ai+" "); System.out.p

21、rintln( ); 5 4 3 2 1三、 编程题编写一个完整的Java Application 程序,包括ShapeArea接口、MyTriangle类、Test类,具体要求如下:接口ShapeArea:double getArea():求一个形状的面积double getPerimeter ():求一个形状的周长类MyTriangle:实现ShapeArea接口,另有以下属性和方法: 属性x,y,z: double型,表示三角形的三条边s: 周长的1/2(注:求三角形面积公式为,s=(x+y+z)/2 ,开方可用Math.sqrt(double)方法) 方法MyTriangle(doub

22、le x, double y, double z):构造函数,给三条边和s赋初值。toString():输出矩形的描述信息,如“three sides:3.0,4.0,5.0,perimeter=12.0,area=6.0”Test类作为主类要完成测试功能 生成MyTriangle对象 调用对象的toString方法,输出对象的描述信息1.谈谈final, finally, finalize的区别。final关键字:  a) 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。 

23、 b) 将变量或方法声明为final,可以保证它们在使用中不被改变。  c) 被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。  d) 被声明为final的方法也同样只能使用,不能重载。finally关键字:在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入finally 块。finalize:方法名,不是关键字。Java技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用

24、时对这个对象调用的。它是在Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。2.GC是什么? 为什么要有GC?GC是垃圾收集器。Java 程序员不用担心内存管理,因为垃圾收集器会自动进行管理。要请求垃圾收集,可以调用下面的方法之一:System.gc()Runtime.getRuntime().gc()3.Math.round(11.5)等於多少? Math.round(-11.5)等於多少?写程序Math.round(11.5) = 12Math.rou

25、nd(-11.5) = -114.给我一个你最常见到的runtime exceptionArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentExce

26、ption, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, Sec

27、urityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException5.abstract class和interface有什么区别声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法

28、。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动

29、态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。6.面向对象的特征有哪些方面?1>.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。2>.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的

30、基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。3>.封装:封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。4>. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名7.java中如何跳出当前多重循环?用break; return 方法.8.说出一些常用的类、包和接口,各

31、举5个类 String Integer Long File Date包 java.lang.*;java.io.*;java.util.*;java.swt.*;java.math.*;接口: Comparable ,Connection,Map,List,Runable,9.String类是否可以被继承?填空并上机调试public class test2 public static void main(String args)   int aa=new int15;System.out.println(“before entering method:”);for

32、(int i=0;i<5;i+)                System.out.println(“aa“+i+”=”+_);_;System.out.println(“after method:”);for(int i=0;i<5;i+)                System

33、.out.println(“aa“+i+”=”+aai);Static void test( int x)int i=10;         System.out.println(“in mathod:”);for(;i<15;i+)        xi-10+=i;          System.out.println(“x“+(i-10)+”=”

34、+xi-10);运行结果:String类是final类故不可以继承.   10.填空并上机调试public class Father int a=100;  public void miner()   a-;   public static void main(String args)   Father x=_;     son y=new son();     System.out.println(“The a o

35、f son is:”+y.a);     System.out.println(“The a of sons super is:”+_);     y.miner();     System.out.println(“The a of son is:”+y.a);     System.out.println(“The a of sons super is:”+y.gerA();    class

36、 son_Father  int a=0;public void plus()a+;public int getA() _;面向对象程序设计JAVA语言程序设计期末考试试题及部分答案1一、单选题:(每题1分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项的标记写在题干后的括号内。 1下列语句序列执行后,k 的值是( B )。 int m=3, n=6, k=0; while( (m+) < ( - n) ) +k; A) 0 B) 1 C) 2 D) 32设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值

37、语句是( B )。 A) i = i + 2 B) a0 = 7; C) i+ - -j; D) a(0) = 66;3Java语言的类间的继承关系是( B )。 A) 多重的 B) 单重的 C) 线程的 D) 不能继承 4设有定义 int i = 6 ;,则执行以下语句后,i 的值为( C )。 i += i - 1; A) 10 B) 121 C) 11 D) 1005下列选项中,用于在定义子类时声明父类名的关键字是( C )。 A)interface B) package C) extends D) class6若已定义 byte x= 11,22,33,-66 ; 其中0k3,则对x数

38、组元素错误的引用是( C )。 A) x5-3 B) xk C) xk+5 D) x07下列语句序列执行后,ch1 的值是( B )。 char ch1='A',ch2='W' if(ch1 + 2 < ch2 ) +ch1; A) A' B) B' C) C' D) B8下列语句序列执行后,i 的值是( D )。 int i=8, j=16; if( i-1 > j ) i-; else j-; A) 15 B) 16 C) 7 D) 89下列语句序列执行后,k 的值是( C )。 int i=10, j=18, k=30;

39、 switch( j - i ) case 8 : k+; case 9 : k+=2; case 10: k+=3; default : k/=j; A) 31 B) 32 C) 2 D) 3310下面语句执行后,i 的值是( B )。 for( int i=0, j=1; j < 5; j+=3 ) i=i+j; A) 4 B) 5 C) 6 D) 7 11设有定义 float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是( B )。 A) x > y | x > z B) x != y C) z > ( y + x ) D) x

40、 < y & ! ( x < z )12下列语句序列执行后,i的值是( D )。 int i=16; do i/=2; while( i > 3 ); A) 16 B) 8 C) 4 D) 213以下由 for 语句构成的循环执行的次数是( B )。 for ( int i = 0; true ; i+) ; A) 有语法错,不能执行 B) 无限次 C) 执行1次 D) 一次也不执行14定义类头时能使用的修饰符是(C )。 A) private B) static C) abstract D) protected15设int 型变量 a、b,float 型变量 x、y

41、,char 型变量 ch 均已正确定义并赋值, 正确的switch语句是D )。 A) switch (x + y) B) switch ( ch + 1 ) . . C) switch ch D) switch ( a + b ); . . 16. 下列最终属性 i 的定义中,正确的是( )。 A) static final int i=100; B) final int i=1.2; C) final i='w' D) final char i; 17. 下列类定义中,不正确的是(C )。 A) class x . B) class x extends y . C) sta

42、tic class x implements y1,y2 . D) public class x extends Applet . 18. 设 x、 y为已定义的类名,下列声明x类的对象x1的语句中正确的是( )。 A) static x x1; B) public x x1=new x(int 123); C) y x1; D) x x1=x( );19. 设 i、j、k 为类 x 中定义的 int 型变量名,下列类 x 的构造函数中不正确的是(B )。 A) x( int m) . B) void x( int m) . C) x( int m, int n) . D) x( int h,

43、int m,int n) . 20. 下列方法定义中,正确的是( A )。 A) int x( ) char ch='a' return (int)ch; B) void x( ) .return true; C) int x( ) .return true; D) int x( int a, b) return a+b; 21. 用于定义类成员的访问控制权的一组关键字是( D )。 A) class, float, double, public B) float, boolean, int, long C) char, extends, float, double D) pu

44、blic, private, protected 22. 不能构成循环的语句是( C )。 A) for 语句 B) while 语句 C) switch 语句 D) do_while 语句23. 下列程序段执行后 b3 的结果是( D )。 boolean b1=true, b2, b3; 24= b1 ? b1 : b2; A) 0 B) 1 C) true D) false25 下面数据结构中,属于非线性的是( B )。 A) 线性表 B) 树 C) 队列 D) 堆栈11. 设有定义 int i=123; long j=456; 下面赋值不正确的语句是( D )。 A) j=i; B)

45、j=(long)i; C) i=(int)j; D) i=j;二、填空题:(每空1分) 1. 构造函数_没_有返回值。 2. Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 _ double _两种具体类型。 3. 创建类对象的运算符是_ new。 4. 当整型变量n的值不能被13除尽时,其值为 false 的Java语言表达式是_n%13=0_ 。 5. 在Java语言中,所有的数组都有一个lenght属性,这个属性存储了该数组的_元素个数。 6. 定义类就是定义一种抽象的_父类_,它是所有具有一定共性的对象的抽象描述。 7. 在Java语言中,使用_平台

46、无关_、_java虚拟机_等技术,实现软件重用。 8. 表达式3/6 * 5的计算结果是_0_ 。 9.下面是一个类的定义: public class _int Myclass_ int x, y; Myclass ( int i, _=0_) / 构造函数 x=i; y=j; 10.下面是一个Java Application 的主类的定义,其功能是输出所有命令行参数。 import java.io.*; public class MyClass public static void main(String args ) if( args.length !=_0_) for(int i=0;

47、i < args.length; i+) System.out.println(_“i=”+i_); else System.out.println(没有命令行参数); 11下面是一个小程序的主类myprogram的定义, 其中A、B是该主类所在源程序中已定义的另两个类的类名: import java awt.*; import java applet.*; public class myprogram extends Applet/定义小程序的主类 A a; B b; public _ myprogram _ init( ) a=new A( ); b=_new_ B( ); 12.

48、Java的复合数据类型有 : 类、数组和_接口_等。 Java的简单数据类型有 : 数值类型(整形和浮点类型),自负类型和布尔类型13. 表达式3/6 * 5的计算结果是_0_ 。14.定义初值为10的10次方的长整型变量 lvar 的语句是:_long lvar=1*e10_。 15. 顺序结构、分支结构(或称选择结构)、_循环结构_是结构化程序设计的三种基本流程控制结构。16. 以下方法 m 的功能是求两参数之积的整数部分。 int m ( float x, float y ) _k=(int)x*y_; 17. Java 源程序文件编译后产生的文件称为_字节码_文件,其扩展名为 _.cl

49、ass_ 。 18Java 和 c+都是面向对象的程序设计语言。三、程序分析:(每题4分) 1. 下面是一个排序的程序: import java.io.*; public class Test56_Sort public static void main(String args ) int a=42,99,5,63,95,36,2,69,200,96; System.out.println(排序前的数据序列:); ShowArray(a); Sort(a); System.out.println(排序后的数据序列:); ShowArray(a); public static void Sort

50、(int x) int w; for(int i=1; i<x.length; i+) for(int j=0; j<x.length-1; j+) if(xj>xj+1) w=xj; xj=xj+1; xj+1=w; /* if(i=1|i=2) ShowArray(x); if(i=2) break; */ public static void ShowArray(int b) for(int i=0; i<b.length; i+) System.out.print(“bi”+i+”=” +bi); System.out.println( ); 问题: 如果将方法

51、Sort( )中的一对注释符(/* */)去掉,程序输出的结果是什么? 排序前的数据序列:b0=42b1=99b2=5b3=63b4=95b5=36b6=2b7=69b8=200b9=96b0=42b1=5b2=63b3=95b4=36b5=2b6=69b7=99b8=96b9=200b0=5b1=42b2=63b3=36b4=2b5=69b6=95b7=96b8=99b9=200排序后的数据序列:b0=5b1=42b2=63b3=36b4=2b5=69b6=95b7=96b8=99b9=2002. 请写下程序的输出结果: public class Test52 String str1=”He

52、llo, Java world! t”; String str2=”Hello, students!” ; public static void main(String args) System.out.print(str1); System.out.println(str2); 输出结果:3. 请写下程序的输出结果:public class T2_4 public static void main(String args) int i,j; char c='*' for(i=0;i<5;i+) for(j=0;j<=i;j+) System.out.print(&

53、quot;* "); System.out.println(); 输出结果: 4、请写下程序的输出结果: public class ex2_2 public static void main (String args ) int x , y ; byte b = 6; float z = 1.234f ; double w = 1.23; boolean flag; x = 12 ; y = 300; flag=x>y; System.out.println("x>y="+flag); flag=z>w; System.out.println("z>w="+flag); 四、问答题:(每题5分,) 1. Java的接口和C+的虚类的相同和不同处。 由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论