首页 Java复习JAVA期末考试复习试卷及答案

Java复习JAVA期末考试复习试卷及答案

举报
开通vip

Java复习JAVA期末考试复习试卷及答案Java模拟试题 一,判断题 1、 Java的各种数据类型所占用的内存长度与具体软硬件环境有关。 ( N ) 2、 若Java源程序中包含了几个类的定义,则编译后就生成对应的几个字节码文件。( N ) 3、 Java的类不允许多重继承,但接口支持多重继承。 ( Y ) 4、 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。 ...

Java复习JAVA期末考试复习试卷及答案
Java模拟试题 一,判断题 1、 Java的各种数据类型所占用的内存长度与具体软硬件环境有关。 ( N ) 2、 若Java源程序中包含了几个类的定义,则编译后就生成对应的几个字节码文件。( N ) 3、 Java的类不允许多重继承,但接口支持多重继承。 ( Y ) 4、 在异常处理中总是将可能产生异常的语句放在try块中,用catch子句去处理异常,而且一个try块之后只能对应一个catch语句。 ( N ) 1、 选择题 1、 编译Java Applet 源程序文件产生的字节码文件的扩展名为( B )。 A、java B、class C、html D、exe 2、 Java application中的主类需包含main方法,main方法的返回类型是什么?( D ) A、int B、float C、double D、void 3、 当浏览器暂时离开含applet 程序的页面时,以下选项中的哪个方法将被执行?( ) A、init() B、start() C、destroy() D、stop() 4、 下面哪个不是Java中的容器? ( ) A、Canvas  B、ScrollPane C、Applet D、Dialog  5、 以下标识符中哪项是不合法的( A ) A、const B、$double C、hello D、BigMeaninglessName 6、 以下哪项可能包含菜单条( B ) A、Panel B、Frame C、Applet D、Dialog 7、 在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为( C )。 A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 8、 以下关于构造函数的描述错误的是( )。 A、构造函数的返回类型只能是void型。 B、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。 9、 以下关于继承的叙述正确的是( A )。 A、在Java中类只允许单一继承 B、在Java中一个类只能实现一个接口 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、内存回收程序可以在指定的时间释放内存对象 12、 若需要定义一个类域或类方法,应使用哪种修饰符?( ) A、static B、package C、private D、public 13、 有以下方法的定义,请选择该方法的返回类型( D )。 ReturnType method(byte x, double y) { return (short)x/y*2; } A、byte B、short C、int D、double 14、 有以下程序片段,下列哪个选项不能插入到行1。( D ) 1. 2.public class Interesting{ 3.//do sth 4. } A、import java.awt.*; B、package mypackage; C、class 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  aMethod( ){...} 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行编译出错 C、第1、2、3行能通过编译,但第2、3行运行时出错 D、第1行、第2行和第3行的声明都是正确的  18、 假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?( D ) class A { int 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 other…} 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 2、 程序阅读 1、 写出以下程序的运行结果。 public class EqualOrNot { public static void main(String[] args) { B b1=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; } } false false 2、 写出以下程序的运行结果。 import java.io.*; public class TestString { public static void main(String args[ ]) { StringC s = new StringC ("hello ","world!"); System.out.println(s); } } class StringC { String s1; String s2; StringC( String str1 , String str2 ) { s1 = str1; s2 = str2; } public String toString( ) { return s1+s2;} } hello world 3、 写出以下程序的功能。 import java.io.*; public class C { public static void main(String[] args) throws IOException { File inputFile = new File(“a.txt"); File outputFile = 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 upper,lower; upper=lower=0; s=args[0]; for (int i=0;i='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 main(String[] args) { String[] s; s=new String[2]; s[0]=new String("no1"); s[1]=new String("no2"); Vector v = new Vector(); for(int i = 0; i <2; i++) v.addElement(s[i]); v.insertElementAt(new String("no3"),2); Enumeration e = v.elements(); while(e.hasMoreElements()) System.out.print(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(); } 6、 }no1 no2 no3 \n no1 no3 7、 写出以下程序的运行结果。 class StaticTest { static int x=1; int y; StaticTest() { y++; } public static 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 8、 阅读以下程序,写出输出结果。 class First{ public First(){ aMethod(); } public void aMethod(){ System.out.println(“in First class”);} } public class Second extends First{ public 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 Class 9、 写出以下程序的运行结果。 public class A { public static void main(String[ ] 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; } 10、 }26 11、 写出以下程序的运行结果。 class MyException extends Exception{ public String toString( ){ return "negative"; } } public class ExceptionDemo{ public static void mySqrt(int a) throws MyException { if( a<0 ) throw new MyException(); System.out.println(Math.sqrt(a)); } public static void main( String args[] ){ try{ mySqrt(25 ); mySqrt(-5 ); } catch( MyException e ){ System.out.println("Caught "+e); } } } 5.0 Caught negative 12、 写出以下程序的功能。 public class TestArray { 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 ( a[j]>a[k] ) k = j; int temp =a[i]; a[i] = a[k]; a[k] = temp; } for ( i =0 ; i word word文档格式规范word作业纸小票打印word模板word简历模板免费word简历 _1714142449007_2为 ,s=(x+y+z)/2 ,开方可用Math.sqrt(double)方法) 2 方法 MyTriangle(double x, double y, double z):构造函数,给三条边和s赋初值。 toString():输出矩形的描述信息,如“three sides:3.0,4.0,5.0,perimeter=12.0,area=6.0” ⑶Test类作为主类要完成测试功能 1 生成MyTriangle对象 ② 调用对象的toString方法,输出对象的描述信息 1.谈谈final, finally, finalize的区别。 final关键字:   a) 如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为abstract的,又被声明为final的。   b) 将变量或方法声明为final,可以保证它们在使用中不被改变。   c) 被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。   d) 被声明为final的方法也同样只能使用,不能重载。 finally关键字:在异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入finally 块。 finalize:方法名,不是关键字。Java技术允许使用 finalize() 方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在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) = 12 Math.round(-11.5) = -11 4.给我一个你最常见到的runtime exception ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, ConcurrentModificationException, DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException 5.abstract class和interface有什么区别 声明方法的存在而不去实现它的类被叫做抽象类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。不能创建abstract 类的实例。然而可以创建一个变量,其类型是一个抽象类,并让它指向具体子类的一个实例。不能有抽象构造函数或抽象静态方法。Abstract 类的子类为它们父类中的所有抽象方法提供实现,否则它们也是抽象类为。取而代之,在子类中实现该方法。知道其行为的其它类可以在类中实现这些方法。 接口(interface)是抽象类的变体。在接口中,所有方法都是抽象的。多继承性可通过实现这样的接口而获得。接口中的所有方法都是抽象的,没有一个有程序体。接口只可以定义static final成员变量。接口的实现与子类相似,除了该实现类不能从接口定义中继承行为。当类实现特殊接口时,它定义(即将程序体给予)所有这种接口的方法。然后,它可以在实现了该接口的类的任何对象上调用接口的方法。由于有抽象类,它允许使用接口名作为引用变量的类型。通常的动态联编将生效。引用可以转换到接口类型或从接口类型转换,instanceof 运算符可以用来决定某对象的类是否实现了接口。 6.面向对象的特征有哪些方面? 1>.抽象: 抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。抽象包括两个方面,一是过程抽象,二是数据抽象。 2>.继承: 继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。 3>.封装: 封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。 4>. 多态性:多态性是指允许不同类的对象对同一消息作出响应。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名 7.java中如何跳出当前多重循环? 用break; return 方法. 8.说出一些常用的类、包和接口,各举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 int[15]; System.out.println(“before entering method:”); for(int i=0;i<5;i++)                 System.out.println(“aa[“+i+”]=”+___________); __________________; System.out.println(“after method:”); for(int i=0;i<5;i++)                 System.out.println(“aa[“+i+”]=”+aa[i]); } Static void test( int [] x) { int i=10;          System.out.println(“in mathod:”); for(;i<15;i++)         { x[i-10]+=i;           System.out.println(“x[“+(i-10)+”]=”+x[i-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 of son is:”+y.a);      System.out.println(“The a of son’s super is:”+_________________);      y.miner();      System.out.println(“The a of son is:”+y.a);      System.out.println(“The a of son’s super is:”+y.gerA());    } }  class 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) 3 2.设 i、j 为int型变量名,a 为int型数组名,以下选项中,正确的赋值语句是( B )。 A) i = i + 2 B) a[0] = 7; C) i++ - --j; D) a(0) = 66; 3.Java语言的类间的继承关系是( B )。 A) 多重的 B) 单重的 C) 线程的 D) 不能继承 4.设有定义 int i = 6 ;,则执行以下语句后,i 的值为( C )。 i += i - 1; A) 10 B) 121 C) 11 D) 100 5.下列选项中,用于在定义子类时声明父类名的关键字是( C )。 A)interface B) package C) extends D) class 6.若已定义 byte[ ] x= {11,22,33,-66} ; 其中0≤k≤3,则对x数组元素错误的引用是( C )。 A) x[5-3] B) x[k] C) x[k+5] D) x[0] 7.下列语句序列执行后,ch1 的值是( B )。 char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A) ‘A' B) ‘B' C) ‘C' D) B 8.下列语句序列执行后,i 的值是( D )。 int i=8, j=16; if( i-1 > j ) i--; else j--; A) 15 B) 16 C) 7 D) 8 9.下列语句序列执行后,k 的值是( C )。 int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A) 31 B) 32 C) 2 D) 33 10.下面语句执行后,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 < y & ! ( x < z ) 12.下列语句序列执行后,i的值是( D )。 int i=16; do { i/=2; } while( i > 3 ); A) 16 B) 8 C) 4 D) 2 13.以下由 for 语句构成的循环执行的次数是( B )。 for ( int i = 0; true ; i++) ; A) 有语法错,不能执行 B) 无限次 C) 执行1次 D) 一次也不执行 14.定义类头时能使用的修饰符是(C )。 A) private B) static C) abstract D) protected 15.设int 型变量 a、b,float 型变量 x、y,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) static 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,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) public, 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) false 25 下面数据结构中,属于非线性的是( B )。 A) 线性表 B) 树 C) 队列 D) 堆栈 11. 设有定义 int i=123; long j=456; 下面赋值不正确的语句是( D )。 A) j=i; B) 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语言中,使用__平台无关___、___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; 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. 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 源程序文件编译后产生的文件称为____字节码____文件,其扩展名为 ___.class_______ 。 18.Java 和 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(int[] x) { int w; for(int i=1; ix[j+1]) { w=x[j]; x[j]=x[j+1]; x[j+1]=w; } /* if(i==1||i==2) ShowArray(x); if(i==2) break; */ } } public static void ShowArray(int b[]) { for(int i=0; iy; System.out.println("x>y=="+flag); flag=z>w; System.out.println("z>w=="+flag); } } 四、问答题:(每题5分,)   1. Java的接口和C++的虚类的相同和不同处。   由于Java不支持多继承,而有可能某个类或对象要使用分别在几个类或对象里面的方法或属性,现有的单继承机制就不能满足要求。与继承相比,接口有更高的灵活性,因为接口中没有任何实现代码。当一个类实现了接口以后,该类要实现接口里面所有的方法和属性,并且接口里面的属性在默认状态下面都是 public static,所有方法默认情况下是public.一个类可以实现多个接口。   2. 垃圾回收的优点和原理。并考虑2种回收机制。   Java语言中一个显著的特点就是引入了垃圾回收机制,使c++程序员最头疼的内存管理的问题迎刃而解,它使得Java程序员在编写程序的时候不再需要考虑内存管理。由于有个垃圾回收机制,Java中的对象不再有“作用域”的概念,只有对象的引用才有“作用域”。垃圾回收可以有效的防止内存泄露,有效的使用可以使用的内存。垃圾回收器通常是作为一个单独的低级别的线程运行,不可预知的情况下对内存堆中已经死亡的或者长时间没有使用的对象进行清楚和回收,程序员不能实时的调用垃圾回收器对某个对象或所有对象进行垃圾回收。回收机制有分代复制垃圾回收和标记垃圾回收,增量垃圾回收。   3,谈谈final, finally, finalize的区别。   Final-修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承。因此一个类不能既被声明为 abstract的,又被声明为final的。将变量或方法声明为final,可以保证它们在使用中不被改变。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。被声明为final的方法也同样只能使用,不能重载。   Finally-再异常处理时提供 finally 块来执行任何清除操作。如果抛出一个异常,那么相匹配的 catch 子句就会执行,然后控制就会进入 finally 块(如果有的话)。   Finalize-方法名。Java 技术允许使用 finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() 方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。   4,数组有没有length()这个方法? String有没有length()这个方法?举例说明使用方法?   数组没有length()这个方法,有length的属性。   String有有length()这个方法。 5. Java中的异常处理机制的简单原理和应用。   当JAVA程序违反了JAVA的语义规则时,JAVA虚拟机就会将发生的错误表示为一个异常。违反语义规则包括2种情况。一种是JAVA类库内置的语义检查。例如数组下标越界,会引发IndexOutOfBoundsException;访问null的对象时会引发 NullPointerException.另一种情况就是JAVA允许程序员扩展这种语义检查,程序员可以创建自己的异常,并自由选择在何时用 throw关键字引发异常。所有的异常都是java.lang.Thowable的子类。   6. 请说出你所知道的线程同步的方法。   wait():使一个线程处于等待状态,并且释放所持有的对象的lock.   sleep():使一个正在运行的线程处于睡眠状态,是一个静态方法,调用此方法要捕捉InterruptedException异常。   notify():唤醒一个处于等待状态的线程,注意的是在调用此方法的时候,并不能确切的唤醒某一个等待状态的线程,而是由JVM确定唤醒哪个线程,而且不是按优先级。   Allnotity():唤醒所有处入等待状态的线程,注意并不是给所有唤醒线程一个对象的锁,而是让它们竞争。 五、程序设计:(每题11分,共33分) 1、编程:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 2、编程求解:所有两位整数能被3整除的数的和,以及不能被3整除的数的各位数字之和。 3、设计一个程序求解e的值。精度达到1.0e-6, 4、请设计一个对N个数进行排序的程序 《JAVA语言程序设计》期末考试模拟试题2(答案在本试题后面) 一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe 2、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( A )。 A. 3 B. 3. 5 C. 4 D. 5 3、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。 A. start( ) B. stop( ) C. init( ) D. paint( ) 4、不允许作为类及类成员的访问控制符的是( C )。 A. public B. private C. static D. protected 5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( ) 二、填空题(每空格1分,共20分) 1、开发与运行Java程序需要经过的三个主要步骤为 编辑源程序 、 编译生成字节码、 和 解释运行字节码 。 2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是 Applet、 类的子类并且存储该源程序文件的文件名为 MyApplet 。 3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译 器 javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 . class 的字节码文件。 4、在Java的基本数据类型中,char型采用Unicode编码 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 ,每个Unicode码占 用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占 用 2 字节内存空间。 5、设 x = 2 ,则表达式 ( x + + )/3 的值是 0 。 6、若x = 5,y = 10,则x < y和x >= y的逻辑值分别为 true 和 false 。 7、 抽象(abstract)方法 方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须在抽象类之中定义。 最终(final)方法 方法是不能被当前类的子类重新定义的方法。 8、创建一个名为 MyPackage 的包的语句是 package MyPackage ; , 该语句应该放在程序的位置为: 应该在程序第一句 。 9、设有数组定义:int MyIntArray[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70}; 则执行以下几个语句后的输出结果是 120 。 int s = 0 ; for ( int i = 0 ; i < MyIntArray.length ; i + + ) if ( i % 2 = = 1 ) s += MyIntArray[i] ; System.out.println( s ); 10、在Java程序中,通过类的定义只能实现 单 重继承,但通过接口的定义可以实现 多 重继承关系。 三、写出下列程序完成的功能。(每小题5分,共20分) 1、public class Sum { public static void main( String args[ ]) { double sum = 0.0 ; for ( int i = 1 ; i <= 100 ; i + + ) sum += 1.0/(double) i ; System.out.println( "sum="+sum ); } } 2、 import java.io.* ; public class Reverse { public static void main(String args[ ]) { int i , n =10 ; int a[ ] = new int[10]; for ( i = 0 ; i < n ; i ++ ) try { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); a[i] = Integer.parseInt(br.readLine( )); // 输入一个整数 } catch ( IOException e ) { } ; for ( i = n-1 ; i >= 0 ; i ―― ) System.out.print(a[i]+" "); System.out.println( ); } } 3、 import java.awt.*; public class abc { public static void main(String args[]) { new FrameOut(); } } class FrameOut extends Frame // Frame为系统定 { Button btn; // 义的窗框类 FrameOut( ) { super("按钮"); btn = new Button("按下我"); setLayout(new FlowLayout( )); add(btn); setSize(300,200); show( ); } } 4、import java.io.*; public class abc { public static void main(String args[]) { SubClass sb = new SubClass( ); System.out.println(sb.max( )); } } class SuperClass { int a = 10 , b = 20 ; } class SubClass extends SuperClass { int max( ) { return ((a>b)?a:b); } } 四、写出下面程序的运行结果(每小题10分,共30分) 1、 import java.io.*; public class abc { public static void main(String args[ ]) { AB s = new AB("Hello!","I love JAVA."); System.out.println(s.toString( )); } } class AB { String s1; String s2; AB( String str1 , String str2 ) { s1 = str1; s2 = str2; } public String toString( ) { return s1+s2;} } 2、 import java.io.* ; 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 ( a[i]%3 = = 0 ) s += a[i] ; System.out.println("s="+s); } } 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; } void show() { System.out.println("a="+a+"\nb="+b+"\nc="+c); } } 五、使用Java语言编写程序。(每小题10分,共20分) 1、编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。 2、编写一个完整的Java Applet 程序使用复数类Complex验证两个复数 1+2i 和3+4i 相加产生一个新的复数 4+6i 。 复数类Complex必须满足如下要求: (1) 复数类Complex 的属性有: RealPart : int型,代表复数的实数部分 ImaginPart : int型,代表复数的虚数部分 (2) 复数类Complex 的方法有: Complex( ) : 构造函数,将复数的实部和虚部都置0 Complex( int r , int i ) : 构造函数,形参 r 为实部的初值,i为虚部的初值。 Complex complexAdd(Complex a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。 String ToString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中a 和 b分别为实部和虚部的数据。 《JAVA语言程序设计》期末考试模拟试题 参考答案及评分 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 一、单选择题(每小题2分,共10分) 1、B 2、A 3、D 4、C 5、A 二、填空题(每空格1分,共20分) 1、编辑源程序、编译生成字节码、解释运行字节码 2、Applet、MyApplet 3、javac.exe、3、 . class 4、2 、2 5、0 6、true 、 false 7、抽象(abstract)方法、最终(final)方法 8、package MyPackage ; 应该在程序第一句。 9、120 10、单、多 三、写出下列程序完成的功能。(每小题5分,共20分) 1、计算 1/1+1/2+1/3+...+1/100 的值。 2、从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。 3、创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。 4、求两个数的最大值。 四、写出下面程序的运行结果(每小题10分,共30分) 1、Hello! I love JAVA. 2、s = 180 3、a=60 b=20 c=30 五、使用Java语言编写程序。(每小题10分,共20分) 1、参考程序如下: import java.io.* ; public class abc { public static void main(String args[ ]) { int i , n = 10 , max = 0 , min = 0 , temp = 0; try { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); max = min = Integer.parseInt(br.readLine( )); } catch ( IOException e ) { } ; for ( i = 2 ; i <= n ; i ++ ) { try { BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); temp = Integer.parseInt(br.readLine( )); if (temp > max ) max=temp; if (temp < min) min=temp; } catch ( IOException e ) { } ; } System.out.println("max="+max+"\nmin="+min); } } 2、参考程序如下: import java.applet.* ; import java.awt.* ; public class abc extends Applet { Complex a,b,c ; public void init( ) { a = new Complex(1,2); b = new Complex(3,4); c = new Complex(); } public void paint(Graphics g) { c=a.complexAdd(b); g.drawString("第一个复数:"+a.toString(),10,50); g.drawString("第二个复数:"+b.toString(),10,70); g.drawString("两复数之和:"+c.toString(),10,90); } } class Complex { int RealPart ; // 复数的实部 int ImaginPart ; // 复数的虚部 Complex() { RealPart = 0 ; ImaginPart = 0 ; } Complex(int r , int i) { RealPart = r ; ImaginPart = i ; } Complex complexAdd(Complex a) { Complex temp = new Complex( ); // 临时复数对象 temp.RealPart=RealPart+a.RealPart; temp.ImaginPart=ImaginPart+a.ImaginPart; return temp; } public String toString( ) { return ( RealPart+" + "+ImaginPart+" i "); } } 《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案31127 评论0 字号:大中小 2005年~2006年上学期 《面向对象程序设计_Java》期末考试试题 一、选择题(每道题只有一个正确答案,每小题2分,共30分)15道题 1、关于Java语言叙述错误的是:( C ) ?? A.Java语言具有跨平台性 ?? B.Java是一种面向对象的语言 ?? C.Java语言中的类可以多继承 ?? D.Java的垃圾收集机制自动回收程序已不再使用的对象 2、以下叙述正确的是:( B )的确台a ?? A.构造方法必须是public方法 ?? B.main方法必须是public方法 ?? C.Java应用程序的文件名可以是任意的 ?? D.构造方法应该声明为void类型 3、关于Java中数据类型叙述正确的是:( B ) ?? A、整型数据在不同平台下长度不同 ?? B.boolean类型数据只有2个值,true和false ?? C.数组属于简单数据类型 ?? D.Java中的指针类型和C语言的一样 4、设 int x=1,float y=2,则表达式 x / y的值是:( D ) A.0 B.1 C.2 D.以上都不是 5、以下语句有语法错的是:( A ) A.int x=1;y=2;z=3 B.for (int x=10,y=0;x>0;x++); C.while (x>5); D.for(; ;); 6、关于类和对象的叙述正确的是:( A ) ?? A.Java的类分为两大部分:系统定义的类和用户自定义的类 ?? B.类的静态属性和全局变量的概念完全一样,只是表达形式不同 ?? C.类的成员至少有一个属性和一个方法 ?? D.类是对象的实例化 7、以下有关构造方法的说法,正确的是:( A ) A.一个类的构造方法可以有多个 B.构造方法在类定义时被调用 C.构造方法只能由对象中的其它方法调用 D.构造方法可以和类同名,也可以和类名不同 8、以下有关类的继承的叙述中,正确的是:( D ) A.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性 B.子类只能继承父类的方法,不能继承父类的属性 C.子类只能继承父类的非私有属性,不能继承父类的方法 D.子类不能继承父类的私有属性 9、下列属于容器的组件有:( B ) A.JButton B.JPane C.Canvas D.JTextArea 10、void 的含义:( C ) A.方法体为空 B.定义的方法没有形参 C.定义的方法没有返回值 D.方法的返回值不能参加算术运算 11、关于Java中异常的叙述正确的是:( D ) A.异常是程序编写过程中代码的语法错误 B.异常是程序编写过程中代码的逻辑错误 C.异常出现后程序的运行马上中止 D.异常是可以捕获和处理的 12、所有的异常类皆继承哪一个类?( C ) A.java.io.Exception B.java.lang.Throwable C.java.lang.Exception D.java.lang.Error 13、下面哪个不是java语言中的关键字?( B ) A.long B.sizeof C.instanceof D.const 14、为实现进程之间的通信,需要使用下列那种流才合适?(D) A.Data stream B.File stream C.Buffered stream D.Piped stream 15、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?(D) A.ActionListener B.MouseListener C.MouseMotionListern D.ItemListener 二、填空题(每空1分,共20分) 1、面向对象程序设计所具有的基本特征是:___抽象性___,_封装性___,_继承性__,_多态性__ 2、数组x定义如下 int x[ ][ ]=new int[3][2] 则 x..length 的值为____3________, x[0].length 的值为_____2_______。 3、Java中实现多线程一般使用两种方法,一是___继承Thread类_________,二是_____实现Runnable方法__________ 4、Java的图形用户界面设计中,有很多布局管理器用来摆放组件的位置,一般用到的布局管理器有(列出四种即可)__FlowLayout_____,___GridLayout_____,__BorderLayout_____,___CardLayout_______ 5、Applet常用的方法是:__init()_、__run()__、__stop()__和destroy()。 三、阅读程序,写出程序的输出结果(每题5分,共20分) 1、class A{ ?????? private? int? privateVar; ?????? A(int? _privateVar){ ?? privateVar=_privateVar;    }    boolean isEqualTo(A? anotherA){    ??? if(this.privateVar == anotherA.privateVar)    ????????? return? true;    ??? else    ????????? return? false;    } } ?? public? class? B{ ? ?????public? static? void? main(String? args[]){ ??????????? A? a = new A(1); ??????????? A? b = new A(2); ??????????? System.out.println(a.isEqualTo(b));    } } 程序的输出结果为:____false_____ 2、class A { double f(double x, double y) { ??? return x * y; } } class B extends A { double f(double x, double y) { ??? return x + y; } } public class Test { public static void main(String args[]) { ??? B obj = new B(); ??? System.out.println("The program output is " + obj.f(4, 6)); } } 程序的输出结果为:__ The program output is 10_ 3、public class Unchecked { ??? public static void main(String[] args) { ?????? try { ?????????? method(); ?????? } catch (Exception e) { ?????????? System.out.println("A"); ?????? } finally { ?????????? System.out.println("B"); ?????? } ??? } ??? static void method() { ?????? try { ?????????? wrench(); ?????????? System.out.println("C"); ?????? } catch (ArithmeticException e) { ?????????? System.out.println("D"); ?????? } finally { ?????????? System.out.println("E"); ?????? } ?????? System.out.println("F"); ??? } ??? static void wrench() { ?????? throw new NullPointerException(); ??? } } 程序的输出结果为: E A B 4、public class Test { ??? public static void main(String[] args) { ?????? int x; ?????? int a[] = { 0, 0, 0, 0, 0, 0 }; ?????? calculate(a, a[5]); ?????? System.out.println("the value of a[0] is " + a[0]); ?????? System.out.println("the value is a[5] is " + a[5]); ??? } ? ??? static int calculate(int x[], int y) { ?????? for (int i = 1; i < x.length; i++) ?????????? if (y < x.length) ????????????? x[i] = x[i - 1] + 1; ?????? return x[0]; ??? } } 程序的输出结果为: the value of a[0] is 0 the value is a[5] is 5 四、简答题(每题5分,共15分) 1、简单叙述如何使一个Java应用程序运行起来,在控制台方式下,使用什么命令编译、运行程序。 2、简要叙述什么是访问控制符,列出Java中的访问控制符,并说明各个访问控制符的控制权限。 3、Java从JDK1.1开始引入了委托事件模型,简述其所采用的事件处理机制。 五、编写程序(每题10分,共20分) 1、设计一个Circle类,该类包括的属性有:圆心坐标和圆的半径;包括的方法有:设置和获取圆的坐标的方法,设置和获取半径的方法,计算圆的面积的方法。另外编写一个Test类,测试Circle类。 2、编写一个Applet程序,创建一个空标签以及一个标识为“开始”的按钮,当鼠标按下“开始”按钮时,就在标签上显示出“你好,这是一个Applet程序”字样的标签。 面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案4 一、填空题 1、 Java提供“包”来管理类名空间。“包”实际上提供了一种___命名机制________和 可见性限制机制 。 2、使用 createScreenCapture() 方法可以复制屏幕的一个矩形区域。 3、 Final关键字修饰变量,则该变量____常量________。Final修饰方法,则该方法___不允许其子类覆盖________。Final修饰类,则该类___不会再被扩展_________。 5、Java程序分两种,_ Java Application _________和___Java Applet________。 6、 final 关键字表明一个对象或变量在初始化不能修改。 7、在Java语言中,___ RandomAccessFile________文件允许对文件内容的随机读写。 8、一个Java的图形用户界面的最基本组成部分是____组件(Component)___________。 二、判断题 1、在Java语言中,常量true、false、null都是使用小写。 2、Package语句必须放在程序的第一句。y 3、因为Java不支持多继承,所以定义类时implements关键字后面只能说明一个接口名。N 4、我们把客观世界的实体称为问题空间的对象。N 5、一个Java类可以有多个父类。N 6、抽象类必须被继承。Y 7、在Java中声明变量时必须指定一个类型。Y 8、传统的结构化程序设计方法是产生60年代末开始的软件危机的原因。N 9、当通过实现Listener接口完成事件处理时,要同时实现该接口中的所有方法。 10、对多线程的支持是Java的一大特点。Y 三、选择题 1、信息资源放在Web服务器后,需要把它的地址告诉大家,这就是 b 的功能。   A.WWW B.URL C.BBS D.TCP/IP 2、以下关于Applet的生命周期方法的说法哪个是不正确的?( d )   A、init() B、start() C、stop() D、main() 3、如定义对象 StringBuffer ch = new StringBuffer(“Shanghai”) 则ch.length()=( ) A.7 B.8 C.9 D.23 4、AWT中的Canvas类在使用时必须被( d )。    A.载入 B.封装 C.继承 D.重载 5、Java语言中的super关键字是( c )   A.指向父类的指针 B.父类的标识符   C.对父类的引用 D.指向父类对象的指针 6、下列特点不属于Java语言的选项是( b )。   A.易用性 B.可视性 C.平台无关性 D.面向对象性 7、下列不属于面向对象特性的选项是( d )。   A.封装性 B.继承性 C.多态性 D.鲁棒性 8、在程序的运行过程中所发生的异常事件称为( b )。   A.意外 B.例外 C.事故 D.中断 9、高级数据要转换成低级数据,( c )转换。   A.不需要任何 B.需要一般类型 C.需要强制类型 D.随机处理 10、Java 的类属于( d )类型   A、字符数据 B、布尔数据 C、简单数据 D、复合数据 四、阅读程序,写出运行结果 1、 import java.awt.*; import java.applet.*; public class tf extends Applet{ Image myimage; Public void init(){   Myimage=getImaga(getDocumentBase(),”ff13.jpg”);}   Public void paint(Graphics g){   g.drawImage(myimage,0,0,myimage.getWidth(this)*3,myimage.getHeight(this)/2,this);    }   } 2、 class acss      {public static void main(Srting arg[])       {String s= “See how to sccess a String”;        String s=”I know the char at the specified index is a”;       System.out.println(s.length());       System.out.println(s.charAt(5);       System.out.println(s.indexOf(‘c’));       System.out.println(s.lindexOf(s,12));       char sub[]=new char[10];       s.getChar(4,10,sub,0);       System.out.println(sub);       }       } 五、编写程序 1、编写程序,在坐标(10,10)处以原图形长度和宽度的一半显示lxtu.gif图像,假设该图像文件保存在Java程序所在的文件夹。 2、编写一个java应用程序,求分数序列1/2,2/3,3/5,5/8,8/13,13/21,…的前10项之和。 《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案5 1.? ? J2SE的命令文件(如java、javac、javadoc)的目录是(D) ? A.jre? ? ? B、demo? ? C、lib? ? D、bin 2.? ? 下列哪个命令是用来运行java程序的(A) ? A java? ? ? B、javac? ? C javadoc? D、cmd 3.? ? (C)不是面向对象概念 ? A 程序? ? ? B、虚拟类? ? C 信息? D、方法 4.? ? 虚拟类的声明关键字是(B) ? A class? ? ? B、abstract? ? C public? D、package 5.? ? 类包的声明关键字是(B) ? A java? ? ? B、package? ? C javadoc? D、cmd 6.? ? 接口的声明关键字是(D) A java? ? ? B、class? ? C main? D、interface 7.? ? public声明的类的作用范围(C) A 只可以给类本身访问? ? ? B、只可以给同一个目录的类访问 C.可以给所有的类访问? D、只可以给类本身 8.? ? 下列语句序列执行后,k 的值是( B)。 int m=3, n=6, k=0; while( (m++) < ( -- n) ) ++k; A 0? B 1? C 2? D 3 9.? ? 下列语句序列执行后,ch1 的值是(B )。 char ch1='A',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A ‘A' B ‘B' C ‘C' D B 10.? ? (A)不是赋值操作符。 A +=? B<<=? C<<<=? D >>>= 11.? ? 集合类保存在类包( A) A java.util? B java.io? C java.lang? D java.text 12.? ? 面板的默认布局是(D) A BorderLayout? B GridLayout? C BoxLayout? D FlowLayout 13.? ? 线程的生命周期是随着(A)方法开始 A Start? B begin? C run? D up 14.? ? 给线程上锁的关键字是(B) A syncronize? B syncronized? C lock? D locked 15.? ? BufferedReader的父类是(B) A FileReader? B Reader? C PipedReader? D InputStreamReader 16.? ? J2SE的命令文件(如java、javac、javadoc)的目录是() ? A.jre? ? ? B、demo? ? C、lib? ? D、bin 17.? ? 下列哪个命令是用来编译java程序的() ? A java? ? ? B、javac? ? C javadoc? D、cmd 18.? ? ()不是面向对象概念 ? A 程序? ? ? B、虚拟类? ? C 信息? D、方法 19.? ? 虚拟类的声明关键字是() ? A class? ? ? B、abstract? ? C public? D、package 20.? ? 类包的声明关键字是() ? A java? ? ? B、package? ? C javadoc? D、cmd 21.? ? 接口的声明关键字是() A java? ? ? B、class? ? C main? D、interface 22.? ? private声明的类的作用范围() A 只可以给类本身访问? ? ? B、只可以给同一个目录的类访问 C.可以给所有的类访问? D、只可以给类本身 23.? ? 下列语句序列执行后,k 的值是( )。 int m=2, n=6, k=0; while( (m++) < ( -- n) ) ++k; A 0? B 1? C 2? D 3 24.? ? 下列语句序列执行后,ch1 的值是( )。 char ch1='B',ch2='W'; if(ch1 + 2 < ch2 ) ++ch1; A ‘A' B ‘B' C ‘C' D B 25.? ? ()不是赋值操作符。 A +=? B<<=? C<<<=? D >>>= 26.? ? 文件类保存在类包( ) A java.util? B java.io? C java.lang? D java.text 27.? ? 面板的默认布局是() A BorderLayout? B GridLayout? C BoxLayout? D FlowLayout 28.? ? 线程的生命周期是随着()方法开始 A Start? B begin? C run? D up 29.? ? 给线程上锁的关键字是() A syncronize? B syncronized? C lock? D locked 30.? ? PipedReader的父类是() A FileReader? B Reader? C BufferedReader? D InputStreamReader 二.? ? 填空题 1.? ? 设置path参数的命令是___ set path ______,设置classpath参数的命令是__ set classpath _。 2.? ? ____ jdk/bin ______目录是J2SE运行的命令目录。 3.? ? Java语言共有三种注释,分别是__ /** */ ____,___ /* */ _____,___ // ______。 4.? ? OOP的英文全称是_ Object Oriented Program __,应用继承性的关键字是____ extends ________。 5.? ? 对象的创建语法是__ new, , ____,声明类的关键字是____ class _____,声明接口的关键字是___ interface ____。 6.? ? 算术操作符有五种不同的操作符,分别是__+__,__-___,__*___,___/____,___%____。 7.? ? 将整形变量转化为二进制字符串的方法是__ Integer.toBinaryString(int i) ______。 8.? ? 集合分为__ Map ____和__ Collection _____两个最顶端的接口。 9.? ? 获得数组总数的方法是___ getLength _____。 三.? ? 判断题 1.? ? Java命令严格区分大小写,而javac命令不区分大小写。F 2.? ? 对象的生命周期比类的生命周期长。F 3.? ? 主方法必须使用static关键字。T 4.? ? 实例成员的属性值不会因为对象的不同而不同。F 5.? ? 使用final关键字声明的类不能创建子类。T 6.? ? 字节型整数类的最小值是-128。T 7.? ? 范围小的数字向范围大的数字转换由java自动转换。T 8.? ? Vector集合类的元素会自动排序。F 9.? ? Java命令严格区分大小写,而javac命令不区分大小写。T 10.? ? 对象的生命周期比类的生命周期长。 11.? ? 主方法必须使用static关键字。F 12.? ? 实例成员的属性值不会因为对象的不同而不同。 13.? ? 使用final关键字声明的类不能创建子类。T 14.? ? 字节型整数类的最小值是-128。F 15.? ? 范围小的数字向范围大的数字转换由java自动转换。T 16.? ? Map集合接口由二个值组成一个元素。 17.? ? 优先权的数字最大,线程的优先权便越小 四.? ? 简答题 1.? ? 简述try/catch/finally语句的语法。 2.? ? 简述接口与虚拟类的区别及用法。 3.? ? 简述数组与集合类的排序语法。 4.? ? 简述死锁的含义。 5.? ? 简述接口与虚拟类的区别及用法。 五.? ? 程序题目 1.? ? 创建一个dog类,并添加Name,eyeColor字段,并为该自动添加相应的属性,并给出至少两个构造方法。 2.? ? 创建一个虚拟类father,其中有身高、体重等属性及爱好(唱歌)等方法,创建子类son类继承father类,并增加性格这个属性,改写父类的方法(爱好)。 3.? ? 创建一个类文件,应用Vector集合类进行元素的增加、访问、删除。 4.? ? 用java语言来描述快速排序算法。 《Java语言》 练习题 用券下载整式乘法计算练习题幼小衔接专项练习题下载拼音练习题下载凑十法练习题下载幼升小练习题下载免费 2004年10月28日 一、选择题: 1. Java源程序经编译生成的字节码文件的扩展名为 ,字节码文件由解释器执行。(A) A. class B. java C. exe D. html 2. 以下定义一维数组的语句中,正确的是: (D) A. int a[5] B. int a[]=new [5]; C. int a[]; int a=new int[5]; D. int a[]={1,2,3,4,5}; 3. 假定一个类的构造方法为 “ A(int aa, int bb) { a=aa; b=aa*bb; } ”,则执行“ A x = new A(4,5); ” 语句后,x.a 和x.b的值分别是: 。(C) A. 4 和5 B. 5和4 C .4和20 D. 20和5 4. 对于任意一个类,用户所能定义的构造方法的个数至多为 。(D) A.0个 B.1个 C.2个 D.任意个 5. 假设类A有构造方法A(int a),则在类A的其他构造方法中调用该构造方法的语句格式应为 (C) A. A(x) B. this. A(x) C. this(x) D. super(x) 6.关于实例方法和类方法,以下描述正确的是: (D) A. 实例方法只能访问实例变量 B. 类方法既可以访问类变量,也可以访问实例变量 C. 类方法只能通过类名来调用 D. 实例方法只能通过对象来调用 7.接口是Java面向对象的实现机制之一,以下说法正确的是: (B) A. Java支持多重继承,一个类可以实现多个接口; B. Java只支持单重继承,一个类可以实现多个接口; C. Java只支持单重继承,一个类只可以实现一个接口; D. Java支持多重继承,但一个类只可以实现一个接口。 8. 关于接口的定义和实现,以下描述正确的是: (A) A. 接口定义中的方法都只有定义没有实现 B. 接口定义中的变量都必须写明final和static C. 如果一个接口由多个类来实现,则这些类在实现该接口中的方法时应采用统一的代码 D. 如果一个类实现一个接口,则必须实现该接口中的所有方法,但方法未必声明为public. 9. 在 Java的异常处理语句try-catch-final 中,以下描述正确的是: (B) A. try后面是可能产生异常的代码,catch后面是捕获到某种异常对象时进行处理的代码,final后面是没有捕获到异常时要执行的代码 B. try后面是可能产生异常的代码,catch后面是捕获到某种异常对象时进行处理的代码,final后面是无论是否捕获到异常都必须执行的代码 C. catch 语句和final语句都可以缺省 D. catch 语句用来处理程序运行时的非致命性错误,而final语句用来处理程序运行时的致命性错误 . 10.如果一个程序段中有多个catch,则程序会按如下哪种情况执行?C 找到适合的例外类型后继续执行后面的catch. 找到每个符合条件的catch都执行一次。 找到适合的例外类型后就不再执行后面的catch。 对每个catch都执行一次。 11.以下Java布局管理器中,java.applet.Applet容器类的默认布局管理器是 。(B) A. BorderLayout B. FlowLayout C. GridLayout D. CardLayout 12.在Applet应用程序的生命周期中,以下说法正确的是: (C) A. 当打开浏览器窗口时,系统会自动调用start方法,在Applet应用程序的生命周期中,start方法可执行多次; B. 当激活浏览器窗口时,系统会自动调用start方法,在Applet应用程序的生命周期中,start方法只可执行一次; C. 当打开浏览器窗口时,系统会自动调用init方法,在Applet应用程序的生命周期中,init方法只可执行一次; D. 当激活浏览器窗口时,系统会自动调用init方法,在Applet应用程序的生命周期中,init方法可执行多次。 13.如果重写了Applet的paint方法,在以下何种情况中,AWT线程会自动调用paint方法绘图。 (D) A. 当浏览器运行时 B. 当Applet 内容被覆盖后又重新显示时 C. 在执行repaint方法重新绘图时 D. 包括以上三种情况 14.为了防止Java Applet程序中含有恶意代码而对客户端造成损害,以下行为哪一种不属于浏览器禁止的行为。(A) A. 禁止访问Applet程序所在服务器的资源 B. 禁止读写本地计算机的文件系统 C. 禁止运行本地计算机的可执行程序 D. 禁止访问与本地计算机有关的信息,如用户名、邮件地址等 22下列关于继承的说法哪个是正确的?B A.子类只继承父类public方法和属性; B.子类继承父类的非私有属性和方法; C.子类只继承父类的方法,而不继承父类的属性;’ D.子类将继承父类的所有的属性和方法。 23下面哪个是JAVA的保留字? B run import implement string 24.下列关于抽象类的说法四个是正确的?C A.某个抽象类的父类是抽象类,则达个子类必须里载父类的所有抽象方法; B.接口和抽象类是同一回事; C.绝对不能用抽象类去创建对象; D.抽象类中不可以有非抽象方法。 25.下列说法哪个是正确的? B A.创建对象y一定要用new ; B.属性可以是简单变量,也可以是一个对象; C.属性必须是简单变量; D.对象中必有属性和方法。 二、操作题 1、阅读并理解Greetings.java,编写完成同样功能但在浏览器中运行的Applet应用程序GreetingsApplet.java和页面文件Greetings.htm。 2、阅读并理解FontTest.java和FontTest.htm,修改FontTest.java,使之能为不同的HTML页面显示不同的文字,同时编写利用FontTest.java显示“Welcome to Shanghai!”的页面文件Font1.htm,编写利用FontTest.java显示“I Like Java!”的页面文件Font2.htm。 3、Test3.java的功能是在Web页面中显示问候信息(Hello,World!),修改程序,使之显示粗体文字,字号为15,字体:Arial Black。 4.Test4.java的功能是在Web页面中显示“欢迎您访问本网站!”,修改程序,使显示文字颜色为绿色。 注:green的RGB函数参数为(0,255,0)。 5、Applet程序markTest计算一个学生的总成绩和平均成绩,显示效果如图。要求:①完成程序中的空白部分,使程序达到预定功能;②将全部TextField设置为不可修改。 6、Test6.java的功能是选择不同的显示内容,按下列要求修改程序: ①将复选框改为单选按钮。 ②使单击单选按钮后得到响应。 7.修改Test7.java程序,当选中applet中复选框时显示“我喜欢IBM笔记本!”,不选中时显示“我不喜欢IBM笔记本!”。 注:Applet中输出的文本信息起始坐标为(100,120) 8、A.java的功能:显示0.jpg图片,并将输出宽度缩小100,补充程序完成此功能。 9、Account.java文件中定义了一个银行帐户类Account,其中包括了帐户名属性accountName、存款余额属性amount、存款方法deposit(double money)。阅读并理解这个类,并为其增加一个“取款”方法withdraw():当存款余额大于取款金额时,执行取款修改余额;当存款余额小于取款金额时,不执行取款;以返回值0表示取款成功,返回值1表示取款不成功。 10. StudentClass.java文件中已有学生类Student,包含属性有姓名name和年龄age。由学生类派生出本科生类Undergraduate和研究生类Graduate,本科生类包含的属性有专业specialty,研究生类包含的属性有研究方向studydirection.每个类都有相关数据的输出方法。请将程序填写完整使本程序运行结果如下: 11.Test11.java程序定义了一个学生的类Student,包括成员变量“学号”、“班号”、“姓名”、“性别”、“年龄”,成员方法:“获得学号”、“获得班号”、“获得性别”、“获得姓名”、“获得年龄”。请为Student类定义构造函数初始化所有的成员变量。增加一个方法“修改年龄”。 boolean setStudentAge(int newAge)。新年龄如果在1至100岁的话,将原来年龄修改为新年龄,并返回修改成功true的信息。如果超出范围,显示“非法学生年龄”,并返回false的信息。运行后显示结果如下: Java期末综合练习题 一、选择题。 1.编译Java  Applet 源程序文件产生的字节码文件的扩展名为(      )。    A、java       B、class       C、html      D、exe 2.main方法是Java  Application程序执行的入口点,关于main方法的方法头以下哪项是合法的(     )?    A、public  static  void  main( )    B、public  static  void   main( String  args[] )    C、public static int  main(String  [] arg )    D、public  void  main(String  arg[] ) 3.为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为(      )。    A、static  void  method( )            B、public  void  method( )       C、final  void  method( )             D、abstract  void  method( ) 4.下列哪个是合法的Java标识符?(     )    A、Tree&Glasses                      B、FirstJavaApplet    C、_$theLastOne                      D、273.5 5.Java  Application源程序的主类是指包含有(     )方法的类。   A、main方法              B、toString方法   C、init方法               D、actionPerfromed方法 6.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用(     )个比特位。    A、8        B、16         C、32         D、64 7.设 a = 8,则表达式  a >>> 2 的值是(      )。    A、1          B、2          C、3          D、4 8.若a的值为3时,下列程序段被执行后,c的值是多少?(     )    c = 1;    if  ( a>0 )  if  ( a>3 )  c = 2;   else   c = 3;    else   c = 4;    A、1           B、2          C、3          D、4 9.在编写Java  Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上(      )语句。    A、import   java.awt.* ;        B、import   java.applet.Applet ;    C、import   java.io.* ;         D、import   java.awt.Graphics ; 10.对于构造函数,下列叙述正确的是(     )。    A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。    B、构造函数的返回类型只能是void型。    C、构造函数的主要作用是完成对类的对象的初始化工作。    D、一般在创建新对象时,系统会自动调用构造函数。 11.下面的是关于类及其修饰符的一些描述,正确的是:(       )。    A、abstract类只能用来派生子类,不能用来创建abstract类的对象。    B、final类不但可以用来派生子类,也可以用来创建final类的对象。    C、abstract不能与final同时修饰一个类。    D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法。 12.若需要定义一个类域或类方法,应使用哪种修饰符?(     )    A、static       B、package        C、private       D、public 13.若在某一个类定义中定义有如下的方法: abstract  void  performDial( );该方法属于(     )。    A、本地方法      B、最终方法      C、解态方法       D、抽象方法 14.下列关于静态初始化器的叙述中,哪一个是正确的?(     )    A、静态初始化器是在构造函数之前加上static修饰符。    B、静态初始化器是对类自身进行初始化。    C、静态初始化器在同一个类中只能有一个。    D、静态初始化器是在其所属的类加载内存时由系统自动调用执行。 15.不使用static修饰符限定的方法称为对象(或实例)方法,下列哪一个说法是正确的?(     )    A、实例方法可以直接调用父类的实例方法。    B、实例方法可以直接调用父类的类方法。    C、实例方法可以直接调用其他类的实例方法。    D、实例方法可以直接调用本类的类方法。 16.设有下面两个类的定义:      class  Person {                        class  Student  extends  Person {          long    id;     // 身份证号            int  score;  // 入学总分          String  name;   // 姓名                int  getScore(){       }                                             return  score;                                                 }                                             } 问:类Person和类Student的关系是(     )。    A、包含关系                       B、继承关系    C、关联关系                       D、无关系,上述类定义有语法错误 17. 设有下面的两个类定义:    class  AA {       void  Show(){ System.out.println("我喜欢Java!");    }    class  BB extends  AA {      void  Show(){ System.out.println("我喜欢C++!");    } 则顺序执行如下语句后输出结果为:(     )      AA   a;          BB   b;      a.Show();        b.Show();    A、我喜欢Java!                    B、我喜欢C++!       我喜欢C++!                        我喜欢Java!    C、我喜欢Java!                    D、我喜欢C++!       我喜欢Java!                       我喜欢C++! 18.设有下面的一个类定义:    class  AA {      static  void  Show( ){ System.out.println("我喜欢Java!"); }    }    class  BB {  void  Show( ){ System.out.println("我喜欢C++!"); } } 若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的:(     )    A、a.Show( )             B、AA.Show( );       b.Show( )                 BB.Show( );    C、AA.Show( );           D、a.Show( );       b.Show( );                 BB.Show( ); 19.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为(     )。    A、隐藏         B、覆盖       C、重载       D、Java不支持此特性 20.对于构造函数,下列叙述正确的是(     )。    A、构造函数也允许重载。    B、子类无条件地继承父类的无参构造函数。    C、子类不允许调用父类的构造函数。    D、在同一个类中定义的重载构造函数可以相互调用。 21.在使用interface声明一个接口时,只可以使用(     )修饰符修饰该接口。    A、private                           B、protected    C、private  protected                D、public 22.设有下面两个赋值语句:       a = Integer.parseInt("1024");       b = Integer.valueOf("1024").intValue();    下述说法正确的是(     )。    A、a是整数类型变量,b是整数类对象。    B、a是整数类对象,b是整数类型变量。    C、a和b都是整数类对象并且它们的值相等。    D、a和b都是整数类型变量并且它们的值相等。 23.在Java  Applet程序用户自定义的Applet子类中,常常重载(      )方法在Applet的界面中显示文字、图形和其它界面元素。    A、start( )                    B、stop( )    C、init( )                     D、paint( ) 24.下面的语句的作用是:(     )。     Vector  MyVector = new  Vector(100,50);    A、创建一个数组类对象MyVector,有100个元素的空间,每个元素的初值为50。    B、创建一个向量类对象MyVector,有100个元素的空间,每个元素的初值为50。    C、创建一个数组类对象MyVector,有100个元素的空间,若空间使用完时,以50个元素空间单位递增。    D、创建一个向量类对象MyVector,有100个元素的空间,若空间使用完时,以50个元素空间单位递增。 25.在Java中,存放字符串常量的对象属于(     )类对象。    A、Character                  B、String    C、StringBuffer               D、Vector 26.在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是(     )包。    A、java.io                     B、java.awt    C、java.applet                 D、java.awt.event 27.在Java图形用户界面编程中,若显示一些不需要修改的文本信息,一般是使用(     )类的对象来实现。    A、Label                      B、Button    C、TextArea                   D、TextField 28.创建一个标识有"关闭"按钮的语句是(      )。    A、TextField  b = new  TextField("关闭");    B、Label  b = new  Label("关闭");    C、Checkbox  b = new  Checkbox("关闭");    D、Button   b = new  Button("关闭"); 29.在编写异常处理的Java程序中,每个catch语句块都应该与(      )语句块对应,使得用该语句块来启动Java的异常处理机制。    A、if - else      B、switch      C、try       D、throw 30.在编写Java  Applet程序时,若需要对发生的事件作出响应和处理,一般需要在程序的开头写上(      )语句。    A、import   java.awt.* ;        B、import   java.applet.* ;    C、import   java.io.* ;         D、import   java.awt.event.* ; 31.对于子类的构造函数说明,下列叙述中不正确的是(     )。    A、子类无条件地继承父类的无参构造函数。    B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。    C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数。    D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。 32.Java语言是( )。 A.面向问题的解释型高级编程语言 B.面向机器的低级编程语言 C.面向过程的编译型高级编程语言 D.面向对象的解释型高级编程语言 33.下列的变量定义中,错误的是( )。 A) int i; B) int i=Integer.MAX_VALUE; C) static int i=100; D) int 123_$; 34.以下的变量定义语句中,合法的是( )。 A) float $_*5= 3.4F; B) byte b1= 15678; C) double a =Double. MAX_VALUE; D) int _abc_ = 3721L; 35. 以下字符常量中不合法的是( )。 A) '|' B) '\'' C) "\n" D) '我' 36.下列程序段执行后t5的结果是( )。 int t1 = 9, t2 = 11, t3=8; int t4,t5; t4 = t1 > t2 ? t1 : t2+ t1; t5 = t4 > t3 ? t4 : t3; A) 8 B) 20 C) 11 D) 9 37.设 a, b, c, d 均为 int 型的变量,并已赋值,下列表达式的结果属于非逻辑值的 是( )。 A) a!=b & c%d < a B) a++ = =a+b+c+d C) ++a*b--+d D) a+b>=c+d 38.以下由do-while语句构成的循环执行的次数是( )。 int k = 0; do { ++k; }while ( k < 1 ); A) 一次也不执行 B) 执行1次 C) 无限次 D) 有语法错,不能执行 39.下列语句序列执行后,k的值是( )。 int j=8, k=15; for( int i=2; i!=j; i++ ) { j-=2; k++; } A) 18 B)15 C)16 D) 17 40.下列语句序列执行后,j 的值是( )。 int j=3, i=2; while( --i!=i/j ) j=j+2; A)2 B) 4 C)6 D) 5 41.下列语句序列执行后,k 的值是( )。 int x=6, y=10, k=5; switch( x%y ) { case 0: k=x*y; case 6: k=x/y; case 12: k=x-y; default: k=x*y-x; } A) 60 B) 54 C) 0 D) 5 42.下列语句序列执行后,a的值是( )。 int a=13; a%=a/5; A) 3 B) 13 C) 1 D) 169 43. 既能作为类的修饰符, 也能作为类成员的修饰符的是( )。 A) public B) extends C) Float D) static 44.下列选项中,用于定义接口的关键字是( )。 A)import B) implements C) interface D) protected 45.下列类头定义中,错误的是( )。 A) class x { .... } B) public x extends y { .... } C) public class x extends y { .... } D) class x extends y implements y1 { .... } 46.下列选项中,用于在定义类头时声明父类名的关键字是( )。 A)return B) interface C) extends D) class 47.设 i,j 为类 x 中定义的 double 型变量名,下列 x 类的构造函数中不正确的是( )。 A) double x(double k ){ i=k; return i; } B) x(double m, double n ){ i=m; j=n; } C) x( ){i=0;j=0 } D) x(double k ){ i=k; } 48.下列方法定义中,不正确的是( )。 A) public int x( ){ ... } B) public static int x( double y ){ ... } C) void x( double d ) { ... } D) public static x( double a ){ ... } 49.能从循环语句的循环体中跳出的语句是( )。 A) for 语句 B) break 语句 C) while 语句 D) continue语句 50. 若有循环: int x=5,y=20; do{ y-=x; x++; }while(++x<--y);则循环体将被执行( )。 A.0次 B.1次 C.2次 D.3次 51. 定义类头时,不可能用到的关键字是( )。 A) private B)class C)extends D)implements 52.在一个应用程序中有如下定义:int a[]={1,2,3,4,5,6,7,8,9,10};,为了打印输出数组a的最后一个元素,下面正确的代码是( )。 A) System.out.println(a[10]); B) System.out.println(a[9]); C) System.out.println(a[a.length]); D) System.out.println(a(8)); 53.若一个类中对某个方法进行了重载,能够区分这些重载方法的手段是 ( )。 A) 它们的返回值类型的不同 B) 它们的名称的不同 C) 它们的参数表的不同 D) 它们的修饰符不同 54.下面是有关子类继承父类构造函数的描述,其中正确的是( )。 A) 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。 B) 子类无条件地继承父类不含参数的构造函数。 C) 子类必须通过super关键字调用父类的构造函数。 D) 子类无法继承父类的构造函数。 55.下面说法正确的是( )。 A) final 可修饰类、属性、方法。 B) abstract可修饰类、属性、方法。 C) 定义抽象方法需有方法的返回类型、名称、参数列表和方法体。 D) 用final修饰的变量,在程序中可对这个变量的值进行更改。 56.下列哪个选项是合法的标识符? A)123 B)_name C)class D)1first 57.下列哪个选项是Java调试器,如果编译器返回程序代码的错误,可以用它对程序进行调试? A)java.exe B)javadoc.exe C)jdb.exe D)javaprof.exe 58.下列的哪个选项可以正确用以表示八进制值8? A)0x8 B)0x10 C)08 D)010 59.下列的哪个赋值语句是不正确的? A)float f = 11.1; B)double d = 5.3E12; C)float d = 3.14f ; D)double f=11.1E10f; 60.下列的哪个赋值语句是正确的? A)char a=12; B)int a=12.0; C)int a=12.0f; D)int a=(int)12.0; 61.给出下列的代码,哪行在编译时可能会有错误? ① public void modify(){ ② int i, j, k; ③ i = 100; ④ while ( i > 0 ){ ⑤ j = i * 2; ⑥ System.out.println (" The value of j is " + j ); ⑦ k = k + 1; ⑧ } ⑨ } A)line 4 B)line 6 C)line 7 D)line 8 62.下列关于继承的哪项叙述是正确的? A)在java中允许多重继承 B)在java中一个类只能实现一个接口 C)在java中一个类不能同时继承一个类和实现一个接口 D)java的单一继承使代码更可靠 63.下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问? A)private B)无修饰符 C)public D)protected 64. 给出下列代码,如何使成员变量m 被方法fun()直接访问? class Test { private int m; public static void fun() { ... } } A)将private int m 改为protected int m B)将private int m 改为 public int m C)将private int m 改为 static int m D)将private int m 改为 int m 65. 已知有下列类的说明,则下列哪个语句是正确的? public class Test { private float f = 1.0f; int m = 12; static int n=1; public static void main(String arg[]) { Test t = new Test(); } } A)t.f; B)this.n; C)Test.m; D)Test.f; 66. 给出下列代码,则数组初始化中哪项是不正确的? byte[] array1,array2[]; byte array3[][]; byte [][] array4; A)array2 = array1 B)array2=array3 C)array2=array4 D)array3=array4 67. 下列代码的执行结果是 public class Test { public int aMethod() { static int i=0; i++; System.out.println(i); } public static void main(String args[]) { Test test = new Test(); test.aMethod(); } } A)编译错误 B)0 C)1 D)运行成功,但不输出 68. 下列关于内部类的说法不正确的是 A)内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用 B)内部类可以使用它所在类的静态成员变量和实例成员变量 C)内部类不可以用abstract修饰符定义为抽象类 D)内部类可作为其他类的成员,而且可访问它所在类的成员 69. 顺序执行下列程序语句后,则b的值是 String a="Hello"; String b=a.substring(0,2); A)Hello B)hello C)Hel D)null 70. 在oneMethod()方法运行正常的情况下,程序段将输出什么? public void test() { try { oneMethod(); System.out.println("condition 1"); } catch (ArrayIndexOutOfBoundsException e) { System.out.println("condition 2"); } catch(Exception e) { System.out.println("condition 3"); } finally { System.out.println("finally"); } } A)condition 1 B)condition 2 C)condition 3 D)condition 1 finally 71. 下列常见的系统定义的异常中,哪个是输入、输出异常? A)ClassNotFoundException B)IOException C)FileNotFoundException D)UnknownHostException 72. 下列哪个不是nio包的新特点? A)内存映射技术 B)文件锁定 C)字符及编码 D)阻塞I/O 73. 下列哪个选项是正确计算42度(角度)的余弦值? A)double d=Math.cos(42); B)double d=Math.cosine(42); C)double d=Math.cos(Math.toRadians(42)); D)double d=Math.cos(Math.toDegrees(42)); 74. 下列InputStream类中哪个方法可以用于关闭流? A)skip() B)close() C)mark() D)reset() 75. 下列方法中哪个是执行线程的方法? A)run() B)start() C)sleep() D)suspend() 76. 下列关于Frame类的说法不正确的是 A)Frame是Window类的直接子类 B)Frame对象显示的效果是一个窗口 C)Frame被默认初始化为可见 D)Frame的默认布局管理器为BorderLayout 77. 下列Java常见事件类中哪个是鼠标事件类? A)InputEvent B)KeyEvent C)MouseEvent D)WindowEvent 78. 在Applet的关键方法中,下列哪个方法是关闭浏览器以释放Applet占用的所有资源? A)init() B)start() C)paint() D)destroy() 79. 下列哪个是面向大型企业级用容器管理专用构件的应用平台? A)J2EE B)J2ME C)J2SE D)J2DE 80. 下列哪个选项的java源文件代码片段是不正确的? A)package testpackage; public class Test{ } B)import java.io.*; package testpackage; public class Test{ } C)import java.io.*; class Person{ } public class Test{ } D)import java.io.*; import java.awt.*; public class Test{ } 二、写出下列程序完成的功能。 1. public  class   Sum {  public  static  void   main( String  args[ ])    {   double   sum = 0.0 ;        for  ( int  i = 1 ;  i <= 100 ; i + + )            sum += 1.0/(double) i ;       System.out.println( "sum="+sum );    } } 2.import  java.io.* ;     public  class  Reverse     {   public  static  void   main(String  args[ ])         {   int   i , n =10 ;             int  a[ ] = new int[10];             for  ( i = 0 ; i < n ; i ++ )             try {                  BufferedReader  br = new BufferedReader(                          new  InputStreamReader(System.in));                  a[i] = Integer.parseInt(br.readLine( ));  // 输入一个整数             } catch ( IOException  e ) { } ;             for  ( i = n-1 ; i >= 0 ; i ―― )                 System.out.print(a[i]+"  ");         System.out.println( );         }    } 3.import  java.awt.*;    public  class  abc     {  public  static  void  main(String args[])           {  new FrameOut(); }     }     class  FrameOut  extends  Frame   //  Frame为系统定义的窗框类      {   Button btn;          FrameOut( )          {  super("按钮");             btn = new  Button("按下我");             setLayout(new   FlowLayout( ));             add(btn);             setSize(300,200);             show( );           }       } 4. import java.io.*; public  class  Class1 {     public  static  void   main(String  args[ ]){         int  i , Max , Min ;      int  a[ ] = { 12,67,8,98,23,56,124,55,99,100 };      Max = Min = a[0];      for  ( i = 1 ; i < a.length; i ++ ) {        if  ( a[i]Max )  Max = a[i];      }      System.out.println( Max+"  "+Min );        System.out.println( );     } } 5. public  class  ABC {     public  static  void   main(String  args[ ]){         int   i , j ;      int  a[ ] = { 12,67,8,98,23,56,124,55,99,100 };      for  ( i = 0 ; i < a.length-1; i ++ ) {        int  k = i;        for  ( j = i ; j < a.length ;  j++ )          if  ( a[j]b)?a:b);  }  } 三、写出下面程序的运行结果。 1.import    java.io.*; public  class  abc {     public  static  void  main(String args[ ])       {    AB  s = new  AB("Hello!","I love JAVA.");            System.out.println(s.toString( ));       } } class   AB {   String   s1;   String   s2;   AB( String  str1 , String  str2 )   {  s1 = str1;  s2 = str2; }   public   String   toString( )   { return  s1+s2;} } 2.import    java.io.* ;     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 ( a[i]%3 = = 0 )  s += a[i] ;                System.out.println("s="+s);            }      } 3. import   java.io.* ;      public  class  abc      {           public  static  void   main(String  args[ ])           {  SubSubClass  x = new  SubSubClass(10 , 20 , 30);              x.show();           }      }     class  SuperClass     {   int  a,b;         SuperClass(int aa , int  bb)          {  a=aa;  b=bb;  }        void  show( )         {  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;         }        void  show()         {  System.out.println("a="+a+"\nb="+b+"\nc="+c);  }   } 4. import    java.io.*;   public class abc     {          public static void main(String args[])           {                 String  s1 = "Hello!";                 String  s2 = new String("World!");                 System.out.println(s1.concat(s2));          }      } 5.  import  java.io.* ; public  class  ABC   { public  static  void   main(String  args[ ]) {  int   i  ;          int  a[ ] = { 11,22,33,44,55,66,77,88,99 };          for  ( i = 0 ; i <= a.length / 2 ; i ++ )                System.out.print( a[i]+a[a.length-i-1]+"  ");        System.out.println( ); }     } 6. import  java.io.*; class  Parent {     void  printMe()     {       System.out.println("parent");     } } class  Child  extends Parent {     void  printMe()     {       System.out.println("child");     }     void  printAll()     {       super.printMe();         this.printMe();         printMe();   } } public class  Class1 {   public static void main(String  args[ ])   {        Child  myC = new  Child( );      myC.printAll( );   } } 四、使用Java语言编写程序。 1. 编写一个字符界面的Java  Application 程序,接受用户从键盘输入的一个正整数,然后统计并输出从1到这个正整数的累加和。 2. 编写一个字符界面的Java  Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。 3. 编写一个完整的Java  Applet 程序使用复数类Complex验证两个复数 1+2i 和3+4i 相加产生一个新的复数 4+6i 。      复数类Complex必须满足如下要求: (1)  复数类Complex 的属性有: RealPart :    int型,代表复数的实数部分 ImaginPart :  int型,代表复数的虚数部分 (2)  复数类Complex 的方法有: Complex( ) : 构造函数,将复数的实部和虚部都置0 Complex( int  r , int  i ) : 构造函数,形参 r 为实部的初值,i为虚部的初值。 Complex  complexAdd(Complex  a) : 将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者。 String  ToString( ) : 把当前复数对象的实部、虚部组合成 a+bi 的字符串形式,其中a 和 b分别为实部和虚部的数据。 4. 编写一个学生类 Student ,要求: (1) 学生类 Student 属性有: id    :  long型,代表学号 name  :  String类对象,代表姓名 age   :  int型,代表年龄 sex   :  boolen型,代表性别(其中:true表示男,false表示女) phone :  String类对象,代表联系电话 (2) 学生类 Student的方法有: Student(long  i , String  n , int  a , boolean  s , long  p) : 有参构造函数,形参表中的参数分别初始化学号、姓名、 年龄、性别和联系电话。 int  getAge() ( ) : 获取年龄作为方法的返回值。 boolean  getSex( ) ( ) : 获取性别作为方法的返回值。 long  getPhone ( ) : 获取联系电话作为方法的返回值。 public  String  toString( ) : 以 姓名:联系电话 的形式作为方法的返回值。 5. 编写图形界面下的Java Applet程序,接受用户输入的三个数据,输出最小的一个数。 6. 编写图形界面下的Java Applet程序,接受用户输入的两个数据为上、下限,然后10个一行输出上、下限之间的所有素数。 7.编写一个Java Applet程序响应用户的鼠标动作:以鼠标单击处为圆心,画一个随机大小,随机颜色的圆,当鼠标双击时则清空屏幕。 8. 编写一个Applet响应鼠标事件程序,其功能是用户可以通过拖动鼠标在Applet中画出矩形,并在状态条显示鼠标当前的位置。 9. 下图中给出某应用程序的图形界面,试写出构建该应用程序的界面程序。 10.下图中给出了某应用程序的图形界面,试写出构建该应用程序的界面程序。 参考答案 一、选择题。 1.B  2.B  3.A  4.B 、 C  5.A 6.B  7.B  8.C  9.C   10.A、C、D 11.A、C、D  12.A  13.D  14.B、D  15.B、D 16.B  17.A  18.C  19.C  20.A、B、D 21.D  22.D  23.D  24.D  25.B 26.D  27.A  28.D  29.C  30.D  31.D 32.D 33.D 34.B 35.D 36.D 37.C 38.B 39.D 40.D 41.B 42.C 43.A 44.C 45.B 46.C 47.A 48.D 49.B 50.C 51.A 52.B 53.C 54.C 55.A 56.B 57.C 58.D 59.A 60.D 61.C 62.D 63.B 64.C 65.A 66.A 67.A 68.C 69.C 70.D 71.B 72.D 73.C 74.B 75.A 76.C 77.C 78.D 79.A 80.B 二、写出下列程序完成的功能。 1.计算 1/1+1/2+1/3+...+1/100 的值。 2.从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。 3.创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。 4.在数组中查找并输出最大值和最小值。 5.使用选择法对数组a的数据进行升序排序,然后输出排序后的结果。 6.定义一个计算n!的类Fact,然后主类中创建一个对象求解4!的值。 7.在Applet界面中显示当前文件夹下名为"pica.jpg"的图像。 8.定义一个计算xn的类,然后用该类求103的值。 9.在Applet界面中显示一些由直线、矩形框、椭圆框和文字组成的图形。 10.求两个数的最大值。 三、写出下面程序的运行结果。 1.Hello! I  love  JAVA. 2.s = 180 3.a=60        b=20        c=30 4.Hello!  World! 5.110  110  110  110  110 6.parent    child    child 四、使用Java语言编写程序。 1. import  java.io.*; public  class  SUM {   public static void main (String[] args)   {        int   i , n=-1 , sum=0 ;        while ( n<1)        try {           BufferedReader  br = new BufferedReader( new  InputStreamReader(System.in));           n = Integer.parseInt(br.readLine( ));        } catch ( IOException  e ) { } ;        for  ( i =1 ; i<=n; i++ )      sum += i;        System.out.println(sum);   }  } 2. import   java.io.* ;   public   class   abc {    public  static  void   main(String  args[ ])    {  int   i , n = 10 , max = 0 , min = 0 ,  temp = 0;           try {                 BufferedReader  br = new BufferedReader(                             new  InputStreamReader(System.in));                 max = min = Integer.parseInt(br.readLine( ));          } catch ( IOException  e ) { } ;       for  ( i = 2 ; i <= n ; i ++ )  {           try {                 BufferedReader  br = new BufferedReader(                             new  InputStreamReader(System.in));                 temp = Integer.parseInt(br.readLine( ));          if  (temp > max ) max=temp;          if  (temp < min) min=temp;          } catch ( IOException  e ) { } ;     }       System.out.println("max="+max+"\nmin="+min);    } } 3. import  java.applet.* ;      import  java.awt.* ; public  class  abc  extends  Applet    {    Complex a,b,c ;    public  void  init( )       {      a = new  Complex(1,2);        b = new  Complex(3,4);        c = new  Complex();        }    public  void  paint(Graphics  g)       {      c=a.complexAdd(b);      g.drawString("第一个复数:"+a.toString(),10,50);      g.drawString("第二个复数:"+b.toString(),10,70);      g.drawString("两复数之和:"+c.toString(),10,90);    } }     class  Complex {     int  RealPart ;    // 复数的实部         int  ImaginPart ;  // 复数的虚部     Complex() { RealPart = 0 ; ImaginPart = 0 ; }      Complex(int  r , int  i)        {  RealPart = r ;    ImaginPart = i ;   }     Complex  complexAdd(Complex  a)      {          Complex  temp = new  Complex( );  // 临时复数对象          temp.RealPart=RealPart+a.RealPart;          temp.ImaginPart=ImaginPart+a.ImaginPart;          return  temp;     }     public String  toString( )             {   return  ( RealPart+" + "+ImaginPart+" i ");   } } PAGE 16 _1190187478.unknown
本文档为【Java复习JAVA期末考试复习试卷及答案】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_173805
暂无简介~
格式:doc
大小:614KB
软件:Word
页数:25
分类:互联网
上传时间:2018-09-07
浏览量:44