浙江工商大学java期末试卷2份(含答案)

浙江工商大学2006 /2007学年第一学期考试试卷

课程名称: Java程序设计 考试方式: 闭卷 完成时限:120分钟 班级名称: 姓名:

一、选择题(每题2分,共30分)

1、Java中main()函数的值是。

A、 String

B、int C、char

D、void

2、如下字串是Java中的标识符。

A、 fieldname

B、super

C、3number

D、#number

3、下面的代码段中,执行之后i 和j 的值是

int i = 1; int j; j = i++; A、 1, 1

B、1, 2

C、2, 1

D、2, 2

4、已知表达式int m[] = {0, 1, 2, 3, 4, 5, 6 };下面表达式的值与数组下标量总数相等。

A、 m.length()

B、m.length C、m.length()+1 D、m.length+1

5、当浏览器返回到新URL的包含applet 的页面时调用以下函数。

A、 init()

B、start()

C、stop()

D、destroy()

6、以下

A、 start()

B、init()

C、run()

D、main()

7、如果类中的成员变量可以被同一包访问,则使用如下约束符。

A、 private

B、public

C、protected

D、final

8、以下

A、 static

B、final

C、abstract

D、No modifier can be used

9、下面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、Dialog

D、Applet

12、下面的程序段创建了BufferedReader类的对象in,以便读取本机d盘my文件夹下的文件1.txt。File 构造函数中正确的路径和文件名的表示是。

File f=new File(填代码处); file=new FileReader(f); in=new BufferedReader(file);

A) "1.txt" B) "d:\\my\\1" C) "d:\\my\\1.txt" D) "d:\ my\1.txt"

13、有整型数组: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 2 14、下面的程序段执行后输出的结果是。 StringBuffer buf=new StringBuffer("Beijing2008"); buf.insert(7,"@");

System.out.println(buf.toString());

A) Beijing@2008 B) @Beijing2008 C) Beijing2008@ D) Beijing#2008 15、.下面表达式可用得到x和y的最大值。

A) x>y?y:x B) xy?(x+y):(x-y) D) x==y?y:x;

二、多选题 (每题至少有一个正确答案,多选少选都不给分,每题2分,共10分)

16、下面赋值语句是合法的。

A、float a = 2.0 B、double b = 2.0 C、int c = 2 D、long d = 2

17、下面 语句是创建数组的正确语句。

A、 float f[][] = new float[6][6]; C、float f[][] = new float[][6];

B、float []f[] = new float[6][6]; D、float [][]f = new float[6][6];

18、Java中如下

A、 private B、public C、protected D、protect

19. 下面 事件监听器在Java中有事件适配器。

A、 MouseListener B、KeyListener C、ActionListener D、WindowListener

20、已知如下的命令执行 java MyTest a b c, 语句是正确的。

A、 args[0] = "MyTest a b c" B、args[0] = "MyTest" C、args[0] = "a" D、args[1]= '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; i

(1)写出程序运行后的结果。(2分) abs class length size

(2)方法调用str[0].length()的返回结果是多少?(3分) 2. (5分)

定义类A和类B如下. (5分) class A { int 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、A 14、A 15、B

二、多选题 (每题至少有一个正确答案,多选少选都不给分,每题2分,共10分)

1、B,C,D

2、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 length size (2) 4

2、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.*;

}

2、 import java.io.*; import java.net.*;

public class HelloServer {

public static void main(String args[]) throws IOException {

ServerSocket server=null;

server = new ServerSocket(8888); Socket ClientSocket = null;

public class SelectSort {

public static void main(String args[]) {

int a[]={20,10,50,40,30,70,60,80,90,100}; int temp;

for (int i=0; i

if (a[i]

for (int k=0;k

System.out.println("a["+k+"]:"+a[k]); } }

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 Thread {

public 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 Exception {

new 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.—sys1 B.&—m C.I D.40name

3、下列语句执行后,变量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,82

4、应用程序的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;i

A) aceg B) ACEG C) abcdefg D) abcd

6、Java编程所必须的默认引用包为 。

A.java.sys包 B.java.lang包 C.java.new包 D.以上都不是

7、执行下列代码后, 结论是正确的String[] s=new String[10];

A.s[10]为″″ B.s[9]为null C.s[0]为未定义 D.s.length为101

8、定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确

声明应为 。

A.private class MyClass extends Object B.class MyClass extends Object C.public class MyClass

D.private class MyClass extends Object

9、JAVA程序经常用到“递归”,“递归”的基本思想是 。

A.“让别人反复调用自己” B.“自己反复调用别人” C.“自己反复调用自己” D.以上说法都不对

10、Java中访问限定符不包括 。

A.public B.private C.default D.final

11、Applet类的直接父类是 。

A.Component类 B.Container类 C.Frame类 D.Panel类

12、Frame的默认的布局管理器是下列哪一个 。

A.FlowLayout B.BorderLayout C.GridLayout D.CardLayout

13、在下列事件处理机制中 不是机制中的角色。

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.2

C)程序可以编译运行,输出结果为:

float: 1.2

long: 8

D) 程序中定义的两个参数不同的method方法称为方法重栽。

20、下面是在命令行运行Java应用程序A,怎样才能在main(String args[])方法中访问单词"first" 。

java A the first snow , the first snow came.

A)args[0] B)args[1] C)args[2] D)args[5]

三、 填空题(每空格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; ch

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、(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; i

8: System.out.print(str[i]+" ");

9: }

10: }

(1)写出程序运行后的结果。(2分)

(2)方法调用str[0].length()的返回结果是多少?(3分)

2行

3. (5分)

1: //TestKeyListener.java

2: 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;i

stk.push(s[i]+" ");

}

int k=0;

while(k

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、C

14、C 15、C

二、多选题 (每题至少有一个正确答案,多选少选都不给分,每题2分,共10分)

1、A,B,C,D 2、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 length size (2) 4

3、(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[ i ] = new Card( faces[ i % 13 ], suits[ i / 13 ] ); }

(2)for ( int first= 0; first

deck[ first] = deck[ second ];

deck[ second ] = temp;

}

浙江工商大学2006 /2007学年第一学期考试试卷

课程名称: Java程序设计 考试方式: 闭卷 完成时限:120分钟 班级名称: 姓名:

一、选择题(每题2分,共30分)

1、Java中main()函数的值是。

A、 String

B、int C、char

D、void

2、如下字串是Java中的标识符。

A、 fieldname

B、super

C、3number

D、#number

3、下面的代码段中,执行之后i 和j 的值是

int i = 1; int j; j = i++; A、 1, 1

B、1, 2

C、2, 1

D、2, 2

4、已知表达式int m[] = {0, 1, 2, 3, 4, 5, 6 };下面表达式的值与数组下标量总数相等。

A、 m.length()

B、m.length C、m.length()+1 D、m.length+1

5、当浏览器返回到新URL的包含applet 的页面时调用以下函数。

A、 init()

B、start()

C、stop()

D、destroy()

6、以下

A、 start()

B、init()

C、run()

D、main()

7、如果类中的成员变量可以被同一包访问,则使用如下约束符。

A、 private

B、public

C、protected

D、final

8、以下

A、 static

B、final

C、abstract

D、No modifier can be used

9、下面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、Dialog

D、Applet

12、下面的程序段创建了BufferedReader类的对象in,以便读取本机d盘my文件夹下的文件1.txt。File 构造函数中正确的路径和文件名的表示是。

File f=new File(填代码处); file=new FileReader(f); in=new BufferedReader(file);

A) "1.txt" B) "d:\\my\\1" C) "d:\\my\\1.txt" D) "d:\ my\1.txt"

13、有整型数组: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 2 14、下面的程序段执行后输出的结果是。 StringBuffer buf=new StringBuffer("Beijing2008"); buf.insert(7,"@");

System.out.println(buf.toString());

A) Beijing@2008 B) @Beijing2008 C) Beijing2008@ D) Beijing#2008 15、.下面表达式可用得到x和y的最大值。

A) x>y?y:x B) xy?(x+y):(x-y) D) x==y?y:x;

二、多选题 (每题至少有一个正确答案,多选少选都不给分,每题2分,共10分)

16、下面赋值语句是合法的。

A、float a = 2.0 B、double b = 2.0 C、int c = 2 D、long d = 2

17、下面 语句是创建数组的正确语句。

A、 float f[][] = new float[6][6]; C、float f[][] = new float[][6];

B、float []f[] = new float[6][6]; D、float [][]f = new float[6][6];

18、Java中如下

A、 private B、public C、protected D、protect

19. 下面 事件监听器在Java中有事件适配器。

A、 MouseListener B、KeyListener C、ActionListener D、WindowListener

20、已知如下的命令执行 java MyTest a b c, 语句是正确的。

A、 args[0] = "MyTest a b c" B、args[0] = "MyTest" C、args[0] = "a" D、args[1]= '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; i

(1)写出程序运行后的结果。(2分) abs class length size

(2)方法调用str[0].length()的返回结果是多少?(3分) 2. (5分)

定义类A和类B如下. (5分) class A { int 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、A 14、A 15、B

二、多选题 (每题至少有一个正确答案,多选少选都不给分,每题2分,共10分)

1、B,C,D

2、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 length size (2) 4

2、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.*;

}

2、 import java.io.*; import java.net.*;

public class HelloServer {

public static void main(String args[]) throws IOException {

ServerSocket server=null;

server = new ServerSocket(8888); Socket ClientSocket = null;

public class SelectSort {

public static void main(String args[]) {

int a[]={20,10,50,40,30,70,60,80,90,100}; int temp;

for (int i=0; i

if (a[i]

for (int k=0;k

System.out.println("a["+k+"]:"+a[k]); } }

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 Thread {

public 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 Exception {

new 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.—sys1 B.&—m C.I D.40name

3、下列语句执行后,变量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,82

4、应用程序的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;i

A) aceg B) ACEG C) abcdefg D) abcd

6、Java编程所必须的默认引用包为 。

A.java.sys包 B.java.lang包 C.java.new包 D.以上都不是

7、执行下列代码后, 结论是正确的String[] s=new String[10];

A.s[10]为″″ B.s[9]为null C.s[0]为未定义 D.s.length为101

8、定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确

声明应为 。

A.private class MyClass extends Object B.class MyClass extends Object C.public class MyClass

D.private class MyClass extends Object

9、JAVA程序经常用到“递归”,“递归”的基本思想是 。

A.“让别人反复调用自己” B.“自己反复调用别人” C.“自己反复调用自己” D.以上说法都不对

10、Java中访问限定符不包括 。

A.public B.private C.default D.final

11、Applet类的直接父类是 。

A.Component类 B.Container类 C.Frame类 D.Panel类

12、Frame的默认的布局管理器是下列哪一个 。

A.FlowLayout B.BorderLayout C.GridLayout D.CardLayout

13、在下列事件处理机制中 不是机制中的角色。

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.2

C)程序可以编译运行,输出结果为:

float: 1.2

long: 8

D) 程序中定义的两个参数不同的method方法称为方法重栽。

20、下面是在命令行运行Java应用程序A,怎样才能在main(String args[])方法中访问单词"first" 。

java A the first snow , the first snow came.

A)args[0] B)args[1] C)args[2] D)args[5]

三、 填空题(每空格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; ch

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、(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; i

8: System.out.print(str[i]+" ");

9: }

10: }

(1)写出程序运行后的结果。(2分)

(2)方法调用str[0].length()的返回结果是多少?(3分)

2行

3. (5分)

1: //TestKeyListener.java

2: 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;i

stk.push(s[i]+" ");

}

int k=0;

while(k

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、C

14、C 15、C

二、多选题 (每题至少有一个正确答案,多选少选都不给分,每题2分,共10分)

1、A,B,C,D 2、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 length size (2) 4

3、(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[ i ] = new Card( faces[ i % 13 ], suits[ i / 13 ] ); }

(2)for ( int first= 0; first

deck[ first] = deck[ second ];

deck[ second ] = temp;

}


相关内容

  • 浙江广播电视大学-浙江广播电视大学
  • 浙 江 广 播 电 视 大 学 开放本科各专业 <数学文化>考试大纲 第一部分 期末考试说明 一.期末考试要求 <数学文化>是浙江广播电视大学开设的一门通识课.数学是关于数量和空间形式的一门科学,还是自然科学和社会科学的工具和语言.作为大学生,学习数学,除了形成"理 ...

  • 微积分第一学期期末试卷汇总
  • 浙江工商大学2008/2009学年第一学期考试试卷(A) ................................................................................ 1 浙江工商大学2008/2009学年第一学期考试试卷(B) ......... ...

  • 浙江大学期末考试大学语文试卷A答案
  • A.二十岁 十六岁 帽子 头巾 B.二十岁 十五岁 帽子 簪子 C.十八岁 十五岁 帽子 簪子 D.十八岁 十六岁 帽子 簪子 5.请问十二地支中"巳"对应的是十二生肖中的哪一种动物? A.龙 B.蛇 C.马 D.羊 6. 带点字注音正确的是__________. A.溯洄从之, ...

  • 浙江省历史与社会期末试卷(答案)
  • 浙江省<历史与社会>七年级下册期末试卷 同学们,请仔细审题,认真思考,认真作答,发挥自己的最佳水平! 一.请认真思考,判断下列说法的对与错.(每题1分,共10分.对的打√,错的打×) 1.我们接触的第一个小社会是学校.( ) 2.上网可以足不出门了解天下事,所以网络有百利而无一害.( ) ...

  • 浙江大学05-06夏微积分三期末试卷[有答案]
  • 浙江大学2005–2006学年夏季学期 < 微积分Ⅲ>课程期末考试试卷 开课学院: 理学院 考试形式:闭卷 考试时间:2007年7月1日 所需时间:120 分钟 考生姓名: _____学号: 专业: ________ 一.填空题(每小题5分,将答案填在横线上) (1) 设l为椭圆4x2 ...

  • 浙江省嘉兴市历史与社会七年级下册期末检测试卷
  • 浙江省嘉兴市<历史与社会>七年级下册期末检测试卷 提示: 1.本卷为开卷考,卷面总分为105分,其中附加分5分.附加分计入总分, 但总分不超过100分. 2.题型共有三种类型:选择题.填空题和主观题.选择题均为单选题,每题2分,填空题每空1分,主观题类型有多种,请按要求作答. 3.请将所 ...

  • 2016年浙江省高一下学期语文期末试卷(含答案)
  • 浙江省高一下学期语文期末试卷 考生须知: 1.本试卷分试题卷和答题卷,满分100分,考试时间l00分钟. 2.答题前,在答题卷密封区内填写学校.班级和姓名. 3.所有答案必须写在答题卷上,写在试题卷上无效. 一(18分) 1.下列句子中没有错别字且加点字的注音正确的一项是(3分) ( ) A.面对突 ...

  • 浙江农林大学历年毛概期末考试试卷及答案(1)
  • 一.单项选择题(每题1分 共20分 每题只有1个正确选项) 1.马克思主义的理论品性是 A实事求是 B 解放思想 C 与时俱进 D求真务实 2.20世纪中期,共产党执政的社会主义国家有 A5个 B 10个 C 14个 D 15个 2.21世纪,共产党执政的社会主义国家现在仅存 A 4个 B 5个 C ...

  • 电子信息科学与技术专业介绍及就业前景
  • 电子信息科学与技术专业就业前景 学习这个专业的基本要求: 1.具有较扎实的数理基础: 2.掌握电子学.信息科学.计算机科学等的基本理论.基本方法和技能: 3.具有在信息的获取.传递.处理及应用等方面从事理论研究和解决实际问题的能力: 4.了解电子信息学科的理论前沿.应用前景和最新发展动态,以及电子信 ...