全国自考Java语言程序设计一试题及答案Word格式.docx
《全国自考Java语言程序设计一试题及答案Word格式.docx》由会员分享,可在线阅读,更多相关《全国自考Java语言程序设计一试题及答案Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
D.setDescription()和getDescription()
7.设已经有Graphics2D对象g2d,RoundRectangle2D对象rRect,绘制对象rRect的代码是(
A.g2d.draw(rRect)B.g2d.drawRoundRect(rRect)
C.rRect.draw()D.rRect.drawRoundRect()
8.以下关于线程互斥和同步的叙述中,正确的是(A)
A.临界段是线程互斥使用资源的程序段B.临界段能使线程使用其它线程的资源
C.互斥和同步能很好地解决死锁问题D.可用notify()方法让等待线程结束等待
9.在编写访问数据库的Java程序时,Connection对象的作用是(C)
A.存储查询结果B.在指定的连接中处理SQL语句
C.用来表示与数据库的连接D.用来创建数据库的连接
10.获取InetAddress对象的域名所用到的方法是(A)
A)
A.getHostName()B.getLocalName()C.getHostAddress()D.getLocalHost()
二、填空题(本大题共10小题,每空2分,共20分)
11.能在浏览器上执行的Java程序被称为_____小应用程序Applet____。
12.如果子类A隐藏了超类B的成员变量x,而类A的某个方法f()要引用类B的x,则引用类B的x的
引用代码可以写成_____super:
x_____。
13.接口有与类相似的基本形式,它有常量定义和方法定义,但没有____方法的实现代码________。
14.设u和v是类A的两个对象,
15.要获得对象的字符串表示,调用的方法是___toString()______。
16.注册鼠标点击事件监视器的方法是_____addMouseListener()______。
17.在异或模式下绘图时,实际绘制的颜色是由当前正要绘制的颜色、原先绘制的颜色,以及_____异或
模式设定的颜色______作特定的运算确定的。
18.多线程程序设计中,让执行临界段程序时等待的线程结束等待,通常使用的方法有resume()、notify()
或者_____notifyAll()____。
19.创建的流既可以随机输出,也可以随机输入的类是____RandomAccessFile_____。
20.Java程序中使用套接字方法实现C/S模式时,Client端支持网络底层通讯的类是_____Socket_____。
2012年1月自学考试Java语言程序设计
(一)试卷及答案
1
三、简答题(本大题共6小题,每小题3分,共18分)
21.请写出以下程序段的执行结果。
intc=0,d,n=3758;
if((d=n%l0)>
c)while(n>
0){
System.out.println("
结果="
+c);
c=d;
n/10;
}
这题的循环变量n无改变循环无法终止,可能有误,找不到试卷的扫描文件,没做。
22.什么是方法重载,如何正确区分重载?
方法重载是指,一个类中可以有多个方法具有相同的名字和类型,但这些方法的参数必须不同,或者是
参数个数不同,或者是参数类型不同。
23.请写出定义一个包含2个子数组的二维整型数组对象aArr的代码,
二个子数组有3个元素。
intaArr[][]=newint[2][]。
aArr[0]=newint[5]。
aArr[1]=newint[3]。
24.请写出创建一个JPanel对象p,并为对象p设定GridLayout布局的代码。
JPanelp=newJPanel()。
p.setLayout(newGridLayout)。
25.由于创建输出流对象时,可能会出现IOException异常,所以创建输出流对象的代码必须出现在
try-catch语句结构中。
请写出为当前目录下的myFile.dat文件创建缓冲输出流对象outs的代码。
try
{
FileWriterwritefile=newFileWriter(“myFile.dat”)。
BufferedWriter
outs=newBufferedWriter(writefile)。
catch(IOExceptioe){}
26.请写出已知数据库url、用户名uName和密码pWord,通过驱动程序管理器(DriverManager)的方法
getConnection()建立连接con的代码,可能产生的异常是SQLException。
con=DriverManager.getConnection(url,uName,pWord)。
catch(SQLException
e)
e.printStackTrace()。
return
returncon。
null。
四、程序填空题(本大题共5小题,每空2分,共20分)
27.方法inttenDigNumlnArray(int[]a,intd)的功能是统计数组中十位数是d的整数的个数。
提示:
对于一个整数n,运算n/10的作用是求得去掉n的个位数后的整数,运算n%10的作用是求得n
的个位数。
staticinttenDigNumlnArray(int[]a,intd){
intc=0;
for(inti=0;
___i<
a.length___;
i++){
if(___a[i]/10==d___)c++;
returnc;
2
28.某小应用程序的类实现了接口ActionListener,在其窗口有一个文本区对象text和一个标上文字“输入
一个整数”的按钮对象,并正确为该按钮对象注册了监视器。
按钮处理程序要实现的功能是当点击这个按
钮时,程序弹出一个输入信息的对话框,输入一个整数n,程序接受n后,将2至n的所有偶数输出在
文本区text中。
以下是其中处理按钮事件的方法。
publicvoidactionPerformed(ActionEvente){
if(e.___getActionCommand____.equals("
输入一个整数"
)){
Stringres=(String)JOptionPane.showInputDialog(null,"
输入一个正整数"
,
"
输入对话框"
,JOptionPane.PLAIN_MESSAGE,null,null,null);
n=Integer.parseInt(res);
text.setText("
);
.
for(intk=2;
k<
=n;
k+=2)
text.___setText(k+"
"
)______;
29.一个示意选择框选择的类CheckBoxWin,类的构造方法根据给定的选择工程表构造一组选择框,这组
选择框允许多选,当这组选择框中的某个选择项的选择状态有改变(从选中变成未选中,或从未选中变成
选中)时,选择框的监视程序在一个文本区中输出那个状态有改变的选择工程。
以下是类CheckBoxWin
的定义。
classCheckBoxWinextendsJFrameimplementsItemListener{
JPanelp=newJPanel();
JTextAreatext;
String[]nameList;
JCheckBoxboxArray[];
CheckBoxWin(String[]sp){
Containercon=getContentPane();
con.setBackground(Color.BLUE);
con.setLayout(newFlowLayout());
p.setSize(90,(sp.1ength)*20);
p.setLayout(newGridLayout(sp.1ength,1));
nameList=sp;
boxArray=newJCheckBox[sp.1ength];
i<
nameList.1ength;
JCheckBoxbox=newJCheckBox(sp[i]);
box.___addItemListener(this)________。
p.add(box);
boxArray[i]=box;
con.add(p);
text=newJTextArea(3,13);
JScrollPanejsp=newJScrollPane(text);
jsp.setSize(100,60);
con.add(jsp);
setSize(100,(sp.1ength)*20+120);
setLocation(100,100);
3
setVisible(true);
publicvoiditemStateChanged(ItemEvente){
if(e.getItemSelectable()==_________boxArray[i]__________
if(boxArray[i].isSelected())
){
text.append(nameList[i]+"
.从未选中变成被选中\n"
else
:
从选中变成未被选中\n"
return;
30.以下是一个JPanel的子类的paintComponent方法,该方法利用Graphics2D绘制一个正方形,正方形
的位置、边长和颜色分别存于该类的成员变量lTop、edge和c中。
intedge;
Point1Top;
Colorc;
publicvoidpaintComponent(Graphicsg){
Graphics2Dg2=(Graphics2D)g;
g2.setColor(c);
Rectangle2Drec=newRectangle2D.______Double______(1Top.x,lTop.y,edge,edge);
____g2.draw(rec)_____。
31.以下小应用程序的界面有一个文本区,文本区同时作为发生键盘事件的事件源,并对键盘事件实施监
视。
程序运行时,先点击文本区,让它激活,以便能响应键盘事件。
以后输入英文字母时,在文本区中
顺序显示输入的字母。
importjava.applet.*;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
publicclassTest31extendsAppletimplements____KeyListener_____{
JTextAreatext=newJTextArea(5,10);
publicvoidinit(){setSize(200,200);
_______text.addKeyListener(this)________。
text.setBackground(Color.gray);
publicvoidkeyPressed(KeyEvente){}
publicvoidkeyReleased(KeyEvente){}
publicvoidkeyTyped(KeyEvente){
intt=e.getKeyCode();
add(text);
if(t>
=KeyEvent.VK_A&
&
t<
=KeyEvent.VK_Z){
text.append("
+(char)t);
五、程序分析题(本大题共5小题,每小题4分,共20分)
32.阅读下列程序,请写出该程序的功能。
publicclassTest32
4
args[])
sum=0.0;
(inti=1;
fori<
=500;
i++)
sum+=1.0/(double)i;
System.out.println("
sum="
+sum);
1111
程序功能:
计算并显示sum=
123500
33.阅读下列程序,请回答以下问题:
(1)界面中有哪些组件?
(2)点击每一个按钮分别会显示什么内容?
importjava.awt,event.*;
importjavax.swing.*。
publicclassTest33extendsAppletimplementsActionListener{
Stringmsg="
;
StringbuttonCom[]={"
Yes"
,"
No"
Undecided"
};
JButtonbList[]=newJButton[buttonCom.length];
JTeXtFieldt;
publicvoidinit(){
setLayout(newGridLayout(4,1));
buttonCom.1ength;
bList[i]=newJButton("
按钮"
+(i+1));
add(bList[i]);
bList[i].addActionListener(this);
t=newJTextField();
add(t);
3;
if(e.getSource()==bList[i]){
t.setTeXt("
Youpressed"
+buttonCom[i]);
break;
答:
(1)界面中组件有;
三个按钮,一个文本框。
(2)分别显示:
YoupressedYes;
YoupressedNo;
YoupressedUndecided。
34.阅读下列程序,请写出该程序的功能。
importjava.io.*;
classMyWindowextendsJFrameimplementsActionListener{
BufferedReaderin;
JTextFieldfileName;
FileReaderfile;
5
MyWindow(){
Containercon=this.getContentPane();
//获得内容面板
con.setLayout(newBorderLayout());
fileName=newJTextField("
输入文件名"
fileName.addActionListener(this);
text=newJTextArea(20,30);
JScrollPanejsp:
newJScrollPane(text);
con.add(jsp,BorderLayout.CENTER);
con.add(fileName,"
South"
publicvoidactionPerformed(ActionEvente)
Strings;
try{Filef=newFile(fileName.getText());
file=newFileReader(f);
in=newBufferedReader(file);
}catch(FileNotFoundExceptionel){}
try{while((s=in.readLine())!
=null)
text.append(s+'
\n'
}catch(IOExceptionexp){}
publicclassTest34{
{newMyWindow();
程序运行时显示一个对话框,用户在下面的文本框中输入文件名,中间的文本区显示文件内容。
35.阅读下列程序,请回答以下问题:
(1)该程序中的类MyPanel的成员变量twoClick的作用是什么,该成员变量的值是如何改变的?
(2)程序运行时,用户在界面的不同位置,用鼠标点击两次,界面中会出现什么?
classMyPanelextendsJPanelimplementsMouseListener{
intleftx,lefty,rightx,righty;
booleantwoClick;
MyPanel(){
twoClick=false;
addMouseListener(this);
publicvoidmousePressed(MouseEvente){
if(!
twoClick){
leftx=e.getX();
lefty=e.getY();
}else{
rightx=e.getX();
righty=e.getY();
repaint();
twoClick=!
twoClick:
publicvoidmouseClicked(MouseEvente){}
publicvoidmouseEntered(MouseEvente){}
publicvoidmouseExited(MouseEvente){}
6
publicvoidmouseReleased(MouseEvente){}
g.clearRect(0,0,this.getWidth(),this.getHeight());
g.fillRect(1efix,lefty,Math.abs(rightx-leftx),
Math.abs(righty-lefty));
classMyWinextendsJFrame{
MyPanelp=newMyPanel();
MyWin(){
getContentPane().add(p);
setSize(400,400);
publicclassTest35extendsJFrame{
publicstaticvoidmain(String[]args){newMyWin();
(1)成员变量twoClick是布尔类型,false标识第一次按下鼠标,true标识第二次按下鼠标。
它的
值随鼠标的按动在false与true间循环改变。
(2)界面中画出一个矩形块。
36.阅读下)列程序,请回答以下问题:
(1)程序执行时创建的线程个数。
(2)各线程的名称。
(3)举例给出程序可能的输出结果。
classSelfManagedextendsThread{
intcountDown;
publicSelfManaged(Stringname,intc){
countDown=c;
setName(name);
start();
publicvoidrun(){
while(true){
System.out.println(getName()+"
("
+countDown+"
)"
try{
sleep(50);
}catch(InterruptedExceptione){};
if(--countDown==0)
publicclassTest36{
publicstaticvoidmain(String[]args){
2;
newSelfManaged("
线程"
+String.valueOf(i),2);
7
(1)创建的线程个数:
2
(2)各线程的名称:
线程0,线程1
(3)输出结果:
线程0
(2)
线程1
(2)
线程0
(1)
线程1
(1)
六、程序设计题(本大题共2小题,每小题6分,共12分)
37.编写方法int[]delete(int[]a,intd),方法将创建一个新数组b,新数组b中只包含原数组中所有值不等
于d的元素,并返回该新数组b。
in