JAVA程序设计试题.doc
Java 程序设计模拟试题(A卷) 一、单选择题(每小题2分,共20分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B )。 A. java B. class C. html D. exe2、设int型变量x = 1 , y = 2 , z = 3,则表达式 yz/x+ 的值是(D)。 A. 3 B. 3. 5 C. 4 D. 54、不允许作为类及类成员的访问控制符的是(C)。 A. public B. private C. static D. protected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A)。 A. static void method( ) B. public void method( ) C. final void method( ) D. abstract void method( )6、下面声明数组的写法错误(D)。A. int a ; B: int a;C: int a3 ; D; int a 3;7、 设x为float型变量,y为double型变量,a为int型变量,b为long型变量, c为char型变量,则表达式x+y*a/x+b/y+c的值为( C)类型。 A: int B:longC: double D:char8、x=2.5,a=7,y=4,则表达式x+a%3*(int)x%(int)y的值为(C)。A: 2.5 B:3.5C: 4.5 D:5.59、下列哪个命令是用来运行java程序的(A) A java B、jav C javadoc D、cmd11、接口的声明关键字是(D)A java B、classC main D、interface12、public声明的类的作用范围(C)A 只可以给类本身访问B、只可以给同一个目录的类访问C可以给所有的类访问D、只可以给类本身14、下列语句序列执行后,ch1 的值是(B)。char ch1='A',ch2='W'if(ch1 + 2 < ch2 ) +ch1;A A B B' C C' D B15、若给参数a传递4,给b传递0,那么下面程序的结果是( A )。public void divide(int a, int b) try int c = a / b; catch (Exception e) System.out.print("Exception "); finally System.out.println("Finally"); A. Exception FinallyB. FinallyC. ExceptionD. 没有输出16.线程的生命周期是随着(A)方法开始A Start B begin C run D up17.给线程上锁的关键字是(B)A syncronize B synchronized C lock D locked18. BufferedReader的父类是(B)A FileReader B Reader C PipedReader D InputStreamReader19. J2SE的命令文件(如java、javac、javadoc)的目录是(D) Ajre B、demo C、lib D、bin20.下列哪个命令是用来编译java程序的(B) A java B、javac C javadoc D、cmd19. 抽象类的声明关键字是(B) A class B、abstract C public D、package20.类包的声明关键字是(B) A java B、package C javadoc D、cmd21.接口的声明关键字是(D)A javaB、class C main D、interface22. private声明的类的作用范围(A)A 只可以给类本身访问B、只可以给同一个目录的类访问C可以给所有的类访问D、只可以给类本身23.下列语句序列执行后,k 的值是( C)。int m=2, n=6, k=0;while( (m+) < ( - n) ) +k;A 0 B 1 C 2 D 324.下列语句序列执行后,ch1 的值是( B)。char ch1='B',ch2='W'if(ch1 + 2 < ch2 ) +ch1;A A' B B' C C' D B26.文件类保存在类包(B)A java.util B java.io C java.lang D java.text二、简答题(每空5分,共20分)1、什么是面向对象编程。2、面向对象的几个特性。3、简述面向对象中的多态性的概念。4、抽象类和接口的区别?三、程序阅读题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 Test public static void main(String args)int i, n = 10;int a = new int10;try BufferedReader br = new BufferedReader(new InputStreamReader(System.in);for (i = 0; i < n; i+) ai = Integer.parseInt(br.readLine(); / 输入一个整数 catch (IOException e) ;for (i = n - 1; i >= 0; i-)System.out.print(ai + " ");System.out.println();3、import java.io.*;public class Test 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;4、 出下面程序的运行结果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 ( ai%3 = = 0 ) s += a ; System.out.println("s="+s); 5、出下面程序的运行结果class Test void changeint(int x) x+; public static void main(String args) int a=2; System.out.println("Before changed: "+"a="+a); Test cxz=new Test(); cxz.changeint(a); System.out.println("After changed: "+"a="+a); public class Main public static void main(String args) System.out.println(new A(); class A Java在运行上述代码时输出一个很奇异的结果: mytest.A60aeb0尝试解释一下可能的原因.程序一public class Test public static void main (String args) String s1=new String("Hello"); String s2="Hello" String s3="Hello" System.out.println(s1=s2); System.out.println(s1.equals(s2); System.out.println(s2=s3); System.out.println(s2.equals(s3); String s4=s1; System.out.println(s1=s4); System.out.println(s1.equals(s4); 运行结果是:程序二public class Test private static void printArray(int arr) for(int i=0;i< arr.length;i+) System.out.print(arri+","); System.out.println("n"); private static void changeValue(int value) value*=2; private static void changeValue(int arr) for(int i=0;i<arr.length;i+) arri*=2; public static void main (String args) int arr=1,2,3,4,5; changeValue(arr0); printArray(arr); changeValue(arr); printArray(arr); 运行结果是:四、使用Java语言编写程序题。1按要求编写一个Java应用程序程序:(1)定义一个接口CanFly,描述会飞的方法public void fly();(2)分别定义类飞机和鸟,实现CanFly接口。(3)定义一个测试类,测试飞机和鸟,在main方法中创建飞机对象和鸟对象,再定义一个makeFly()方法,其中让会飞的事物飞。并在main方法中调用该方法,让飞机和鸟起飞。2、定义一个体育活动类(Sports)作为基类,它有一个进行活动的方法play。足球(Football)和篮球(Bascketball)都是体育活动类的衍生类。请在测试类(Test)中编写一个方法howToPlay(Sports sp),该方法要求传递一个Sports类型的参数。该方法的作用是:(1)当传入的实例类型为Football时,控制台上应打印:足球是用脚踢的!(2)当传入的实例类型为Bascketball时,控制台上应打印:篮球是用手打的!在main方法中调用howToPlay()验证你的代码是对的。本题目要求严格使用面向对象中的继承和多态概念。