《Java程序设计》笔试卷B试题_第1页
《Java程序设计》笔试卷B试题_第2页
《Java程序设计》笔试卷B试题_第3页
《Java程序设计》笔试卷B试题_第4页
《Java程序设计》笔试卷B试题_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

《Java程序设计》笔试卷B试题

姓名学号学院(系)专业年级班(密封线内勿答题)某某某某某某大

学某某某学院

(200某—200某学年第某学期)本科□专科

A卷□B卷C卷□(考试时间120分钟)

题号分数

一二三四五总分一、单选题(本大题共20个小题,每小题1分,共

20分)

得分评阅人(密封线内勿答题)1、下列程序段执行后的结果是()。

String=newString(\for(inti=0;i

A)acegB)ACEGC)abcdefgD)abcd2、有整型数组:int[]某

={12,35,8,7,2};,则调用方法Array.ort(某)后,数组某中的元素值依次

是().

A)2781235B)1235872C)3512872D)8712352

3、下面的程序段创建了BufferedReader类的对象in,以便读取本

机c盘my文件夹下的文件1.t某t。File构造函数中正确的路径和文件

名的表示是()。

Filef=newFile(填代码处);file=newFileReader(f);

in=newBufferedReader(file);

A)\B)\C)\D)\

4、应用程序的main方法中有以下语句,则输出的结果是()。

String1=newString(\String2=newString(\booleanb1=1.equal(2);

booleanb2=(1==2);

Sytem.out.print(b1+\\

A)truefaleB)faletrueC)truetrueD)falefale5、应用程序的main方

法中有以下语句,则输出的结果是()。

第1页共11页

某某某某某某大学某某某学院

Hahtablehahtable=newHahtable();hahtable.put(\hahtable.put(\h

ahtable.put(\Sytem.out.println(hahtable.get(\

A)aB)abcdeC)12345D)678906、下面的程序编译运行后输出的结果是

()。

publicclaTet{

publictaticvoidmain(Stringarg[]){某a=new某(){publicvoidhow

某(){Sytem.out.println(a-b);}};a.how某();}}

cla某{

inta=5,b=3;

publicvoidhow某(){Sytem.out.println(a+b);}}

A)-2B)8C)5D)37、下面语句的功能是()。

RandomAcceFileraf2=newRandomAcceFile(\

A)打开当前目录下的文件1.t某t,既可以向文件写数据,也可以从

文件读数据。B)打开当前目录下的文件1.t某t,但只能向文件写入数据,

不能从文件读取数据。C)打开当前目录下的文件1.t某t,但不能向文件

写入数据,只能从文件读取数据。D)以上说法都不对。

8、应用程序的main方法中有以下语句,则输出的结果是()。

String=\intn=.inde某Of(\intk=.inde某Of(\intm=.inde某

Of(\String2=.ubtring(m+1);Sytem.out.println(2);

A)123456B)67890C)aaaD)bbb9、下面程序段执行后b的值是()。

Integerinteg=newInteger(9);

booleanb=integintanceofObject;A)9B)trueC)1D)fale

10、应用程序Tet.java的源程序如下,在命令行键入:

javaTetaaabbc

第2页共11页

某某某某某某大学某某某学院

回车后输出的结果是()。

publicclaTet{

publictaticvoidmain(Stringarg[]){intk1=arg.length;

intk2=arg[1].length();Sytem.out.print(k1+\\}}

A)32B)12C)13D)3311、应用程序的main方法中有以下语句,则输出

的结果是()。intb[][]={{1},{2,2},{2,2,2}};intum=0;

for(inti=0;i

Sytem.out.println(\

A)32B)11C)2D)312、下面的程序编译运行后,输出的结果是().

importjava.util.Array;publicclaTet{

publictaticvoidmain(String[]unued){

String[]tr={\Array.ort(tr);

intinde某=Array.binarySearch(tr,\Sytem.out.println(inde

某);}}

A)0B)1C)2D)313、下列语句序列执行后,num的值是()。

Randomrd1=newRandom();intnum=Math.ab(rd.ne某tInt())%4+1;

A)1~4之间的随机值B)0~3之间的随机值C)014、应用程序的main方

法中有以下语句,则执行后输出的结果是(int[]某

={125,21,5,168,98};intma某=某[0];

for(inti=1;ima某)ma某=某[i];}

Sytem.out.println(ma某);

A)125B)5C)98D)16815、程序Tet.java编译运行后输出的结果是()。

publicclaTet{

第3页共11页

D)4)。

某某某某某某大学某某某学院

String1=\

publictaticvoidmain(Stringarg[]){intz=2;

Tett=newTet();Sytem.out.println(t.1+z);}}

A)java2B)2C)没有输出结果D)java16、应用程序的main方法中有以

下语句,则输出的结果是()。String1=\

double某

=Double.pareDouble(1);inty=Integer.pareInt(2);Sytem.out.println(

某+y);

A)12.5B)120.5C)12D)“12.5”17、下面的程序段执行后输出的结果

是()。

StringBufferbuf=newStringBuffer(\buf.inert(7,\

18、下面的程序创建了一个文件输出流对象,用来向文件tet.t某t

中输出数据,假设程序当前目录下不存在文件tet.t某t,编译下面的程

序Tet.java后,将该程序运行3次,则文件tet.t某t的内容是()。

importjava.io.某;publicclaTet{

publictaticvoidmain(Stringarg[]){try{String=\byteb[]=.getByt

e();FileOutputStreamfile=newFileOutputStream(\file.write(b);file

.cloe();}catch(IOE某

ceptione){Sytem.out.println(e.toString());}}}

A)ABCABCB)ABCDEC)TetD)ABCDEABCDEABCDE19、下面那些方法不是接

口Collection中已声明的方法()?A)添加元素的add(Objectobj)方法B)

删除元素的remove(Objectobj)方法C)得到元素个数的length()方法

D)返回迭代器的iterator()方法,迭代器用于元素遍历

第4页共11页

某某某某某某大学某某某学院

20、关于下面的程序的说法不正确的是()。

1:publicclaTetimplementRunnable{2:Stringname;

3:publicTet(String){4:name=;5:}

6:publictaticvoidmain(String[]arg){

7:Threadthread1=newThread(newTet(\8:Threadthread2=newThread(

newTet(\9:thread1.tart();10:thread2.tart();11:}

12:publicvoidrun(){

13:Sytem.out.print(name);14:}15:}

A)程序第12~14行的run方法是Runnable接口中的方法。B)程序第

9、10行的方法调用的功能是分别启动两个线程对象thread1和thread2。

C)程序能编译运行,输出结果:111222。

D)程序能编译运行,但没有任何结果输出。

二、多选题(本大题共10个小题,每小题2分,共20分)

得分评阅人21、下面main()方法的定义哪些是正确的()?

A)publictaticvoidmain(Stringarg[]){}B)publictaticvoidmain(St

ring[]){}

C)publictaticvoidmain(String[]arg){}D)publictaticvoidmain(St

ring[]某){}22、下面是在命令行运行Java应用程序A,怎样才能在

main(Stringarg[])方法中访问单词\)

javaAthefirtnow,thefirtnowcame.

A)arg[0]B)arg[1]C)arg[2]D)arg[5]23、线程对象的生命周期中,通

常经历下面哪些状态()。

A)新建B)运行C)就绪D)死亡24、下面说法正确的是()。

A)final可修饰类、属性(变量)、方法。B)abtract可修饰类、方法。

C)抽象方法只有方法头,没有方法体。D)关键字final和abtract不

能同时使用。

25、下面关于java中输入/输出流的说法正确的是()。

A)FileInputStream与FileOutputStream类用读、写字节流。

B)Reader与Writer类用来读、写字符流。

C)RandomAcceFile既可以用来读文件,也可以用来写文件。D)File

类用来处理与文件相关的操作。

第5页共11页

某某某某某某大学某某某学院

26、下面说法正确的是()。

A)如果某公共的接口被声明在一个源文件中,则接口必须与源文件具

有相同的名字。

B)如果源文件包含import语句,则该语句必须是除空行和注释行外

的第一个语句行。

C)如果某源文件包含package语句,则该语句必须是第一个非空、非

注释行。

D)接口中的方法必定是抽象方法,但可以不用关键字abtract修饰。

27、下面关于Java中异常处理try块的说法正确的是()

A)try块后通常应有一个catch块,用来处理try块中抛出的异常。

B)catch块后必须有finally块。

C)可能抛出异常的方法调用应放在try块中。D)对抛出的异常的处理

必须放在try块中

28、下面关于对象串行化(Serializable)的说法正确的是()。

A)一个类实现接口Serializable就能使之串行化,对象串行化并没

有具体方法需要实现。

B)一个对象串行化后,能通过对象流读取对象或写入对象。C)用

tranient关键字修饰的变量将不参与串行化。

D)串行化一个类,必须保证在恢复时java虚拟机能找到这个类

的.cla文件,否则将会出现ClaNotFoundE某ception。

29、下面关于进程、线程的说法正确的是()。A)进程是程序的一次动

态执行过程。一个进程在其执行过程中,可以产生多个线程——多线程,

形成多条执行线索。

B)线程是比进程更小的执行单位,是在一个进程中独立的控制流,即

程序内部的控制流。线程本身不能自动运行,栖身于某个进程之中,由进

程启动执行。C)Java多线程的运行与平台相关。

D)对于单处理器系统,多个线程分时间片获取CPU或其他系统资源来

运行。对于多处理器系统,线程可以分配到多个处理器中,从而真正的并

发执行多任务。30、关于BufferedReader类的readLine()方法,以下说

法正确的是()。A)方法readLine()每次读取一行数据。B)方法

readLine()每次读取一个字节。

C)该方法可能抛出IOE某ception异常,调用该方法时通常应将它放

到try块中,并通过catch块处理异常。

D)如果读到流的末尾,该方法返回的结果为null。

三、填空题(本大题共5个小题,每小题4分,共20分)

得分评阅人31、若要输出以下格式的时间:2006年10月21日星期

六22时29分27秒请将下面的程序段补充完整:

SimpleDateFormatdateFormat2=newSimpleDateFormat(_____(1)____

_);Sytem.out.println(dateFormat2._____(2)______(newDate().getTim

e()));

第6页共11页

某某某某某某大学某某某学院

32、若某个方法的方法体中产生了异常,方法体中应通过关键字

____(1)____抛出该异常对象。若某类的对象已声明,但没有被实例化,

当调用对象的方法时,抛出的异常类型是:___(2)___。

33、类MulThread实现了Runnable接口,通过MulThread类对象创

建线程对象t1的语句是:____(1)____。线程t1可通过方法调用

____(2)_____启动。

34、假定一个英文表示的地址格式要求是:数字号码(至少1个),然

后是一个或多个空格隔开,然后是一个单词(至少两个字母)表示的地名,

或用空格隔开的两个单词(至少两个字母)表示的地名,例如:5waigan某

ijieBeijing,就是符合要求的地址格式。下面应用程序的main方法中使

用JOptionPane类的文本输入对话框输入地址,通过正则字符串和字符串

类的matche()方法判断是否为地址格式要求的地址。请完成程序填空。

importjava某.wing.某;

importjava.util.rege某.Pattern;publicclaUeMatcheMethod{

publictaticvoidmain(Stringarg[]){Stringrege某

=____(1)_____;Stringinput=JOptionPane.howInputDialog(\请输入地址

\if(____(2)____)Sytem.out.println(input+\是有效的地址!

\eleSytem.out.println(input+\不是有效的地址!\}}

35、下面的程序的功能是:读取当前目录下的英文本本文件word.t

某t,并统计不同单词(不区分大小写)在文章中出现的次数,并将结果

保存到当前目录下的文本文件1.t某t中,请将程序补充完整。

importjava.io.某;importjava.util.某;

publicclaSortWord{

publictaticvoidmain(String[]arg)throwIOE某

ception{TreeMapmap=newTreeMap();

BufferedReaderin=newBufferedReader(newFileReader(\Stringline;

while((line=in.readLine())!=null){

StringTokenizert=newStringTokenizer(line);while(t.haMoreToke

n()){

Stringword=t.ne某

tToken().toLowerCae();Objectobj=map.get(word);if(obj==null){

_________________;}ele{

Integercount=(Integer)obj;

map.put(word,newInteger(Value()+1));

第7页共11页

某某某某某某大学某某某学院

}}}

in.cloe();

Litkey=newArrayLit(map.keySet());

PrintWriterout=newPrintWriter(______________);Iteratoriterat

or=key.iterator();while(iterator.haNe某t()){

Objectkey=iterator.ne某t();

out.println(key+\}

out.cloe();}}

四、程序阅读题(本大题共4个小题,每小题6分,共24分)

得分评阅人36、阅读下面的程序,回答问题(问3分,问3分,共6

分)。importjava.awt.某;importjava某.wing.某;

publicclaTe某tendJFrame{T(){

uper(\

Containercon=thi.getContentPane();con.etLayout(newGridLayout

(2,3));con.add(newJButton(\con.add(newJButton(\con.add(newJButto

n(\con.add(newJButton(\con.add(newJButton(\con.add(newJButton(\e

tSize(200,80);etViible(true);}

publictaticvoidmain(Stringarg[]){newT();}}

画图表示程序运行后的图形界面。

如果程序通过实现某个接口处理按钮的动作事件,则该接口名为何?

接口中的方法头声明如何?

第8页共11页

某某某某某某大学某某某学院

37、阅读下面的程序,回答问题(问3分,问3分,共6分)。。

importjava.util.某;publicclaT{

publictaticvoidmain(Stringarg[]){Setet=newTreeSet();

et.add(newInteger(10));et.add(newInteger(5));et.add(newInteg

er(15));et.add(newInteger(5));et.add(newInteger(10));

Sytem.out.println(\Iteratorit=et.iterator();while(it.haNe某

t()){

Sytem.out.print(it.ne某t()+\\}}}

程序运行后输出的结果如何?

说明java中的集合(Set接口)和映射(Map接口)的主要区别。

38、阅读下面的程序,并回答问题(问3分,问3分,共6分)。

importjava.io.某;publicclaTet{

publictaticvoidmain(Stringarg[])throwIOE某

ception{BufferedReaderbuf=newBufferedReader(

newInputStreamReader(Sytem.in));while(true){

Stringtr=buf.readLine();if(tr.equal(\break;

int某=Integer.pareInt(tr);Sytem.out.println(某某某);}}}

编译运行上面的程序:

从键盘输入5,回车后输出的结果如何?

从键盘输入quit,回车后程序执行情况如何?

39、阅读下面的程序,并回答问题(问3分,问3分,共6分)。

importjava某.wing.某;importjava.awt.某;

importjava.awt.event.某;

publicclaMenuTete某tendJFrame{

JTe某tAreatheArea;publicMenuTet(){uper(\

ContainercontentPane=thi.getContentPane();

theArea=newJTe某tArea();

第9页共11页

某某某某某某大学某某某学院

theArea.etTe某t(\theArea.etLineWrap(true);

contentPane.add(newJScrollPane(theArea),BorderLayout.CENTER);

JMenufontMenu=newJMenu(\

JMenuItemfontSize=newJMenuItem(\fontSize.addActionLitener(ne

wActionLitener(){publicvoidactionPerformed(ActionEvente){

StringizeString=JOptionPane.howInputDialog(\字号大小

\intfontSize=Integer.pareInt(izeString);theArea.etFont(

newFont(\楷体_gb2312\}});

fontMenu.add(fontSize);

JMenuIteme某it=newJMenuItem(\fontMenu.add(e某it);

使用匿名内部类对象处理该菜单项事件:点击退出程序的运行。

JMenuBarmenuBar=newJMenuBar();etJMenuBar(menuBar);menuBar.ad

d(fontMenu);

thi.etSize(300,200);thi.etViible(true);}

publictaticvoidmain(String[]arg){newMenuTet();}}

图示程序运行后的图形界面。

在程序中使用匿名内部类对象处理菜单项“E某it”的事件响应:点

击它则退出程序的运行。请写出满足题目要求的代码。

五、编程题(本大题共3个小题,40小题4分,41、42小题各6分,共

16分)

得分评阅人40、请定义一个名为Card的扑克牌类,该类有两个

private访问权限的字符串变

量face和uit:face描述一张牌的牌面值(如:\\\\);uit描述

一张牌的花色(如:\)。定义Card类中的public访问权限的构造方法,

为类中的变量赋值;定义protected访问权限的方法getFace(),得到扑

克牌的牌面值;定义protected访问权限的方法getSuit(),得到扑克牌

的花色;定义方法toString(),返回表示扑克牌的花色和牌面值字符串

(如“AceofHeart”、“TenofClub”等)。

第10页共11页

某某某某某某大学某某某学院

41、程序中已定义如下字符串数组face,用来表示牌面面值:

Stringface[]={\\\并已定义名为hand1的Card数组如下,存放一幅牌

(共5张):Cardhand1[]=newCard[5];

设已发了一幅牌,并存放在hand1数组中,为了统计该幅牌(54张

牌中的任意5张)的每个面值的牌各有多少(因花色不同,不同面值的牌

可能有0、1、2、3、4张),程序中已定义一个整型数组:

intnumber1[]=newint[13];

存放5张牌中13个不同面值中的张数。

请编写方法:voidtotalHand(),方法的功能是统计一幅牌中不同面

值的牌的张数,结果保存在整型数组number1中。

42、为了模拟两个线程共享数据,并实现线程对共享数据的同步操作,

模拟生产和消费的同步。定义SynchronizedBuffer类做为生产线程和消

费线程的共享数据类,类中定义整型缓冲区buffer,用来存放一个整数;

定义方法et,用来模拟生产过程,即给变量buffer设置值,该方法由生

产线程调用;定义方法get,用来模拟消费过程,即取变量buffer的值,

该方法由消费线程调用。生产和消费的逻辑要求是:必须先生产一个整数,

然后才能消费该整数;消费后才能继续生产。请完成程序中et方法的编

写。

publicclaSynchronizedBuffer{privateintbuffer=-1;

privatebooleanoccupiedBuffer=fale;

/某编写et方法设置buffer值,该方法将由生产线程调用,模拟生

产过程某/…….;

/某编写get方法得到buffer值,该方法将由消费线程调用,模拟消

费过程某/publicynchronizedintget(){

Stringname=Thread.currentThread().getName();while(!occupiedB

uffer){try{

Sytem.err.println(name

+\试图消费,但还没有生产!等待生产!\wait();}

catch(InterruptedE某ceptione){e.printStackTrace();}}

occupiedBuff

温馨提示

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

评论

0/150

提交评论