浙江工商大学java期末试卷2份(含标准答案).doc
,.浙江工商大学2006 /2007学年第一学期考试试卷课程名称: Java程序设计 考试方式: 闭卷 完成时限:120分钟班级名称: 学号: 姓名: 题号一二三四五六七八九十总分分值得分阅卷人一、选择题(每题2分,共30分)1、Java中main()函数的值是 。A、StringB、int C、char D、void2、如下 字串是Java中的标识符。A、fieldnameB、superC、3numberD、#number3、下面的代码段中,执行之后i和j的值是 。inti=1;intj;j=i+;A、1,1B、1,2C、2,1D、2,24、已知表达式intm=0,1,2,3,4,5,6;下面 表达式的值与数组下标量总数相等。A、m.length()B、m.lengthC、m.length()+1D、m.length+15、当浏览器返回到新URL的包含applet的页面时调用以下 函数。A、init()B、start()C、stop()D、destroy()6、以下 方法用于定义线程的执行体。A、start()B、init()C、run()D、main()7、如果类中的成员变量可以被同一包访问,则使用如下 约束符。A、privateB、publicC、protectedD、final 8、以下 约束符可用于定义成员常量。A、staticB、finalC、abstractD、Nomodifiercanbeused9、下面 方法与applet的显示无关。A、update()B、draw()C、repaint()D、paint()10、请问如下 方法可以将MenuBar加入Frame中。A、setMenu() B、setMenuBar() C、add() D、addMenuBar()11、下面 不是Java中的容器。A、ScrollPane B、Canvas C、DialogD、Applet12、下面的程序段创建了BufferedReader类的对象in,以便读取本机d盘my文件夹下的文件1.txt。File 构造函数中正确的路径和文件名的表示是 。File f=new File(填代码处);file=new FileReader(f);in=new BufferedReader(file);A) 1.txtB) d:my1 C) d:my1.txt D) d: my1.txt13、有整型数组:int x=12,35,8,7,2;,则调用方法Arrays.sort(x)后,数组x中的元素值依次是 。 A) 2 7 8 12 35 B) 12 35 8 7 2 C) 35 12 8 7 2 D) 8 7 12 35 214、下面的程序段执行后输出的结果是 。 StringBuffer buf=new StringBuffer(Beijing2008); buf.insert(7,); System.out.println(buf.toString(); A) Beijing2008 B) Beijing2008 C) Beijing2008 D) Beijing#200815、.下面 表达式可用得到x和y的最大值。 A) xy?y:x B) xy?(x+y):(x-y) D) x=y?y:x;二、多选题 (每题至少有一个正确答案,多选少选都不给分,每题2分,共10分)16、下面 赋值语句是合法的。A、floata=2.0 B、doubleb=2.0 C、intc=2 D、longd=217、下面 语句是创建数组的正确语句。A、floatf=newfloat66;B、floatf=newfloat66;C、floatf=newfloat6;D、floatf=newfloat66;18、Java中如下 约束符是正确的。A、private B、public C、protected D、protect19. 下面 事件监听器在Java中有事件适配器。A、MouseListenerB、KeyListenerC、ActionListenerD、WindowListener20、已知如下的命令执行javaMyTestabc, 语句是正确的。A、args0=MyTestabcB、args0=MyTestC、args0=aD、args1=b三、 填空题(每空格2分,共20分)1. 创建类的对象时,使用运算符_给对象分配内存空间。2. 定义类的构造方法不能有返回值类型,其名称与_ _名相同。3. Java语言中关键字_ _表示双精度类型。4. 若有定义:float b=1.1f, 3.5f, 6.8f;,则b.length()的值是_。5若有类定义:class B extends A 则类B是类A的_。6接口中的成员只有静态常量和_。7. 在子类中使用关键字_做前缀可调用被子类覆盖的父类中的方法。8. 关键字_用于导入包中的类到程序中,供程序中使用。9. Java语言中, 通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的_块来捕获和处理异常。10. 程序中实现多线程的方法有两种:继承_类和实现Runnable接口。四、阅读程序题(本大题2小题,每小题5分,共10分)1. (5分)1: import java.util.Arrays;2: 3: public class SortArray 4: public static void main(String args) 5: String str = size, abs,length,class;6: Arrays.sort(str);7: for (int i=0; istr.length; i+)8: System.out.print(stri+ );9: 10: (1)写出程序运行后的结果。(2分)abs class lengthsize(2)方法调用str0.length()的返回结果是多少?(3分)2. (5分)定义类A和类B如下. (5分)class Aint a=1;double d=2.0;void show( ) System.out.println(Class A: a=+a +td=+d); class B extends A float a=3.0f; String d=Java program.; void show( ) super.show( ); System.out.println(Class B: a=+a +td=+d); (1) 若在应用程序的main方法中有以下语句: A a=new A(); a.show();则输出的结果如何?(2分)(2) 若在应用程序的main方法中定义类B的对象b: A b=new B(); b.show();则输出的结果如何?(3分)五、编程题 (本大题3小题,每小题10分,共30分)1. 编写一个程序用选择法对数组a=20,10,50,40,30,70,60,80,90,100进行由大到小的排序。2. 使用socket编写一个服务器端程序,服务器端程序在端口8888监听,如果它接到客户端发来的hello请求时会回应一个hello,对客户端的其他请求不响应。3. 编写一个应用程序,创建三个线程分别显示各自的时间。答案一、选择题(每题2分,共30分)1、D 2、A 3、C 4、B 5、B 6、C 7、D 8、B 9、B 10、B 11、B 12、C 13、A14、A 15、B二、多选题 (每题至少有一个正确答案,多选少选都不给分,每题2分,共10分)1、B,C,D2、A,B,C,D 3、A,B,C 4、ABD 5、CD三、填空题(共20分)1.new 2.类 3.double 4. 3 5.子类6. 抽象方法 7.super 8. import 9. catch 10. Thread四、阅读程序题(本大题2小题,每小题5分,共10分)1、(1) abs class lengthsize (2) 42、1) Class A: a=1 d=2.0 (2) Class A: a=1 d=2.0 Class B: a=3.0 d=Java program.五、编程题 (本大题3小题,每小题10分,共30分)1、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; ia.length-1;i+)for (int j=i+1; ja.length ; j+)if (aiaj) temp=ai;ai=aj; aj=temp; for (int k=0;ka.length ;k+)System.out.println(a+k+:+ak);2、 import java.io.*;import java.net.*; 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、 mport 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(); 浙江工商大学2006 /2007学年第一学期考试试卷课程名称: Java程序设计 考试方式: 闭卷 完成时限:120分钟班级名称: 学号: 姓名: 题号一二三四五六七八九十总分分值得分阅卷人一、选择题(每题2分,共30分)1、 Java程序的执行过程中用到一套JDK工具,其中java.exe是指 。A.Java文档生成器B.Java解释器C.Java编译器D.Java类分解器2、 Java语言中,下列标识符错误的是 。A.sys1B.&mC.ID.40name3、 下列语句执行后,变量a、c的值分别是 。int x=182; int a,c; c=x/100; a=x%10; A) 1,2 B) 2,1 C) 1.82, 2 D) 100,824、应用程序的main方法中有以下语句,则输出的结果是 。String s1=0.5,s2=12; double x=Double.parseDouble(s1);int y=Integer.parseInt(s2); System.out.println(x+y); A) 12.5 B) 120.5 C) 12 D) “12.5” 5、下列程序段执行后的结果是 。 String s=new String(abcdefg);for(int i=0;is.length();i+=2) System.out.print(s.charAt(i); A) aceg B) ACEG C) abcdefg D) abcd6、Java编程所必须的默认引用包为 。A.java.sys包B.java.lang包C.java.new包D.以上都不是7、执行下列代码后, 结论是正确的Strings=newString10;A.s10为B.s9为nullC.s0为未定义D.s.length为1018、定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为 。 A.privateclassMyClassextendsObject B.classMyClassextendsObject C.publicclassMyClass D.privateclassMyClassextendsObject9、JAVA程序经常用到“递归”,“递归”的基本思想是 。A.“让别人反复调用自己”B.“自己反复调用别人”C.“自己反复调用自己”D.以上说法都不对10、Java中访问限定符不包括 。A.publicB.privateC.defaultD.final11、Applet类的直接父类是 。A.Component类B.Container类C.Frame类D.Panel类12、Frame的默认的布局管理器是下列哪一个 。A.FlowLayoutB.BorderLayoutC.GridLayoutD.CardLayout13、在下列事件处理机制中 不是机制中的角色。A.事件B.事件源C.事件接口D.事件处理者14、下面属于Java线程同步方法的方法有() 。A.joiny()B.run()C.wait()D.destroy()15、下列说法不正确的是 。A.IOException必须被捕获或抛出B.java语言会自动初始化变量的值C.java语言不允许同时继承一个类并实现一个接口D.java语言会自动回收内存中的垃圾二、多选题 (每题至少有一个正确答案,多选少选都不给分,每题2分,共10分)16、下面的说法正确的是 。A.Java 语言是面向对象的、解释执行的网络编程语言。B.Java 语言具有可移植性,是与平台无关的编程语言。C.Java 语言可对内存垃圾自动收集。D.Java 语言编写的程序虽然是“一次编译,到处运行”,但必须要java的运行环境。17、.定义变量如下: char c=w; int i=8; long L=15; float f=8.9f; 以下赋值语句正确的是 。 A) i=c+i; B) c=c+i; C) L=f+L; D) f=i+L+f;18、.面向对象程序设计的基本特征是 。A)抽象 B)封装 C)继承 D)多态19. 编译并运行下面的程序,运行结果为 。public class T1 public static void main (String args) T1 a=new T1(); a.method(8); a.method(1.2f);void method(float i) System.out.println(float: +i); void method(long i) System.out.println(long: +i);A)程序有编译错误,因为两个method()方法必须定义为静态(static)的。B)程序可以编译运行,输出结果为: long: 8 float: 1.2C)程序可以编译运行,输出结果为: float: 1.2 long: 8 D) 程序中定义的两个参数不同的method方法称为方法重栽。20、下面是在命令行运行Java应用程序A,怎样才能在main(String args)方法中访问单词first 。java A the first snow , the first snow came.A)args0 B)args1 C)args2 D)args5三、 填空题(每空格2分,共20分)21、基类的公有成员在派生类中的访问权限由 决定。22、派生类从一个或多个以前定义的该类的 继承数据和函数。23、程序中实现多线程的方法有两种:继承_类和实现Runnable接口。24、Java语言中, 通常把可能发生异常的方法调用语句放到try块中,并用紧跟其后的_块来捕获和处理异常。25、编写同时具有Applet与Application的特征的程序。具体方法是:作为Application要定义main()方法,并且把main()方法所在的类定义一个 类。为使该程序成为一个Applet,main()方法所在的这个类必须继承Applet类或JApplet类。26、能将显示空间分成很多层的布局管理器是_。27、使用Swing编写Applet,则该Applet的主类应该定义为_28、任何一个Java程序都默认引入了一个包,这个包的名字叫java. _。29、Java程序可以分为两种:应用程序和_。30、接口中的成员只有静态常量和_。四、阅读程序题(本大题4小题,每小题5分,共20分)1. (5分)1: public class Output1 2: public static void main(String arge) 3: int i=0;4: for ( char ch = 97; ch113; ch+,i+) 5: if( i % 8 = 0 ) 6: System.out.println( );7: System.out.print(t +ch); 8: 9: 10: (1)程序第5、6行的if语句的功能是什么? (2分) (2)程序输出的结果有几行?(3分) 2行2、(5分)1: import java.util.Arrays;2: 3: public class SortArray 4: public static void main(String args) 5: String str = size, abs,length,class;6: Arrays.sort(str);7: for (int i=0; istr.length; i+)8: System.out.print(stri+ );9: 10: (1)写出程序运行后的结果。(2分)(2)方法调用str0.length()的返回结果是多少?(3分)3. (5分)1: /TestKeyListener.java2: import java.applet.Applet;3: import java.awt.*;4: import java.awt.event.*;5: 6: public class TestKeyListener extends Applet 7: 8: Color clr;9: 10: public void init() 11: 12: addKeyListener(13: new KeyAdapter() 14: public void keyTyped( KeyEvent e ) 15: if(e.getKeyChar()=r|e.getKeyChar()=R)16: clr=Color.red;17: else if(e.getKeyChar()=g|e.getKeyChar()=G)18: clr=Color.green;19: else if(e.getKeyChar()=b|e.getKeyChar()=B)20: clr=Color.blue;21: else 22: clr=Color.black;23: setBackground(clr);24: 25: );26: 27: (1)程序第15、16行实现的功能是什么?(2分)(2)编译该程序,并编写嵌入该程序字节码文件的网页后,通过支持java的浏览器打开网页。如果敲击键盘的b键,有什么结果?(3分)4. (5分)import java.util.*;public class W static String s=甲,乙,丙,丁; public static void main(String args) Stack stk=new Stack(); for(int i=0;is.length;i+) stk.push(si+ ); int k=0; while(k3) System.out.print(stk.pop(); k+; (1)堆栈的操作规则如何?(2分) (2)写出程序运行后的结果。(3分)五、编程题 (本大题2小题,每小题10分,共20分)1、请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量face和suit:分别描述一张牌的牌面值(如:A、K、Q、J、10、9、3、2等)和花色(如:“黑桃”、“红桃”、“梅花”和“方块”)。定义Card类中的public访问权限的构造方法,为类中的变量赋值;定义protected访问权限的方法getFace(),得到扑克牌的牌面值; 定义protected访问权限的方法getSuit(),得到扑克牌的花色; 定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如“红桃A”、“梅花10”等)。2、若应用程序的main方法中,定义字符串数组f和s: 分别表示扑克牌的牌面值和花色;定义52个元素的Card类型数组deck,用来存放4个花色的52张牌。如下所示。 String f = A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q, K ; String s = 黑桃, 红桃, 梅花, 方块 ; Card deck = new Card 52 ;(1)使用Card类的构造方法给deck数组的52张牌赋值,要求数组中先存放黑桃花色的A、2、3、K;然后是红桃花色的A、2、3、K;梅花花色的A、2、3、K;方块花色的A、2、3、K。请写出实现上述功能的程序段。答案一、选择题(每题2分,共30分)1、B 2、D 3、B 4、A 5、A 6、B 7、B 8、C 9、C 10、D 11、D 12、B 13、C14、C 15、C二、多选题 (每题至少有一个正确答案,多选少选都不给分,每题2分,共10分)1、A,B,C,D2、AD 3、ABCD 4、BD 5、BD三、填空题(共20分)1. 访问控制(或其它等价形式) 2. 基类 3. Thread 4. catch 5. public 6. CardLayout 7. Applet 8. Lang 9.小应用程序 10. 抽象方法四、阅读程序题(本大题2小题,每小题5分,共20分)1、(1)每打印8个字符,则换行。(2)输出的结果有2行。2、(1) abs class lengthsize (2) 43、(1) 如果敲击键盘的r键,则将颜色对象的值赋为红色。(2) 小程序的背景颜色变为兰色。4、(1) 先进后出 (2) 丁 丙 乙五、编程题 (本大题2小题,每小题10分,共20分)1、class Card private String face; private String suit; public Card( String f, String s ) face = f; suit = s; protected String getSuit() return suit; protected String getFace() return face; public String toString() return face + of + suit; 2、 (1)for ( int i = 0; i deck.length; i+ ) deck i = new Card( faces i % 13 , suits i / 13 );(2)for ( int first= 0; first deck.length; first+ ) int second = ( int ) ( Math.random() * 52 ); Card temp = deck first; deck first = deck second ; deck second = temp;
收藏