java期末试题及答案(共8页).doc
精选优质文档-倾情为你奉上一、单选择题(每小题2分,共10分) 1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。 A. .java B. .class C. .html D. .exe 2、设 x = 1 , y = 2 , z = 3,则表达式 yz/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编码方案,每个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 += MyIntArrayi ; 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 ); 1、计算 1/1+1/2+1/3+.+1/100 的值。 2、 import java.io.* ; public class Reverse public static void main(String args ) int i , n =10 ; int a = new int10; for ( i = 0 ; i < n ; i + ) try BufferedReader br = new BufferedReader( new InputStreamReader(System.in); ai = Integer.parseInt(br.readLine( ); / 输入一个整数 catch ( IOException e ) ; for ( i = n1 ; i >= 0 ; i ) System.out.print(ai+" "); System.out.println( ); 2、从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。 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( ); 3、创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。 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); 4、求两个数的最大值。 四、写出下面程序的运行结果(每小题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; Hello! I love JAVA. 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 ( ai%3 = = 0 ) s += ai ; System.out.println("s="+s); s = 180 五、使用Java语言编写程序。(每小题10分,共20分) 1、编写一个字符界面的Java Application 程序,接受用户输入的10个整数,并输出这10个整数的最大值和最小值。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); 1.给定下面的代码片段: 1) String str = null; 2) if (str != null) && (str.length() > 10) 3) System.out.println("more than 10"); 4) 5) else if (str != null) & (str.length() < 5) 6) System.out.println("less than 5"); 7) 8) else System.out.println("end"); 哪些行会导致错误? A line 1 B line 2 C line 5 D line 8 2.下面哪种注释方法能够支持javadoc命令: A /*.*/ B /*.*/ C / D /*.*/ 3.欲编写如下图的一个界面,用于显示用户指定的图像: 如果在区域A中只能放置一个AWT组件,从各组件的本来功能角度考虑,最好使用哪种组件: A TextArea B Panel C Applet D Canvas 4.界面如上题所示。若"Button1"的功能是:点击后弹出一个用于输入的界面,获取用户想要显示的图像文件名,则该界面最好是(从编程简单和程序不易出错的角度考虑): A 模式(Modal)Dialog B 非模式(None-modal)Dialog C FileDialog D Frame 5.界面如上题所示。如果在A区域使用某种AWT组件(java.awt.Component的子类)来负责绘制图像,则绘图的语句最好应放在该组件的哪个方法中(考虑到应用程序和Java虚拟机的AWT线程都会要求重画该组件)? A 构造方法 B paint(Graphics g) C update(Graphics g) D repaint() 6.下面关于Applet的说法正确的是 A Applet也需要main方法 B Applet必须继承自java.awt.Applet C Applet能访问本地文件 D Applet程序不需要编译 7.看下面一段程序: class Aclass void go() System.out.println("Aclass"); public class Bclass extends Aclass void go System.out.println("Bclass"); public static void main(String args) Aclass a=new Aclass(); Aclass a1=new Bclass(); a.go(); a1.go(); 以上程序运行结果是: A Aclass Aclass B Bclass Bclass C Aclass Bclass D Bclass Aclass 8.下列关于Java线程的说法那些是正确的() A 每一个Java线程可以看成由代码、一个真实的CPU以及数据三部份组成。 B 创建线程的两种方法中,从Thread类中继承的创建方式可以防止出现多父类问题。 C Thread类属于java.util程序包。 D 以上说法无一正确。 9.看以下程序: boolean a=false; boolean b=true; boolean c=(a&&b)&&(!b); int result=c=false?1:2; 这段程序执行完后,c与result的值是: A c=false;result=1; B c=true;result=2; C c=true;result=1; D c=false;result=2; 10.运行下列程序, 会产生什么结果 public class X extends Thread implements Runable public void run() System.out.println("this is run()"); public static void main(String args) Thread t=newThread(new X(); t.start(); A 第一行会产生编译错误 B 第六行会产生编译错误 C 第六行会产生运行错误 D 程序会运行和启动 11.指出下列程序的运行结果 int i = 9; switch (i) default: System.out.println("default"); case 0: System.out.println("zero"); break; case 1: System.out.println("one"); case 2: System.out.println("two"); A default B default, zero C error default clause not defined D no output displayed那个 12.运行下列程序,会产生什么结果: class Outer1 private int a; void foo(double d,final float f) String s; final boolean b; class Inner void methodInner() System.out.println("in the Inner"); public static void main(String args) Outer1 me=new Outer1(); me.foo(123,123); System.out.println("outer"); A in the Inner outer B outer C in the Inner D 编译不通过 1.编写一个程序用选择法对数组a=20,10,50,40,30,70,60,80,90,100进行由大到小的排序。import java.io.*; public class SelectSortpublic static void main(String args)int a=20,10,50,40,30,70,60,80,90,100;int temp;for (int i=0; i<a.length-1;i+)for (int j=i+1; j<a.length ; j+)if (ai<aj) temp=ai;ai=aj; aj=temp; for (int k=0;k<a.length ;k+)System.out.println("a"+k+":"+ak);2.使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的"hello"请求时会回应一个"hello",对客户端的其他请求不响应。 import java.io.*;import .*; public class HelloServerpublic static void main(String args) throws IOExceptionServerSocket server=null;server = new ServerSocket(8888);Socket ClientSocket = null;ClientSocket = server.accept();String line;BufferedReader is = new BufferedReader(new InputStreamReader(ClientSocket.getInputStream();PrintWriter os = new PrintWriter(ClientSocket.getOutputStream();while (true)line = is.readLine();if (line.equals("hello") os.println("hello");os.flush(); 3.编写一个应用程序,创建三个线程分别显示各自的时间。import java.util.*;import java.text.*; class ThreeTimeThread extends Threadpublic ThreeTimeThread(String str) super(str);public void run() while (true) SimpleDateFormat formatter = new SimpleDateFormat ("yyyy.MM.dd G 'at' hh:mm:ss z");Date currentTime = new Date();try sleep(1000);catch (Exception e) String dateString = formatter.format(currentTime);System.out.println(getName()+":"+dateString); public static void main(String args) throws Exceptionnew ThreeTimeThread("first").start(); new ThreeTimeThread("second").start();new ThreeTimeThread("third").start(); 专心-专注-专业