全国自考Java语言程序设计方案一真题及答案.docx
- 文档编号:10817267
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:19
- 大小:46.96KB
全国自考Java语言程序设计方案一真题及答案.docx
《全国自考Java语言程序设计方案一真题及答案.docx》由会员分享,可在线阅读,更多相关《全国自考Java语言程序设计方案一真题及答案.docx(19页珍藏版)》请在冰豆网上搜索。
全国自考Java语言程序设计方案一真题及答案
全国2009年1月Java语言程序设计
(一)试卷
课程代码:
04747
一、单项选择题(本大题共10小题,每小题1分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列字符组合不能作为Java整型常量的是()
A.078B.0x3ACB
C.5000D.0x3ABC
2.以下程序代码的输出结果是()
intx=10。
while(x>7)
{System.out.print("*")。
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(1,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="123";
Strings2="123";
Strings3=newString("123");
则表达式s1==s2和s1==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的代码是_________。
FontfnA=newFont(“细明体”,Font.PLAIN.12)
18.线程从阻塞状态恢复到就绪状态,有三种途径:
自动恢复、用resume()方法恢复和用_________方法恢复。
notify()或notifyAll()
19.为普通的8位字节流文件读和写操作提供支持的类是_________。
InputStreamOutputStream
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,该方法的返回值是10。
staticintsigmaDigit(intn)
{intsum=0,d。
while(n>0){
d=n%10。
_________;sum+=d
n/=10。
}
_________;returnsum
}
28.以下小应用程序能响应鼠标按动的事件,当鼠标在正文区的某个位置被点击时,就在该位置显示一个记号“×”,程序限制最多保留最新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 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 currentMarks=(currentMarks+1)%MaxMarks。 repaint()。 } } publicclassClass1extendsApplet{ 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(10)。 box1=newJCheckBox("A计算机",false)。 box2=newJCheckBox("B计算机",false)。 con.setLayout(newGridLayout(3,2))。 con.add(newJLabel("计算机产品介绍",JLabel.CENTER))。 add(newJLabel("计算机2选1",JLabel.CENTER))。 con.add(box1)。 con.add(box2)。 con.add(text)。 box1.addItemListener(this)。 box2.addItemListener(this)。 this.setVisible(true)。 this.pack()。 } publicvoiditemStateChanged(_________e){ItemEvent if(e.getItemSelectable()==box1){ text.setText("A公司生产")。 }elseif(e.getItemSelectable()==box2){ text.setText("B公司生产")。 } } } 30.这是一个播放幻灯片的小应用程序中的paint()方法。 设幻灯片已由小应用程序的init()方法装入内存,并存放于myImage数组中,幻灯片的张数放于变量num中,paint()方法要播放的幻灯片号是intcurrentImage=0。 finalintnum=30。 Image[]myImage=new_________[num]。 Image …… publicvoidpaint(Graphicsg){ if((mylmage[currentImage])! =null) g._________(myImage[currentImage],10,10,drawImage myImage[currentImage].getWidth(this), myImage[currentImage].getHeight(this),this)。 } 31.以下定义的类ShareData用于管理多个线程共享数据val。 为了保证对共享数据val修改的完整性,线程对val的操作需要互斥,类ShareData中定义的方法modiData()就是供共享val的线程修改val的方法。 程序共有20个线程共享val,有些减少val,有些增加val。 publicclassClass1{ publicstaticvoidmain(Stringargs[]){ ShareDatamrc=newShareData(50)。 Thread[]aThreadArray=newThread[20]。 System.out.println("\t刚开始的值是: "+mrc.getVal())。 System.out.println("\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("\t最后的结果是: "+mrc.getVal())。 } } classMyMultiThreadClassimplementsRunnable{ ShareDataUseInteger。 intdelta。 MyMultiThreadClass(ShareDatamrc,intd){ UseInteger=mrc。 delta=d。 } publicvoidrun(){ for(inti=0。 i<1000。 i++){ UseInteger.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)。 p1=p2。 p2.x++。 System.out.println("p1.x="+p1.x)。 } } p1.x=13 33.阅读下列程序,请写出调用pascal(4)的输出结果。 staticvoidpascal(intn){ intpas[]。 pas=newint[n]。 pas[0]=1。 System.out.println(pas[0])。 for(inti=2。 i<=n。 i++){ /*由存储在pas中的原来内容生成新内容*/ pas[i-l]=1。 for(intj=i-2。 j>0。 j--) pas[j]=pas[j]+pas[j-1]。 for(intj=0。 j j++) System.out.print(pas[j]+"")。 System.out.println()。 } } 1 11 121 1331 34.阅读下列程序,请用示意图画出程序运行时呈现的界面。 importjava.applet.*。 importjava.awt*。 importjavax.swing.*。 classMyPanelextendsJPanel{ JButtonbutton。 JLabellabel。 MyPanel(Strings1,Strings2){ this.setLayout(newGridLayout(2,2))。 button=newJButton(s1)。 label=newJLabel(s2,JLabel.CENTER)。 add(button)。 add(label)。 add(newJLabel())。 } } publicclassClass1{ publicstaticvoidmain(Stringargs[]){ JFramemw=newJFrame("一个示意窗口")。 mw.setSize(400,250)。 Containercon=mw.getContentPane()。 con.setLayout(newBorderLayout())。 MyPanelpanel1,panel2。 panel1=newMyPanel("按钮1","标签1")。 panel2=newMyPanel("按钮2","标签2")。 JButtonbutton=newJButton("开始按钮")。 con.add(panel1,"North")。 con.add(panel2,"South")。 con.add(button,"Center")。 mw.setVisible(true)。 } } 35.阅读下列程序,请回答以下问题: (1)程序要求在文本框text中输入的内容是什么? 需要读取的文件URL地址 (2)辅助文本区showArea组件的作用是什么? 显示读取的文件内容 (3)如何使程序开始下载网络文本文件? 点击下载按钮 (4)程序采用什么输入方式下载网络文件? 使用字节流完成下载 import.*;importjava.awt.*; importjava.awt.event.*;import,java.io.*;importjavax.swing.*; publicclassClass1{ publicstaticvoidmain(Stringargs[]). {newConnectNet("读取网络文本文件示意程序");} } classConnectNetextendsJFrameimplementsActionListener{ JTextFieldtext=newJTextField(30); JTextAreashowArea=newJTextArea(); JButtonb=newJButton("下载");JPanelp=newJPanel(); ConnectNet(Strings){ super(s);Containercon=this.getContentPane(); p.add(text);p.add(b); JScrollPanejsp=newJScrollPane(showArea); b.addActionListener(this); con.add(p,"North");con.add(jsp,"Center"); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500,400);setVisible(true); } publicvoidactionPerformed(ActionEvente){ StringurlName=text.getText(); try{URLurl=newURL(urlName);//由网址创建URL对象 URLConnectiontc=url.openConnection();//获得URLConnection对象 tc.connect();//设置网络连接
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国 自考 Java 语言程序设计 方案 一真题 答案