1、全国自考Java语言程序设计方案一真题及答案全国2009年1月Java语言程序设计(一)试卷课程代码:04747一、单项选择题(本大题共10小题,每小题1分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.下列字符组合不能作为Java整型常量的是( )A.078B.0x3ACBC.5000D.0x3ABC2.以下程序代码的输出结果是( ) int x = 10。 while (x 7) System.out.print(*)。 x-;A.*B.*C.*D.*3.设类U声明,及对象u和v的定义如下:class U int x
2、, int y。 U(int a, int b)x= a。 y = b。 void copy(U a) x = a.x。 y = a.y。U u = new U(1, 2), v = new U(2, 3)。在以下供选择的代码中,可能引起系统回收内存的是( )A.u.x=v.y。u.y=v.x。B.u=v。C.u.copy(v)。D.v.copy(u)。4.设有以下代码: String s l=123; String s2=123; String s3=new String(123);则表达式s1=s2和s1=s3的值分别是( )A.true,trueB.false,falseC.true,f
3、alseD.false,true5.以下关于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.pain
4、tComponent()C.repaint()D.update()8.用Runnable接口实现多线程的主要工作是( )A.声明实现Runnable接口的类,在类内实现run()方法,让线程调用start()方法。B.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在init()方法中创建新线程,启动新线程。C.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在Init()方法或start()方法中创建新线程,在start()方法中启动新线程。D.声明实现Runnable接口的类,在类内实现run()方法,在init()方法中创建
5、新线程,在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分)请在每小题的空
6、格中填上正确答案。错填、不填均无分。11.Java程序的字节码文件的扩展名是_。class12.构造一个Java表达式:yx5,并且x!=0。这个表达式是_。y/x5 & x!=013.在类声明之前用_修饰,声明类是不能被再继承的类,即它不能再有子类。final14.设有字符串定义:String s=ABCDABCD;则表达式s.indexOf(B)的值是_。115.在实现接口ActionListener的方法actionPerformed()中,常用的有两个获得事件源的方法,它们是getActionCommand()和_。getSource()16.使用单选按钮的方法是将一些单选按钮用_对象
7、分组,使同一组内的单选按钮只允许一个被选中。ButtonGroup17.在Java语言中,用类Font对象设置字型。如果要设置的字型是:细明体、正常风格(Font.PLAIN),12磅字号,构造这样要求的Font对象fnA的代码是_。Font fnA=new Font(“细明体”,Font.PLAIN.12)18.线程从阻塞状态恢复到就绪状态,有三种途径:自动恢复、用resume()方法恢复和用_方法恢复。notify()或notifyAll()19.为普通的8位字节流文件读和写操作提供支持的类是_。InputStream OutputStream20.Connection类是java.sql
8、包中用于处理与数据库连接的类。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
9、放置于滚动面板jsp,并将滚动面板jsp添加到JFrame窗口myFrame的Java语句。TextArea text=new TextArea()。JScrollPane jsp=new JScrollPane(text)。myFrame.getContentPane().add(jsp)。24.要用Graphics2D类的方法画一个图形,首先要把参数对象g强制转换成Graphics2D对象;然后,用图形类提供的静态方法Double()创建一个图形对象;最后,以图形对象为参数调用Graphics2D对象的draw()方法绘制这个图形。请写出用这样的方法绘制一条线段的程序段,线段的两个端点分别
10、是(10.0,10.0)和(30.0,30.0)。 Graphics2D g2d=( Graphics2D) g。 Line2D line=new Line2D.Double(10,20,30,40)。G2d.draw(line)25.请写出字符流数据与字节流数据的区别。(P.175)26.请写出URLConnection类在编写Java网络应用程序中的作用。URLConnection类完成流对象和实现网络连接四、程序填空题(本大题共5小题,每小题4分,共20分)27.方法int sigmaDigit(int n)的功能是求出十进制整数n的各位数字之和。例如,n=1234,该方法的返回值是10
11、。 static int sigmaDigit( int n ) int sum = 0, d。 while( n 0 ) d=n% 10。 _; sum+=d n/= 10。_; return sum28.以下小应用程序能响应鼠标按动的事件,当鼠标在正文区的某个位置被点击时,就在该位置显示一个记号“”,程序限制最多保留最新20个位置。import java.applet.*。 import java.awt.*。import javax.swing.*。 import java.awt.event.*。class MyPanel extends JPanel public void prin
12、t(Graphics g, int x, int y)( g.setColor(Color.red)。 g.drawLine(x-5, y-5, x+5, y+5)。 g.drawLine(x+5, y-5, x-5, y+5)。class MyWindow extends JFrame implements MouseListener final int MaxMarks = 20。 int currentMarks = 0, markCount = 0。 Point marks = new PointMaxMarks。 MyPanel panel。 MyWindow() this.setL
13、ocation(100, 100)。 this.setSize(300, 300)。 Container con = this.getContentPane()。 panel = new MyPanel()。 con.add(panel)。 _(this)。addMouseListener this.setVisible(true)。 public void paint(Graphics g) int i。 g.clearRect(0,0, this.getWidth(), this.getHeight()。 for(i =0。i markCount。 i+) _(g, marksi.x, m
14、arksi.y)。print public void mousePressed(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExited(MouseEvent e) public void mouseClicked(MouseEvent e) markscurrentMarks = new Point(e.getX(), e.getY()。 if(markCount MaxMarks)markCount+。 curren
15、tMarks = (currentMarks+ 1)%MaxMarks。 repaint()。public class Class1 extends Applet public void init() MyWindow myWndow = new MyWindow()。 29.这是一个处理选择工程事件的子窗口类。窗口中有2个选择框,当选中某个选择框时,文本框将显示选择框对应的信息。class MyWindow extends JFrame implements ItemListener JTextField text。 JCheckBox boxl, box2。 MyWindow(String
16、 s) _; super(s) Container con = this.getContentPane()。 this.setLocation(100, 100)。 this.setSize(400, 200)。 text = new JTextField(10)。 box1 = new JCheckBox(A计算机, false)。 box2 = new JCheckBox(B计算机, false)。 con.setLayout(new GridLayout(3, 2)。 con.add( new JLabel(计算机产品介绍, JLabel.CENTER)。 add(new JLabel(
17、计算机2选1, JLabel.CENTER)。 con.add(box1)。 con.add(box2)。 con.add(text)。 box1 .addItemListener(this)。 box2.addItemListener(this)。 this.setVisible(true)。 this.pack()。 public void itemStateChanged(_e)ItemEvent if(e.getItemSelectable() = box1) text. setText(A公司生产)。 else if(e.getItemSelectable() = box2) tex
18、t. setText(B公司生产)。 30.这是一个播放幻灯片的小应用程序中的paint()方法。设幻灯片已由小应用程序的init()方法装入内存,并存放于myImage数组中,幻灯片的张数放于变量num中,paint()方法要播放的幻灯片号是int currentImage = 0。final int num = 30。Image myImage = new _ num。Imagepublic void paint(Graphics g) if (mylmagecurrentImage) != null) g. _(myImagecurrentImage, 10, 10,drawImage
19、myImage currentImage.getWidth(this), myImage currentImage.getHeight(this), this)。31.以下定义的类ShareData用于管理多个线程共享数据val。为了保证对共享数据val修改的完整性,线程对val的操作需要互斥,类ShareData中定义的方法modiData()就是供共享val的线程修改val的方法。程序共有20个线程共享val,有些减少val,有些增加val。public class Class1 public static void main(String args) ShareData mrc = ne
20、w ShareData(50)。 Thread aThreadArray = new Thread20。 System.out.println(t刚开始的值是:+mrc.getVal()。 System.out.println(t多个线程正在工作,请稍等!)。 for(int i = 0。 i 20。 i+) int d = i % 2 = 0 ? 50 : -30。 aThreadArrayi = new Thread(new MyMultiThreadClass(mrc, d)。 aThreadArrayi.start()。 WhileLoop :/等待所有线程结束 while(true)
21、 for(int i = 0。 i 20。 i+) if(aThreadArrayi. _ ()continue WhileLoop。isAlive() break。 System.out.println(t最后的结果是: +mrc.getVal()。class MyMultiThreadClass implements Runnable ShareData UseInteger。 int delta。 MyMultiThreadClass(ShareData mrc, int d) UseInteger = mrc。 delta = d。 public void run() for(int
22、i = 0。 i 1000。 i+) UseInteger.modiData(delta)。 try Thread.sleep(10) 。/做一些其他的处理 catch(InterruptedException e) class ShareData int val。 ShareData(int initValue)val = initValue。 int getVal()return val。 private void putVal(int v)val = v。 _ void modiData(int d)synchronized putVal(getVal() + d)。五、程序分析题(本大
23、题共5小题,每小题4分,共20分)32.阅读下列程序,请写出该程序的输出结果。class A int x, y。 A(int a, int b) x= a。 y= b。 public class sample public static void main(String args) A pl, p2。 p2 = new A(12, 15)。 p1 = p2。 p2.x+。 System.out.println(p1.x= + p1 .x)。 p1.x=1333.阅读下列程序,请写出调用pascal(4)的输出结果。static void pascal(int n) int pas。 pas =
24、 new intn。 pas0 = 1。 System.out.println(pas0)。 for (int i = 2。 i 0。 j-) pasj = pasj + pasj - 1 。 for (int j = 0。 j i。 j+) System.out.print(pasj + )。 System.out.println()。 11 1 1 2 1 1 3 3 134.阅读下列程序,请用示意图画出程序运行时呈现的界面。import java.applet.*。import java.awt *。import javax.swing.*。class MyPanel extends J
25、Panel JButton button。 JLabel label。 MyPanel(String s1, String s2) this.setLayout(new GridLayout(2, 2)。 button = new JButton(s1)。 label = new JLabel(s2, JLabel.CENTER)。 add(button)。 add(label)。 add(new JLabel()。public class Class1 public static void main(String args) JFrame mw = new JFrame(一个示意窗口)。 m
26、w.setSize(400, 250)。 Container con = mw.getContentPane()。 con.setLayout(new BorderLayout()。 MyPanel panel1, panel2。 panel1 = new MyPanel(按钮1 ,标签1)。 panel2 = new MyPanel(按钮2, 标签2)。 JButton button = new JButton(开始按钮)。 con.add(panel1, North)。con.add(panel2, South)。 con.add(button, Center)。 mw.setVisibl
27、e(true)。 35.阅读下列程序,请回答以下问题:(1)程序要求在文本框text中输入的内容是什么?需要读取的文件URL地址 (2)辅助文本区showArea组件的作用是什么?显示读取的文件内容(3)如何使程序开始下载网络文本文件? 点击下载按钮(4)程序采用什么输入方式下载网络文件?使用字节流完成下载 import .*; import java.awt.*; import java.awt.event.*; import,java.io.*; import javax.swing.*; public class Class1 public static void main(String
28、 args) . new ConnectNet(读取网络文本文件示意程序); class ConnectNet extends JFrame implements ActionListener JTextField text=new JTextField(30); JTextArea showArea=new JTextArea(); JButton b=new JButton(下载);JPanel p=new JPanel(); ConnectNet(String s) super(s);Container con=this.getContentPane(); p.add(text);p.a
29、dd(b); JScrollPane jsp=new JScrollPane(showArea); b.addActionListener(this); con.add(p,North); con.add(jsp,Center); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(500,400);setVisible(true); public void actionPerformed(ActionEvent e) String urlName=text.getText(); try URL url=new URL(urlName);/由网址创建URL对象 URLConnection tc=url.openConnection();/获得URLConnection对象 tc.connect();/设置网络连接
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1