Java语言程序设计考试题库及答案二_第1页
Java语言程序设计考试题库及答案二_第2页
Java语言程序设计考试题库及答案二_第3页
Java语言程序设计考试题库及答案二_第4页
Java语言程序设计考试题库及答案二_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Java语言程序设计期末复习综合练习题(带答案)

一、选择题。

2.main方法是JavaApplication程序执行的入口点,关于main方法的方法头以下哪项

是合法的()?

A、publicstaticvoidmain()

B、publicstaticvoidmain(Stringargs[])

C、publicstaticintmain(String[]arg)

D、publicvoidmain(Stringarg[])

答:B

4.下列哪个是合法的Java标识符?()

A、Tree&GlassesB、FirstJavaApplet

C、_$theLastOneD、273.5

答:B、C

5.JavaApplication源程序的主类是指包含有()方法的类。

A、main方法B、loSlring方法

C、init方法D、actionPerfromed方法

答:A

6.Java的字符类型采用的是Unicode编码方案,每个Unicode码占用()个比特

位。

A、8B、16C、32D、64

答:B

7.设a=8,则表达式a»>2的值是()。

A>1B、2C、3D、4

答:B

8.若a的值为3时,下列程序段被执行后,c的值是多少?()

c=1;

if(a>0)if(a>3)c=2;elsec=3;elsec=4;

A、1B、2C、3I)、4

答:C

9.在编写JavaApplication程序时,若需要使用到标准输入输出语句,必须在程序的开

头写上()语句。

A、importjava.awt.*;B、importjava.applet.Applet;

C>importjava.io.*;D、importjava.awt.Graphics;

答:C

10.对于构造函数,下列叙述正确的是()o

A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。

B、构造函数的返回类型只能是void型。

C、构造函数的主要作用是完成对类的对象的初始化工作。

D、一般在创建新对象时,系统会自动调用构造函数。

答:ACD

11.下面的是关于类及其修饰符的一些描述,正确的是:()。

A、abstract类只能用来派生子类,不能用来创建abstract类的对象。

B、final类不但可以用来派生子类,也可以用来创建final类的对象。

C>abstract不能与final同时修饰一个类。

D、abstract方法必须在abstract类中声明,但abstract类定义中可以没

有abstract方法。

答:ACD

13.若在某一个类定义中定义有如下的方法:abstractvoidperformDial();

该方法属于()。

A、本地方法B、最终方法C、解态方法D、抽象方法

答:D

14.下列关于静态初始化器的叙述中,哪一个是正确的?()

A、静态初始化器是在构造函数之前加上static修饰符。

B、静态初始化器是对类自身进行初始化。

C、静态初始化器在同一个类中只能有一个。

D、静态初始化器是在其所属的类加载内存时由系统自动调用执行。

答:BD

15.不使用static修饰符限定的方法称为对象(或实例)方法,下列哪一个说法是正确

的?()

A、实例方法可以直接调用父类的实例方法。

B、实例方法可以直接调用父类的类方法。

C、实例方法可以直接调用其他类的实例方法.

D、实例方法可以直接调用本类的类方法。

答:BD

16.设有下面两个类的定义:

classPerson{classStudentextendsPerson{

longid;//身份证号intscore;//入学总分

Stringname;//姓名intgetScore(){

)returnscore;

)

)

问:类Person和类Student的关系是()。

A、包含关系B、继承关系

C、关联关系D、无关系,上述类定义有语法错误

答:B、

17.设有下面的两个类定义:

classAA{

voidShow(){System.out.printin("我喜欢Java!");

)

classBBextendsAA{

voidShowO{System,out.printin("我喜欢C++!”);

则顺序执行如下语句后输出结果为:()

AAa;BBb;

a.Show();b.Show();

A、我喜欢Java!B、我喜欢C++!

我喜欢C++!我喜欢Java!

C、我喜欢Java!D、我喜欢C++!

我喜欢Java!我喜欢C+刊

答:A

19.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型

或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为()。

A、隐臧B、覆盖C、重载D、Java不支持此特性

答:C

20.对于构造函数,下列叙述正确的是()。

A、构造函数也允许重载。

B、子类无条件地继承父类的无参构造函数。

C、子类不允许调用父类的构造函数。

D、在同一个类中定义的重载构造函数可以相互调用。

答:ABD

22.设有下面两个赋值语句:

a=Integer,parselnt(,<1024M);

b=Integer.valueOf("1024").intValue();

下述说法正确的是()。

A、a是整数类型变量,b是整数类对象。

B、a是整数类对象,b是整数类型变量。

C、a和b都是整数类对象并且它们的值相等。

D、a和b都是整数类型变量并且它们的值相等。

答:D

24.下面的语句的作用是:()。

VectorMyVector=newVector(100,50);

A、创建一个数组类对象MyVector,有100个元素的空间,每个元素的初值为50。

B、创建一个向量类对象MyVector,有100个元素的空间,每个元素的初值为50。

C、创建一个数组类对象MyVector,有100个元素的空间,若空间使用完时,以50

个元素空间单位递增。

D、创建一个向量类对象MyVector,有100个元素的空间,若空间使用完时,以50

个元素空间单位递增。

答:D

25.在Java中,存放字符串常量的对象属于()类对象。

A、CharacterB、String

C、StringBufferD、Vector

答:B

31.对于子类的构造函数说明,下列叙述中不正确的是()。

A、子类无条件地继承父类的无参构造函数。

B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函

数,但这个调用语句必须是子类构造函数的第一个可执行语句。

C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行

自己的构造函数。

D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。

答:D

二、填空题。

2.设x=2,则表达式(x++)*3的值是。

答:6

3.若x=5,y=10,则x>y和x<=y的逻辑值分别为和。

答:false、true

4.顺序执行以下两个语句的输出结果是:。

Strings="我喜欢学习Java!”;

System.out.println(s.length());

答:10

5.据程序的构成和运行环境的不同,Java源程序分为两大类:程

序和程序O

答:JavaApplication、JavaApplet(或Application、Applet)

6.如果一个Java源程序文件中定义有4个类,则使用Sun公司的JDK编译器javac编

译该源程序文件将产生_______个文件名与类名相同而扩展名为的字节码文件。

答:4、class

7.开发与运行Java程序需要经过的三个主要步骤为、

和O

答:编辑源程序、编译生成字节码、解释运行字节码

9.一个JavaApplication源程序文件名为MyJavaApplication.java,如果使用Sun公司

的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该

顺序执行如下两个命令:

答:javacMyJavaApplication.java、javaMyJavaApplication

10.在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码字符占

用字节内存空间,这样,无论是中文字符还是英文字符,每个都是占用

字节内存空间。

答:2、2

11.在Java程序中定义的类有两种成员:、。

答:域成员、方法成员

13.创建一个名为MyPackage的包的语句是,

该语句应该放在程序的位置为:«

答:packageMyPackage;应该在程序第一句。

14.方法是一种仅有方法头,没有具体方法体和操作实现的方法,该方法必须

在抽象类之中定义。方法是不能被当前类的子类重新定义的方法。

答:抽象方法、最终方法(或abstract方法、final方法)

15.形式参数指的是方法被时的参数行,实际参数是方法被

时所传递进去的变量或值。

答:定义、调用

16.多态是指,在Java中有

两种多态,一种是使用方法的实现多态,另一种是使用方法的实

现多态。

答:一个程序中有多个同名的不同方法覆盖重载

17.在Java程序中,通过类的定义只能实现_________重继承,但通过接口的定义可

以实现_____________重继承关系。

答:单、多

19.字符串分为两大类,一类是字符串常量,使用类的对象表示;另一

类是字符串变量,使用类的对象表示。

答:String、StringBuffer

20.设有数组定义:intMyIntArray[]={10,20,30,40,50,60,70,80,90,100};

则执行以下几个语句后的输出结果是o

ints=0;

for(inti=0;i<MylntArray.length;i++)

s+=MyIntArray[i];

System.out.println(s);

答:550

三、写出下列程序完成的功能。

1.publicclassSum

{publicstaticvoidmain(Stringargs[])

{doublesum=0.0;

for(inti=1;i<=100;i++)

sum+=1.0/(double)i;

System.out.println(nsum=H+sum);

)

)

答:计算1/1+1/2+1/3+...+1/100的值。

2.importjava.io.*;

publicclassReverse

{publicstaticvoidmain(Stringargs[])

{inti,n=10;

inta[]=newint[10];

for(i=0;i<n;i++)

try(

BufferedReaderbr=newBufferedReader(

newInputStreamReader(System.in));

a[i]=Integer.parseInt(br.readLine());//输入一个整数

}catch(lOExceptione){};

for(i=n—1;i>=0;i-----)

System.out.print(a[i]+"");

System.out.println();

答:从标准输入(即键盘)读入10个整数存入整型数组a中,然后逆序输出这10个整数。

4.importjava.io.*;

publicclassClassi

(

publicstaticvoidmain(Stringargs[]){

inti,Max,Min;

inta[]={12,67,8,98,23,56,124,55,99,100);

Max=Min=a[0];

for(i=1;i<a.length;i++){

if(a[i]<Min)Min=a[i];

if(a[i]>Max)Max=a[i];

)

System.out.println(Max+“"+Min);

System.out.println();

)

)

答:在数组中查找并输出最大值和最小值。

5.publicclassABC

(

publicstaticvoidmain(Stringargs[]){

inti,j;

inta[]={12,67,8,98,23,56,124,55,99,100);

for(i=0;i<a.length-1;i++){

intk=i;

for(j=i;j<a.length;j++)

if(aU]<a[k])k=j;

inttemp=a[i];

a[i]=a[k];

a[k]=temp;

}

for(i=0;i<a.length;i++)

System.out.print(a[i]+"”);

System.out.println();

)

)

答:使用选择法对数组a的数据进行升序排序,然后输出排序后的结果。

6.importjava.io.*;

publicclassClassi{

publicstaticvoidmain(Stringargs[])

(

FactN=newFact(4);

System,out.println(N.fact());

)

}

classFact{

intn;

Fact(intnn){n=nn;}

intfact(){

inti,f=1;

for(i=l;i<=n;i++)

f=f*i;

returnf;

)

)

答:定义一个计算n!的类Fact,然后主类中创建一个对象求解4!的值。

8.importjava.io.*;

publicclassClassi{

publicstaticvoidmain(Stringargs[])

{SubClassa=newSubClass(10,3);

System.out.println(a.exp());

)

)

classSuperClass{

floatx;

intn;

SuperClass(floatxx,intnn){x=xx;n=nn;}

)

classSubClassextendsSuperClass{

SubClass(floatxx,intnn){super(xx,nn);}

floatexp(){

floats=1;

for(inti=1;i<=n;i++)s=s*x;

returns;

)

)

答:定义一个计算X”的类,然后用该类求1()3的值。

10.importjava.io.*;

publicclassabc

{publicstaticvoidmain(Stringargs[])

{SubClasssb=newSubClass();

System.out.println(sb.max());

classSuperClass

{inta=10,b=20;}

classSubClassextendsSuperClass

{intmax(){return((a>b)?a:b);}}

答:求两个数的最大值。

四、写出下面程序的运行结果。

1.importjava.io.*;

publicclassabc

{publicstaticvoidmain(Stringargs[])

{ABs=newAB(',Hello!,',',IloveJAVA/');

System.out.printIn(s.toString());

)

}

classAB{

Stringsi;

Strings2;

AB(Stringstrl,Stringstr2)

{si=strl;s2=str2;}

publicStringtoString()

{returnsl+s2;}

答:Hello!IloveJAVA.

2.importjava.io.*;

publicclassabc

(

publicstaticvoidmain(Stringargs[])

{inti,s=0;

inta[]={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.printin(',s=',+s);

)

)

答:s=180

3.importjava.io.*;

publicclassabc

publicstaticvoidmain(Stringargs[])

{SubSubClassx=newSubSubClass(10,20,30);

x.show();

)

)

classSuperClass

{inta,b;

SuperClass(intaa,intbb)

{a=aa;b=bb;}

voidshow()

{System.out.println("a=n+a4-n\nb="+b);}

)

classSubClassextendsSuperClass

{intc;

SubClass(intaa,intbb,intcc)

{super(aa,bb);

c=cc;

)

)

classSubSubClassextendsSubClass

{inta;

SubSubClass(intaa,intbb,intcc)

{super(aa,bb,cc);

a=aa+bb+cc;

)

voidshow()

{System.out.println(',a=,,+a+,,\nb=,'+b+,,\nc=',+c);}

)

答:a=60

b=20

c=30

4.importjava.io.*;

publicclassabc

(

publicstaticvoidmain(Stringargs[])

(

Stringsi="Hello!”;

Strings2=newString(^^World!^');

System.out.println(s1.concat(s2));

)

)

答:HelloiWorld!

5.importjava.io.*;

publicclassABC

publicstaticvoidmain(Stringargs[])

{inti;

inta[]={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-l]+"'*);

System.out.println();

)

)

答:110110110110110

6.importjava.io.*;

classParent

(

voidprintMe()

(

System,out.printin("parent");

)

)

classChildextendsParent

(

voidprintMe()

{

System,out.println(〃child〃);

)

voidprintAll()

(

super.printMe();

this.printMe();

printMe();

)

)

publicclassClassi

(

publicstaticvoidmain(Stringargs[])

(

ChildmyC=newChild();

myC.printAll();

)

)

答:parent

child

child

五、使用Java语言编写程序。

1.编写一个字符界面的JavaApplication程序,接受用户从键盘输入的一个正整数,

然后统计并输出从1到这个正整数的累加和。

答:参考程序如下:

importjava.io.*;

publicclassSUM

(

publicstaticvoidmain(String[]args)

inti,n=-l,sum=0;

while(n<l)

try(

BufferedReaderbr=

newBufteredReader(newInputStreamReader(System.in));

n=Integer.parseInt(br.readLine());

}catch(lOExceptione){);

for(i=1;i<=n;i++)sum+=i;

System.out.println(sum);

2.编写一个字符界面的JavaApplication程序,接受用户输入的10个整数,并输出这

10个整数的最大值和最小值。

答:参考程序如下:

importjava.util.*;

publicclassMaxMin{

publicstaticvoidmain(String[]args){

Scannerinput=newScanner(System.in);

inta[]=newint[10];

intmax;

intmin;

for(inti=0;i<=9;i++)

a[i]=input.nextlnt();

max=min=a[0];

for(inti=l;i<=9;i++)

{if(a[i]>=max)max=a[i];

if(a[i]<=min)min=a[i];}

System.out.prinlln("max="+max+“\n"+"min="+min);

4.编写一个学生类Student,要求:

(1)学生类Student属性有:

id:long型,代表学号

name:String类对象,代表姓名

age:int型,代表年龄

sex:boolen型,代表性别(其中:true表示男,false表示女)

phone:String类对象,代表联系电话

(2)学生类Sludem的方法有:

Student(longi,Stringn,inta,booleans,longp)

:有参构造函数,形参表中的参数分别初始化学号、姓名、

年龄、性别和联系电话。

intgetAge()():获取年龄作为方法的返回值。

booleangetSex()():获取性别作为方法的返回值。

longgetPhone():获取联系电话作为方法的返回值。

publicStringtoString():以姓名:联系电话的形式作为方法的返回值。

答:参考程序段如下:

classStudent{

longid;

Stringname;

intage;

booleansex;

longphone;

Student(longitStringn,inta,booleans,longp){

id=i;

name=n;

age=a;

sex=s;

phone=p;

)

intgetAge(){returnage;}

booleangetSex(){returnsex;}

longgetPhone(){returnphone;}

publicStringtoString(){returnname+":n+phone;}

)

Java语言程序设计试题(带答案)

课程代码:04747

一、单项选择题(本大题共1()小题,每小题1分,共10分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括

号内。错选、多选或未选均无分。

1,下列字符组合不能作为Java整型常量的是()

A.078B.0x3ACB

C.5000D.Ox3ABe

2.以下程序代码的输出结果是()

intx=10;

while(x>7)

{System.out.print(n*n);x—;}

A**B***

C*D****

3.设类U声明,及对象u和v的定义如下:

classU{

intx,inty;

U(inta,intb){x=a;y=b;}

voidcopy(Ua){x=a.x;y=a.y;}

}

Uu=newU(l,2),v=newU(2,3);

在以下供选择的代码中,可能引起系统回收内存的是()

A.u.x=v.y;u.y=v.x;B.u=v;

C.u.copy(v);D.v.copy(u);

4.设有以下代码:

Stringsl=n123H;

Strings2=n123n;

Strings3=newString。123”);

则表达式sl==s2和sl=s3的值分别是()

A.true,trueB.false,false

C.true,falseD.false,true

5.以下关于AWT与Swing之间关系的叙述,正确的是()

A.Swing是AWT的提高和扩展

B.在写GUI程序时,AWT和Swing不能同时使用

C.AWT和Swing在不同的平台上都有相同的表示

D.AWT中的类是从Swing继承的

6.在以下Swing组件中,能为它指定布局管理器的是()

A.JScrollBar对象B.JMenuBar对象

C.JComboBox对象D.JDialog对象

7.一般的绘图程序要定义一个JPanel子类。在JPanel子类中还要重定义一个方法,在这

个方法中调用绘图方法,绘制各种图形。要重定义的方法是()

A.paint()B.paintComponent()

C.repaint()D.update()

8.用Runnable接口实现多线程的主要工作是()

A.声明实现Runnable接口的类,在类内实现run()方法,让线程调用start。方法。

B.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在init()

方法中创建新线程,启动新线程。

C.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在Init()

方法或start。方法中创建新线程,在start。方法中启动新线程。

D.声明实现Runnable接口的类,在类内实现run()方法,在init()方法中创建新线程,在

start。方法中启动新线程。

9.程序如果要按行输入输出文件的字符流,最合理的方法是采用()

A.BufferedReader类和BufferedWriter类

B.InputStream类和OutputStream类

C.FileReader类和FileWriter类

D.File_Reader类和File_Writer类

10.在编写访问数据库的Java程序中,要用到DriverManager类。该类的作用是()

A.存储查询结果

B.处理与数据库的连接

C.在指定的连接中处理SQL语句

D.处理驱动程序的加载和建立数据库连接

二、填空题(本大题共10小题,每小题2分,共20分)

请在每小题的空格中填上正确答案。错填、不填均无分。

11.Java程序的字节码文件的扩展名是。class

12.构造一个Java表达式:y/x>5,并且x!=0。这个表达式是«y/x>5&&x!=0

13.在类声明之前用修饰,声明类是不能被再继承的类,即它不能再有子类。

final

14.设有字符串定义:

Strings="ABCDABCD”;

则表达式s.indexOf("B")的值是。1

15.在实现接口ActionListener的方法actionPerformed()中,常用的有两个获得事件源的

方法,它们是getActionCommand。和。getSource()

16.使用单选按钮的方法是将一些单选按钮用对象分组,使同一组内的单选按

钮只允许一个被选中。ButtonGroup

17.在Java语言中,用类Font对象设置字型。如果要设置的字型是:细明体、正常风格

(Font.PLAIN),12磅字号,构造这样要求的Font对象fnA的代码是。Font

fnA=newFont(“细明体”,Font.PLAIN.12)

18.线程从阻塞状态恢复到就绪状态,有三种途径:自动恢复、用resume。方法恢复和用

方法恢复。notify。或notifyAll()

19.为普通的8位字节流文件读和写操作提供支持的类是oInputstream

OutputStream

20.Connection类是java.sql包中用于处理与数据库连接的类。Connection对象是用来表

示的对象,Java程序对数据库的操作都在这种对象上进行。数据库连接

三、简答题(本大题共6小题,每小题3分,共18分)

21.请写出表示year年是闰年的Java表达式。闰年的条件是:每4年一个闰年,但每100

年少一个闰年,每400年又增加一个闰年。(year%4==0)&&(year%4!=0)||(year%400=

=0)

22.请写出在类的方法的定义之前,加上修饰字public、private的区别。

Public修饰的方法为公用方法,任何类的方法都可以访问他

Private修饰的方法,本类内部可以访问

23.请写出将文本区text放置于滚动面板jsp,并将滚动面板jsp添加到JFrame窗口

myFrame的Java语句。

TextAreatext=newTextArea();

JScrollPanejsp=newJScrollPane(text);

myFrame.getContentPane().add(jsp);

24.要用Graphics2D类的方法画一个图形,首先要把参数对象g强制转换成Graphics2D

对象;然后,用图形类提供的静态方法Double。创建一个图形对象;最后,以图形对象

为参数调用Graphics2D对象的draw。方法绘制这个图形。请写出用这样的方法绘制一条

线段的程序段,线段的两个端点分别是(10.0,10.0)和(30.0,30.0),

Graphics2Dg2d=(Graphics2D)g;

Line2Dline=newLine2D.Double(10,20,30,40);

G2d.draw(line)

25.请写出字符流数据与字节流数据的区别。(P.175)

26.请写出URLConnection类在编写Java网络应用程序中的作用。

URLConnection类完成流对象和实现网络连接

四、程序填空题(本大题共5小题,每小题4分,共20分)

27.方法intsigmaDigit(intn)的功能是求出十进制整数n的各位数字之和。例如,n=1234,

该方法的返回值是10o

staticintsigmaDigit(intn)

{intsum=0,d;

while(n>0){

d=n%10;

;sum+=d

n/=10;

}

;returnsum

28.以下小应用程序能响应鼠标按动的事件,当鼠标在正文区的某个位置被点击时,就在

该位置显示一个记号“x”,程序限制最多保留最新20个位置。

importjava.applet.*;importjava.awt.*;

importjavax.swing.*;importjava.awt.event.*;

classMyPanelextendsJPanel{

publicvoidprint(Graphicsg,intx,inty)(

g.setColor(Color.red);

g.drawLine(x-5,y-5,x+5,y+5);

g.drawLine(x+5,y-5,x-5,y+5);

)

}

classMyWindowextendsJFrameimplementsMouseListener{

finalintMaxMarks=20;

intcurrentMarks=0,markCount=0;

Pointmarks[]=newPoint[MaxMarks];

MyPanelpanel;

MyWindow(){

this.setLocation(100,100);

this.setSize(300,300);

Containercon=this.getContentPane();

panel=newMyPanel();con.add(panel);

(this);addMouseListener

this.setVisible(true);

)

publicvoidpaint(Graphicsg){

inti;

g.clearRect(0,0,this.getWidth(),this.getHeight());

for(i=0;i<markCount;i++){

(g,marks[i].x,marks[i].y);print

}

)

publicvoidmousePressed(MouseEvente){}

publicvoidmouseReleased(MouseEvente){}

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseExited(MouseEvente){}

publicvoidmouseClicked(MouseEvente){

marks[currentMarks]=newPoint(e.getX(),e.getY());

if(markCount<MaxMarks)markCount++;

currentMarks=(currentMarks+1)%MaxMarks;

repaint();

}

}

publicclassClassiextendsApplet{

publicvoidinit(){

MyWindowmyWndow=newMyWindow();

)

)

29.这是一个处理选择项目事件的子窗口类。窗口中有2个选择框,当选中某个选择框时,

文本框将显示选择框对应的信息。

classMyWindowextendsJFrameimplementsItemListener{

JTextFieldtext;

JCheckBoxboxl,box2;

MyWindow(Strings){

;super(s)

Containercon=this.getContentPane();

this.setLocation(100,100);this.setSize(400,200);

text=newJTextField(lO);

boxl=newJCheckBox(nA计算机”,false);

box2=newJCheckBox(nB计算机”,false);

con.setLayout(newGridLayout(3,2));

con.add(newJLabel("计算机产品介绍”,JLabeLCENTER));

add(newJLabeI("计算机2选1*JLabeLCENTER));

con.add(box1);con.add(box2);con.add(text);

boxl.addltemListener(this);

box2.addltemListener(this);

this.setVisible(true);this.pack();

publicvoiditemStateChanged(e){ItemEvent

if(e.get!temSelectable()==boxl){

text.setText("A公司生产”);

}elseif(e.getItemSelectable()==box2){

text.setText("B公司生产)

)

)

)

30.这是一个播放幻灯片的小应用程序中的paint。方法。设幻灯片已由小应用程序的init()

方法装入内存,并存放于mylmage数组中,幻灯片的张数放于变量num中,paint。方法

要播放的幻灯片号是intcurrentimage=0;

finalintnum=30;

Image[]mylmage=new[num];Image

publicvoidpaint(Graphicsg){

if((mylmage|currentlmage|)!=null)

g.(mylmage[currentlmage],10,10,drawlmage

mylmage[currentimage].getWidth(this),

mylmage[currentimage].getHeight(this),this);

)

31.以下定义的类ShareData用于管理多个线程共享数据vaL为了保证对共享数据val

修改的完整性,线程对val的操作需要互斥,类ShareData中定义的方法modiData。就是

供共享val的线程修改val的方法。程序共有20个线程共享vah有些减少val,有些增

加val。

publicclassClassi{

publicstaticvoidmain(Stringargs[]){

ShareDatamrc二newShareData(50);

Thread[|aThreadArray=newThread[20|;

System.out.println(H\t刚开始的值是:“+mrc.getVal());

System.out.println(n\t多个线程正在工作,请稍等!)

for(inti=0;i<20;i++){

intd=i%2==0?50:-30;

aThreadArray[i]=newThread(newMyMultiThreadClass(mrc,d));

aThreadArray|i].start();

)

WhileLoop:〃等待所有线程结束

while(true){

for(inti=0;i<20;i++)

if(aThreadArray[i].())continueWhileLoop;

isAlive()

break;

)

System.out.println(H\t最后的结果是:"+mrc.getVal());

}

)

classMyMultiThreadClassimplementsRunnable{

ShareDataUseinteger;intdelta;

MyMultiThreadClass(ShareDatamrc,intd){

Useinteger=mrc;delta=d;

)

publicvoidrun(){

fbr(inti=0;i<1000;i++){

Uselnteger.modiData(delta);

try{Thread.sleep(10);〃做一些其他的处理

}catch(InterruptedExceptione){}

)

)

}

classShareData{

intval;

ShareData(intinitValue){val=initValue;}

intgetVal(){returnval;}

privatevoidputVal(intv){val=v;}

voidmodiData(intd){synchronized

putVal(getVal()+d);

}

)

五、程序分析题(本大题共5小题,每小题4分,共20分)

32.阅读下列程序,请写出该程序的输出结果。

classA{

intx,y;

A(inta,intb){

x=a;y=b;

)

)

publicclasssample{

publicstaticvoidmain(Stringargs[]){

Apl,p2;

p2=newA(12,15);

pl=p2;p2.x++;

System.o

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论