《全国自考Java语言程序设计(一)真题及答案.doc》由会员分享,可在线阅读,更多相关《全国自考Java语言程序设计(一)真题及答案.doc(71页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date全国自考Java语言程序设计(一)真题及答案全国自考Java语言程序设计(一)真题及答案全国2009年1月Java语言程序设计(一)试题课程代码:04747一、单项选择题(本大题共10小题,每小题1分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分 。1.下列字符组合不能作为Java整型常量的是( )
2、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, 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.cop
3、y(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,falseD.false,true5.以下关于AWT与Swing之间关系的叙述,正确的是( )A.Swing是AWT的提高和扩展B.在写GUI程序时,AWT和Swing不能同时使用C.AWT和Swing在不同的平台上都有相同的表示D.AWT中的类是从Swing继承的6.在以下Swing组件中,能为它指定布局管理器的是( )
4、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()方法中创建
5、新线程,启动新线程。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_Wr
6、iter类10.在编写访问数据库的Java程序中,要用到DriverManager类。该类的作用是( )A.存储查询结果B.处理与数据库的连接C.在指定的连接中处理SQL语句D.处理驱动程序的加载和建立数据库连接二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。11.Java程序的字节码文件的扩展名是_。 class12.构造一个Java表达式:yx5,并且x!=0。这个表达式是_。y/x5 & x!=013.在类声明之前用_修饰,声明类是不能被再继承的类,即它不能再有子类。final14.设有字符串定义:String s=ABCDABCD;
7、则表达式s.indexOf(B)的值是_。 115.在实现接口ActionListener的方法actionPerformed()中,常用的有两个获得事件源的方法,它们是getActionCommand()和_。getSource()16.使用单选按钮的方法是将一些单选按钮用_对象分组,使同一组内的单选按钮只允许一个被选中。 ButtonGroup17.在Java语言中,用类Font对象设置字型。如果要设置的字型是:细明体、正常风格(Font.PLAIN),12磅字号,构造这样要求的Font对象fnA的代码是_。Font fnA=new Font(“细明体”,Font.PLAIN.12)18.
8、线程从阻塞状态恢复到就绪状态,有三种途径:自动恢复、用resume()方法恢复和用_方法恢复。notify()或notifyAll()19.为普通的8位字节流文件读和写操作提供支持的类是_。InputStream OutputStream20.Connection类是java.sql包中用于处理与数据库连接的类。Connection对象是用来表示_的对象,Java程序对数据库的操作都在这种对象上进行。数据库连接三、简答题(本大题共6小题,每小题3分,共18分)21.请写出表示year年是闰年的Java表达式。闰年的条件是:每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。(ye
9、ar%4= =0) & (year%4!=0)|(year%400= =0)22.请写出在类的方法的定义之前,加上修饰字public、private的区别。Public修饰的方法为公用方法,任何类的方法都可以访问他Private修饰的方法,本类内部可以访问23.请写出将文本区text放置于滚动面板jsp,并将滚动面板jsp添加到JFrame窗口myFrame的Java语句。TextArea text=new TextArea();JScrollPane jsp=new JScrollPane(text);myFrame.getContentPane().add(jsp);24.要用Graphi
10、cs2D类的方法画一个图形,首先要把参数对象g强制转换成Graphics2D对象;然后,用图形类提供的静态方法Double()创建一个图形对象;最后,以图形对象为参数调用Graphics2D对象的draw()方法绘制这个图形。请写出用这样的方法绘制一条线段的程序段,线段的两个端点分别是(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.请写出URLConne
11、ction类在编写Java网络应用程序中的作用。URLConnection类完成流对象和实现网络连接四、程序填空题(本大题共5小题,每小题4分,共20分)27.方法int sigmaDigit(int n)的功能是求出十进制整数n的各位数字之和。例如,n=1234,该方法的返回值是10。 static int sigmaDigit( int n ) int sum = 0, d; while( n 0 ) d=n% 10; _; sum+=d n/= 10;_; return sum28.以下小应用程序能响应鼠标按动的事件,当鼠标在正文区的某个位置被点击时,就在该位置显示一个记号“”,程序限制
12、最多保留最新20个位置。import java.applet.*; import java.awt.*;import javax.swing.*; import java.awt.event.*;class MyPanel extends JPanel public void print(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 M
13、ouseListener final int MaxMarks = 20; int currentMarks = 0, markCount = 0; Point marks = new PointMaxMarks; MyPanel panel; MyWindow() this.setLocation(100, 100); this.setSize(300, 300); Container con = this.getContentPane(); panel = new MyPanel(); con.add(panel); _(this); addMouseListener this.setVi
14、sible(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, marksi.y); print public void mousePressed(MouseEvent e) public void mouseReleased(MouseEvent e) public void mouseEntered(MouseEvent e) public void mouseExite
15、d(MouseEvent e) public void mouseClicked(MouseEvent e) markscurrentMarks = new Point(e.getX(), e.getY(); if(markCount MaxMarks)markCount+; currentMarks = (currentMarks+ 1)%MaxMarks; repaint();public class Class1 extends Applet public void init() MyWindow myWndow = new MyWindow(); 29.这是一个处理选择项目事件的子窗口
16、类。窗口中有2个选择框,当选中某个选择框时,文本框将显示选择框对应的信息。class MyWindow extends JFrame implements ItemListener JTextField text; JCheckBox boxl, box2; MyWindow(String s) _; super(s) Container con = this.getContentPane(); this.setLocation(100, 100); this.setSize(400, 200); text = new JTextField(10); box1 = new JCheckBox(
17、A计算机, false); box2 = new JCheckBox(B计算机, false); con.setLayout(new GridLayout(3, 2); con.add( new JLabel(计算机产品介绍, JLabel.CENTER); add(new JLabel(计算机2选1, JLabel.CENTER); con.add(box1); con.add(box2); con.add(text); box1 .addItemListener(this); box2.addItemListener(this); this.setVisible(true); this.p
18、ack(); public void itemStateChanged( _e) ItemEvent if(e.getItemSelectable() = box1) text. setText(A公司生产); else if(e.getItemSelectable() = box2) text. setText(B公司生产); 30.这是一个播放幻灯片的小应用程序中的paint()方法。设幻灯片已由小应用程序的init()方法装入内存,并存放于myImage数组中,幻灯片的张数放于变量num中,paint()方法要播放的幻灯片号是int currentImage = 0;final int
19、num = 30;Image myImage = new _ num; Imagepublic void paint(Graphics g) if (mylmagecurrentImage) != null) g. _ (myImagecurrentImage, 10, 10, drawImage myImage currentImage.getWidth(this), myImage currentImage.getHeight(this), this);31.以下定义的类ShareData用于管理多个线程共享数据val。为了保证对共享数据val修改的完整性,线程对val的操作需要互斥,类S
20、hareData中定义的方法modiData()就是供共享val的线程修改val的方法。程序共有20个线程共享val,有些减少val,有些增加val。public class Class1 public static void main(String args) ShareData mrc = new ShareData(50); Thread aThreadArray = new Thread20; System.out.println(t刚开始的值是:+mrc.getVal(); System.out.println(t多个线程正在工作,请稍等!); for(int i = 0; i 20
21、; i+) int d = i % 2 = 0 ? 50 : -30; aThreadArrayi = new Thread(new MyMultiThreadClass(mrc, d); aThreadArrayi.start(); WhileLoop :/等待所有线程结束 while(true) for(int i = 0; i 20; i+) if(aThreadArrayi. _ ()continue WhileLoop; isAlive() break; System.out.println(t最后的结果是: +mrc.getVal(); class MyMultiThreadCla
22、ss implements Runnable ShareData UseInteger; int delta; MyMultiThreadClass(ShareData mrc, int d) UseInteger = mrc; delta = d; public void run() for(int i = 0; i 1000; i+) UseInteger.modiData(delta); try Thread.sleep(10) ;/做一些其他的处理 catch(InterruptedException e) class ShareData int val; ShareData(int
23、initValue)val = initValue; int getVal()return val; private void putVal(int v)val = v; _ void modiData(int d) synchronized putVal(getVal() + d);五、程序分析题(本大题共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,
24、 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 = 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 + )
25、; System.out.println(); 11 1 1 2 1 1 3 3 134.阅读下列程序,请用示意图画出程序运行时呈现的界面。import java.applet.*;import java.awt *;import javax.swing.*;class MyPanel extends JPanel JButton button; JLabel label; MyPanel(String s1, String s2) this.setLayout(new GridLayout(2, 2); button = new JButton(s1); label = new JLabel
26、(s2, JLabel.CENTER); add(button); add(label); add(new JLabel(); public class Class1 public static void main(String args) JFrame mw = new JFrame(一个示意窗口); mw.setSize(400, 250); Container con = mw.getContentPane(); con.setLayout(new BorderLayout(); MyPanel panel1, panel2; panel1 = new MyPanel(按钮1 ,标签1)
27、; panel2 = new MyPanel(按钮2, 标签2); JButton button = new JButton(开始按钮); con.add(panel1, North);con.add(panel2, South); con.add(button, Center); mw.setVisible(true); 35.阅读下列程序,请回答以下问题:(1)程序要求在文本框text中输入的内容是什么? 需要读取的文件URL地址 (2)辅助文本区showArea组件的作用是什么? 显示读取的文件内容(3)如何使程序开始下载网络文本文件? 点击下载按钮(4)程序采用什么输入方式下载网络文件
28、? 使用字节流完成下载 import .*; import java.awt.*; import java.awt.event.*; import,java.io.*; import javax.swing.*; public class Class1 public static void main(String args) . new ConnectNet(读取网络文本文件示意程序); class ConnectNet extends JFrame implements ActionListener JTextField text=new JTextField(30); JTextArea
29、showArea=new JTextArea(); JButton b=new JButton(下载);JPanel p=new JPanel(); ConnectNet(String s) super(s);Container con=this.getContentPane(); p.add(text);p.add(b); JScrollPane jsp=new JScrollPane(showArea); b.addActionListener(this); con.add(p,North); con.add(jsp,Center); setDefaultCloseOperation(JF
30、rame.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();/设置网络连接 InputStreamReader in=new InputStreamReader(tc.getIn
31、putStream(); BufferedReader dis=new BufferedReader(in); String inLine; while(inLine=dis.readLine()!=null)showArea.append(inLine+n); dis.close(); catch(MalformedURLException e2)e2.printStackTrace(); catch(IOException e3) e3.printStackTrace(); 36.阅读下列程序,请写出该程序的功能。import java.applet.*; import java.awt.
32、*;public class Class1 extends java.applet.Applet implements Runnable Thread myThread = null; public void start() setSize(500, 400); if (myThread = null) myThread = new Thread(this); myThread.start(); public void run() while (myThread != null) try myThread.sleep(500); catch (InterruptedException e) r
33、epaint(); public void paint(Graphics g) int x = (int)(400*Math.random(); int y = (int)(300*Math.random(); g.setColor(Color.red); g.fillOval(x,y, 10, 10);随机绘制外切矩形为10红色的圆六、程序设计题(本大题共2小题,每小题6分,共12分)37.编写数组复制方法。该方法从已知平衡的两维数组的左下角复制出一个非平衡的三角二维数组。设复制数组方法的模型为:public static double leftDownConer(doubleanArray
34、)public static double leftDownConer(doubleanArray)int l1= anArray.length;int l2=anArray0.length;double temp;if(l1=l2)temp=new doublel1;for(int i=0;il1;i+)tempi=new doublei+1;for(int j=0;ji+1;j+)tempij=anArrayij;return temp;elsetemp=new doublel2;for(int i=0;il2;i+)tempi=new doublei+1;for(int j=0;ji+1
35、;j+)tempij=anArrayl1-l2+ij;return temp;38.设计实现以下形式布局的Java小应用程序。注1:其中空白格是文本框,用于输入对应的内容。注2:这里给出的是程序的一部分,你要编写的是方法MyWindow(String s)。 import java.applet.*; import javax.swing.*; import java.awt.*; class MyWindow extends JFrame JTextField textl,text2,text3,text4; public MyWindow(String s)/这个方法是你要编写的super
36、(s); Container con=getContentPane(); con.setLayout(new GridLayout(2,4); JLabel label1=new JLabel(学 号); JLabel label2=new JLabel(姓 名); JLabel label3=new JLabel(考试成绩); JLabel label4=new JLabel(平时成绩); text1=new JTextField(); text2=new JTextField(); text3=new JTextField(); text4=new JTextField(); con.ad
37、d(label1); con.add(text1); con.add(label2); con.add(text2); con.add(label3); con.add(text3); con.add(label4); con.add(text4); this.setVisible(true); public class Class1 extends Applet MyWindow myWindow; public void init() myWindow=new MyWindow(一个小应用程序); 2.薛宝钗:原以为金玉良缘已成,只待良辰,奈何君只念木石前盟,纵然艳冠群芳牡丹姿,一心只怜芙
38、蓉雪。3.贾元春:贤孝才德,雍容大度,一朝宫墙春不再,一夕省亲泪婆娑。昙花瞬息,红颜无罪,到底无常。4.贾探春:虽为女流,大将之风,文采诗华,见之荡俗。诗社杏花蕉下客,末世悲剧挽狂澜,抱负未展已远嫁。5.史湘云:醉酒卧石,坦荡若英豪,私情若风絮,嫁与夫婿博长安,终是烟销和云散,海棠花眠乐中悲。6.妙玉:剔透玲珑心,奈何落泥淖,青灯古佛苦修行,高洁厌俗袅亭亭。可惜不测之风云,玉碎冰裂,不瓦全。7.贾迎春:沉默良善,见之可亲,深宅冷暖,累遭人欺,腹中无诗情风骚,膺内缺气概魄力。空得金黄迎春名,可怜一载赴黄泉。8.贾惜春:高墙白曼陀,冷水伴空门。孤寒寂立一如霜,如何能得自全法?狠心舍弃近身人。侯门金
39、簪冰雪埋,海灯僻冷长弃世。9.王熙凤:毒酒甘醇,罂粟灿艳,锦绣华衣桃花眼,眼明刀锋吊梢眉。何幸七窍玲珑心,只惜冷硬霜凝集。千机算尽,反误性命。10.贾巧姐:七月七日,牵牛花开,绮罗金线裹绕成,家亡院坍落污地。幸有阴德济困危,得获余生农家栖。一亩薄田,岁月绵长。11.李纨:寒梅立霜,春来朝气。本自名宦出,农家稻香自甘愿,忠贞侍亲犹清心。竹溪茅舍佳蔬,分畦田列落英,一世宁安。12.秦可卿:花容柳腰,风情月韵。钗黛兼美太风流,袅娜温软惜早夭。荒唐言尽,辛酸泪流,引情凡世仙客来,红楼梦醒扶春归。2. 陆雪琪只是微笑,深深凝视着他,这个在梦里萦绕了无数次的男子,许久之后,轻轻地,低低地道:“别管明天了,好吗?”3. 清风一缕西南荡,风铃响,仙乐扬。碧水霓裳,共与灵犀晃。月映残鬓忆以往,襟又湿,欲断肠。探首出窗望迷茫,青云上,黑竹旁,翠影依依,拂袂试晨霜。笑语欢声起心浪,同心结,不能忘!4. 我半生说学,尽在相术,尤精于风水之