Java语言程序设计一真题.docx
《Java语言程序设计一真题.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计一真题.docx(14页珍藏版)》请在冰豆网上搜索。
Java语言程序设计一真题
Java语言程序设计
(一)真题2016年10月
(总分:
100.00,做题时间:
90分钟)
一、第Ⅰ部分选择题
单项选择题(总题数:
10,分数:
10.00)
1.在下述字符串中,不是Java语言关键字的是______
(分数:
1.00)
A.int
B.static
C.java √
D.try
解析:
2.要作下列数据类型转换,需进行强制类型转换才能实现的是______
(分数:
1.00)
A.从int到char √
B.从int到long
C.从float到double
D.从byte到int
解析:
[解析]自动转换只能是简单类型向复杂类型转换,不能从复杂的转换成简单的。
即如下所示的从左到右转换:
byte→short→int→long→float→double。
3.在以下供选择的概念中,属于面向对象语言重要概念或机制的是______
(分数:
1.00)
A.方法
B.模块
C.线程
D.继承 √
解析:
[解析]面向对象程序设计语言引入许多概念和机制,包括抽象、对象、消息、类、继承、多态性等。
4.在下述Java程序代码中,能正确创建数组的是______
(分数:
1.00)
A.intmyA[5]={1,2,3,4,5};
B.intmyA[]=newint(5);
C.intmyA[];myA[]=newint[5];
D.int[]myA={1,2,3,4,5,6}; √
解析:
5.某Java程序的类A需要利用Swing创建无边框窗口,则A需要继承的类是______
(分数:
1.00)
A.JWindow √
B.JApplet
C.JFrame
D.JDialog
解析:
6.在以下供选的鼠标事件中,MouseMotionListener接口能处理的是______
(分数:
1.00)
A.按下鼠标键
B.拖动鼠标 √
C.鼠标进入
D.鼠标松开
解析:
[解析]MouseMotionListener接口能处理拖动鼠标和鼠标移动两种事件。
7.在以下代码中,能正确创建Font对象的是______
(分数:
1.00)
A.newFont("宋体",斜体,20);
B.newFont("楷体",20,正常);
C.newFont("楷体",Font.BOLD,18); √
D.newFont("楷体",18,Font.BOLD);
解析:
[解析]在Java语言中,用类Font对象设置字型。
Font类的构造方法有:
Font(StringfontName,intstyle,intsize),3个参数分别表示字体、风格和字号。
其中,常用的风格有三种:
正常、粗体和斜体,分别用三个常量表示:
Font.PLAIN(正常)、Font.BOLD(粗体)和Font.ITALIC(斜体)。
8.某线程正处于运行状态,则在以下选项中,不可能是它的后继状态的是______
(分数:
1.00)
A.就绪状态
B.新建状态 √
C.阻塞状态
D.死亡状态
解析:
9.某Java程序用类JFileChooser来实现打开和保存文件对话框。
当对话框的返回值是JFileChooser.APPROVE_OPTION时,程序进一步的工作是______
(分数:
1.00)
A.用方法getName()取得文件名称
B.用方法getPath()取得文件路径
C.用方法getFile()取得文件内容
D.用方法getSelectedFile()取得文件对象 √
解析:
[解析]当对话框的返回值是JFileChooser.APPROVE_OPTION时,程序就可以利用getSelectedFile()方法取得文件对象,并利用这个文件对象用方法getName()取得文件的名称,用方法getPath()取得文件的路径。
10.Java语言实现C/S模式时,需要使用网络套接字,套接字的内容包括______
(分数:
1.00)
A.IP地址+端口号 √
B.IP地址+监控线程名
C.监控线程名+端口号
D.IP地址+监控线程名+端口号
解析:
[解析]在客户机/月艮务器工作模式中,在Server端,要准备接受多个Client端计算机的通信。
为此,除用IP地址标识Internet上的计算机之外,另还引入端口号,用端口号标识正在Server端后台服务的线程。
端口号与IP地址的组合称为网络套接字(socket)。
二、第Ⅱ部分非选择题
填空题(总题数:
10,分数:
20.00)
11.一个Java小应用程序必须定义成一个子类,它的超类是1。
(分数:
2.00)
解析:
Applet
12.在Java语言中,左移运算符是1。
(分数:
2.00)
解析:
<<
13.类A的成员变量x的类型是类B的,则类A和类B之间的关系是1。
(分数:
2.00)
解析:
has-a
14.以下代码:
StringTokenizerpas=newStringTokenizer("publicstaticvoid,main",",");
System.out.println("有单词"+pas.countTokens()+"个");
的输出结果是1。
(分数:
2.00)
解析:
有单词4个
15.在JFrame子类的构造方法中,代码getContentPane()的作用是1。
(分数:
2.00)
解析:
获得JFrame子类对象的内容面板
16.用JScrollBar创建一个垂直滚动条对象时,需要指定的常量是1。
(分数:
2.00)
解析:
JScrollBar.VERTICAL
17.在异或模式下绘图时,实际绘制的颜色是由3种颜色作特定的运算确定的:
当前正要绘制的颜色、原先绘制的颜色以及1。
(分数:
2.00)
解析:
模式设定的颜色
18.处于运行状态的线程执行yield()方法,该线程将进入1状态。
(分数:
2.00)
解析:
就绪
19.在Java语言中,客户端使用的套接字类是1。
(分数:
2.00)
解析:
Socket
20.在Java语言中,DriverManager类的作用是加载驱动程序和1。
(分数:
2.00)
解析:
建立与新数据库的连接
三、简答题(总题数:
6,分数:
18.00)
21.已知整型变量n,当n的值为0时,输出“正常”,否则输出“异常”。
请写出使用switch语句实现此功能的代码。
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
switch(n){
case0:
System.out.println("正常");break;
default:
System.out.println("异常");
}
22.请写出在类、方法、变量之前加上修饰字final的作用。
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
用final修饰类,声明该类是不能被再继承的类。
用final修饰方法,声明该方法不能被子类的方法覆盖。
用final修饰变量,声明该变量的值不能被改变。
23.请列举出能产生ActionEvent事件类型的3种组件。
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
JButton、JCheckBox、JComboBox、JMenultem、JRadioButton
24.某程序用以下代码弹出一个对话框:
intanwser=JOptionPane.showConfirmDialog(null,"确实要退出吗?
","退出确认",
OptionPane.YES_NO_CANCEL_OPTION);
如果程序中anwser的值等于CLOSED_OPTION,请写出用户对该对话框的操作内容。
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
用户直接关闭对话窗口
25.请写出用矩形类Rectangle2D创建对象r的代码,对象r的左上角坐标是(20,30),宽是50,高是70。
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
Rectangle2Dr=newRectangle2D.Double(20,30,50,70);
26.URL对象的格式是:
<METHOD>:
//<HOSTNAME:
PORT>/<PATH>/<FILE>,请写出其中HOSTNAME的意义。
(分数:
3.00)
__________________________________________________________________________________________
正确答案:
()
解析:
HOSTNAME是文档和服务器所在的Internet主机名或IP地址。
四、程序填空题(总题数:
5,分数:
20.00)
27.方法voidmoveZeroFront(inta[])的功能是将数组中的所有值为0的元素都移到数组的前端,而把非0元素放于所有0的后面。
提示:
顺序考察数组元素,当发现是非0时,就让该数留在原来位置,当发现是0时,就与前面的第一个非0数交换。
变量zero表示移动过程中遇到的0的个数。
voidmoveZeroFront(inta[]){
for(inti=0,zero=0;1;i++)
if(a[i]==0){
a[i]=a[zero],a[zero]=0;2;
}
}
(分数:
4.00)
解析:
i<a.length
zero++
28.这里给出的是一个播放幻灯片小应用程序的部分代码。
设幻灯片已由小应用程序的init()方法装入内存,并存放于myImage数组中。
currentImage为要显示的幻灯片序号。
intcurrentImage;Image[]myImage;
publicvoidpaint(1g){
if((myImage[currentImage])!
=null)
g.2(myImage[currentImage],10,10,
myImage[currentImage].getWidth(this),
myImage[currentImage].getHeight(this),this);
}
(分数:
4.00)
解析:
Graphics
drawImage
29.类ShareData用于管理多个线程共享数据data。
一些线程要减少data,另一些线程要增加data。
由于data不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。
类提供一个方法modiData()供修改data的线程调用,该方法在data修改结束后,还应通知其他等待进入这个方法的线程。
classShareData{
intdata=0;
synchronizedvoidmodiData(intdelta){
if(delta+delta>=0){data+=delta;
}else{
while(data+delta<0){
try{1;
}catch(InterruptedExceptione){}
}
data+=delta;
}
2;
}
ShareData(intinitData){data=initData;}
}
(分数:
4.00)
解析:
wait()
notify()
30.方法voidsumByLine(Stringf)的功能是为已知文件f创建缓冲式输入流,然后从文件逐行输入整数,求各行整数的和,并输出。
publicvoidsumByLine(Stringf){
FileReaderfile=newFileReader(f);
BufferedReaderin=new1(file);
intn,sum,i;Strings;
try{
while((s=2)!
=null){
StringTokenizertokens=newStringTokenizer(s);
n=tokens.countTokens();sum=0;
for(i=0;i<n;i++){
sum+=Integer.parselnt(tokens.nextToken());
}
System.out.println("/t"+String.valueOf(sum)+"/n");
}
in.close();
}catch(IOExceptionie){System.out.println("/tI/O出错!
");}
}
(分数:
4.00)
解析:
BufferedReader
in.readLine()
31.方法readByURL(StringurlName,JTextAreashowArea)的功能是通过已知网址创建URL对象,获得URLConnection对象,设置网络连接,然后以数据流方式读取网页内容,并在文本区showArea中显示。
publicStringreadByURL(StringurlName,JTextAreashowArea){
try{
URLurl=newURL(urlName);
URLConnectiontc=url.1;
tc.2;
/*以下省略的代码完成的工作是:
用tc获得网络连接的InputStreamReader类对象,并将该对象转化成为缓冲式输入对象。
以后,就能按行读取网络文本数据。
*/
......
}catch(MalformedURLExceptione){e.printStackTrace();}
catch(IOExceptione){e.printStackTrace();}
}
(分数:
4.00)
解析:
openConnection()
connect()
五、程序分析题(总题数:
5,分数:
20.00)
32.阅读下列程序,请写出该程序的运行结果。
classSuperClass{
publicintgetData(){return4;}
}
classSubClassextendsSuperClass{
publicintgetData(){return5;}
}
publicclassTest32{
publicstaticintfac(SuperClasss){
intd=s.getData();returnd*(d+1)/2;
}
publicstaticvoidmain(String[]args){
System.out.println("超类对象调用方法fac():
"+fac(newSuperClass()));
System.out.println("子类对象调用方法fac():
"+fac(newSubClass()));
}
}
(分数:
4.00)
__________________________________________________________________________________________
正确答案:
()
解析:
超类对象调用方法fac():
10
子类对象调用方法fac():
15
33.阅读下列程序,请写出该程序的运行结果。
publicclassTest33{
publicstaticvoidmain(Stringargs[]){
System.out.println(makeNewString("bjZ;"));
}
publicstaticStringmakeNewString(StringoldStr){
Strings=newString(oldStr);
char[]repCh={"a","b","c","d","e","f","g","h","i","j","k","l","m",
"n","o","p","q","r","s","t","u","v","w","x","y","z"};
s=s.replace(repCh[repCh.length-1],"%");
for(inti=repCh.length-2;1>=0;i--){
s=s.replace(repCh[i],repCh[i+1]);
}
s=s.replace("%",repCh[0]);
returns;
}
}
(分数:
4.00)
__________________________________________________________________________________________
正确答案:
()
解析:
ckZ;
阅读下列程序,请回答以下问题:
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
classMyFrameextendsJFrameimplementsActionListener{
JTextFieldtextF;JTextAreatextA;
MyFrame(){
Containercon=getContentPane();
con.setLayout(newBorderLayout());
textF=newJTextField(10);
textF.addActionListener(this);
textA=newJTextArea(6,10);
setSize(240,200);
con.add(textF,"North");
con.add(textA,"Center");
setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
intn,d;
if(e.getSource()==textF){
n=Integer.parseInt(textF.getText());
if(n!
=0){
for(intk=1;k<=Math.abs(n);k++){
d=(int)(Math.random()*1000%1000);
textA.append(""+d);
if(k%5==0)textA.append("/n");
}
}else{textF.setText(null);textA.setText(null);
}
}
}
}
publicclassTest34{
publicstaticvoidmain(String[]args){
newMyFrame();
}
}(分数:
4.00)
(1).在文本框中输入-18,在文本区中会显示多少行整数,各行有几个数?
(分数:
2.00)
__________________________________________________________________________________________
正确答案:
()
解析:
在文本区中会显示3行整数,前2行各7个数,第3行4个数。
(2).在文本框中输入0,界面又会发生什么?
(分数:
2.00)
__________________________________________________________________________________________
正确答案:
()
解析:
文本框和文本区的内容被清除。
阅读下列程序,请回答以下问题:
importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;
classMyFrameextendsJFrameimplementsAdjustmentListener{
JScrollBarjs;JLabellabel;intsize=20;Stringmsg;
MyFrame(Strings,intx,inty,intw,inth){
super(s);
msg=s;
Containercon=getContentPane();
con.setLayout(newBorderLayout());
js=newJScrolIBar(JScrollBar.HORIZONTAL,20,10,1,210);
js.addAdjustmentListener(this);
con.add(js,BorderLayout.NORTH);
label=newJLabel(msg);
con.add(label,BorderLayout.CENTER);
setBounds(x,y,w,h);
setVisible(true);
}
publicvoidadjustmentValueChanged(AdjustmentEvente){
size=e.getValue();
Fontf=newFont("Courier",Font.BOLD,size);
label.setFont(f);
}
}
publicclassTest35{
publicstaticvoidmain(String[]args){
newMyFrame("可调组件测试程序",200,200,500,200);
}
}(分数:
4.00)
(1).应用程序窗口中,有哪几个组件?
(分数:
2.00)
__________________________________________________________________________________________
正确答案:
()
解析:
应用程序窗口中产生一个水平滚动条,下面是一个标签。
(2).当拖动滚动条滑块时,界面会有什么变化?
(分数:
2.00)
____