Java全国自考历年试卷(参考答案)

上传人:xgs****56 文档编号:10931533 上传时间:2020-04-16 格式:DOC 页数:123 大小:922.50KB
返回 下载 相关 举报
Java全国自考历年试卷(参考答案)_第1页
第1页 / 共123页
Java全国自考历年试卷(参考答案)_第2页
第2页 / 共123页
Java全国自考历年试卷(参考答案)_第3页
第3页 / 共123页
点击查看更多>>
资源描述
全国2009年1月Java语言程序设计试题一、单项选择题(本大题共10小题,每小题1分,共10分)1.下列字符组合不能作为Java整型常量的是( )A.078B.0x3ACB C.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.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,false C.true,falseD.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.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表达式:yx5,并且x!=0。这个表达式是_y/x5&x!=0_。13.在类声明之前用_final_修饰,声明类是不能被再继承的类,即它不能再有子类。14.设有字符串定义:String s=ABCDABCD;则表达式s.indexOf(B)的值是_1_。 15.在实现接口ActionListener的方法actionPerformed()中,常用的有两个获得事件源的方法,它们是getActionCommand()和_getSource()_。16.使用单选按钮的方法是将一些单选按钮用_ButtonGroup_对象分组,使同一组内的单选按钮只允许一个被选中。17.在Java语言中,用类Font对象设置字型。如果要设置的字型是:细明体、正常风格(Font.PLAIN),12磅字号,构造这样要求的Font对象fnA的代码是_Font f=new Font(“Font.PLAIN”,细明体,12);_。18.线程从阻塞状态恢复到就绪状态,有三种途径:自动恢复、用resume()方法恢复和用_notify()或notifyAll()_方法恢复。19.为普通的8位字节流文件读和写操作提供支持的类是_FileInputStream和FileOutputStream_。20.Connection类是java.sql包中用于处理与数据库连接的类。Connection对象是用来表示_数据库连接_的对象,Java程序对数据库的操作都在这种对象上进行。三、简答题(本大题共6小题,每小题3分,共18分)21.请写出表示year年是闰年的Java表达式。闰年的条件是:每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。(year%4=0 & year%100!=0 | (year%400=0)22.请写出在类的方法的定义之前,加上修饰字public、private的区别。public 修饰的方法是共有的,其他类的方法都可以访问;而private修饰的方法是私有的,其他类都不能访问。23.请写出将文本区text放置于滚动面板jsp,并将滚动面板jsp添加到JFrame窗口myFrame的Java语句。 JTextArea text=new JTextArea(); JScrollPane jsp=new JScrollPane(text); myFrame.getContentPane().add(jsp);24.要用Graphics2D类的方法画一个图形,首先要把参数对象g强制转换成Graphics2D对象;然后,用图形类提供的静态方法Double()创建一个图形对象;最后,以图形对象为参数调用Graphics2D对象的draw()方法绘制这个图形。请写出用这样的方法绘制一条线段的程序段,线段的两个端点分别是(10.0,10.0)和(30.0,30.0)。Graphics2D g2d=(Graphics2D)g;Line2D line=new Line2D.Double(10.0,10.0,30.0,30.0);g2d.draw(line);25.请写出字符流数据与字节流数据的区别。字符流数据每次读写的单位是一个字符,即16位;字节流数据每次读写的单位是一个字节,即8位。26.请写出URLConnection类在编写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=sum+d ; n/= 10; return sum ; 28.以下小应用程序能响应鼠标按动的事件,当鼠标在正文区的某个位置被点击时,就在该位置显示一个记号“”,程序限制最多保留最新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 MouseListener 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); panel.addMouseListener(this); this.setVisible(true); public void paint(Graphics g) int i; g.clearRect(0,0, this.getWidth(), this.getHeight(); for(i =0;i markCount; i+) panel.print (g, marksi.x, marksi.y); 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+; currentMarks = (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 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(计算机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( ItemEvent e) 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 num = 30;Image myImage = new Iamge num; public void paint(Graphics g) if (mylmagecurrentImage) != null) g. drawImage (myImagecurrentImage, 10, 10, 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 = new 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) for(int i = 0; i 20; i+) if(aThreadArrayi. isAlive ()continue WhileLoop; 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 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; synchronized void modiData(int d) 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, 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 1);A36 B36.5 C37 Dtrue3Java语言中,在类定义时用final关键字修饰,是指这个类( )A不能被继承 B在子类的方法中不能被调用C能被别的程序自由调用 D不能被子类的方法覆盖4以下是关于字符串运算的代码,执行该代码段的输出结果是( )String s=0123456789,sl,s2;sl=s.substring(2);s2=s.substring(2,5);System.out.println(s1+s2);A0122345 B234567892345 C012234 D234567892345以下是关于FlowLayout布局组件排列顺序的叙述,正确的是( )A从上到下排列 B从左到右排列 C从下到上排列 D从右到左排列6程序执行方法showOpenDialog(),能打开“打开文件对话框”,如果该方法的返回值是JFileChooser.APPROVE_OPTION,则用户执行的动作是( )A对话框非正常关闭 B按下“打开保存”按钮C按下“撤销”按钮 D重新输入了一个文件名7设已经有Graphics2D对象g2d,Rectangle2D对象r,绘制对象r的代码是( )Ag2d.draw(r) Bg2d.drawRect(r) Cr.draw() Dr.drawRect()8在以下供选择的方法中,能让线程从阻塞状态恢复到就绪状态的方法是( )Astart() Binit() Cresume() Drun()9在以下供选择的方法中,不能用于文件随机访问的方法是( )AreadChar() BreadLong() CreadInteger() DwriteChars()10某程序利用网址参数创建URL对象url,接着希望利用对象url获得URLConnection对象,则这个url对象要调用的方法是( )Aconnection() BURLConnection() CgetConnection() DopenConnection()二、填空题(本大题共10小题,每小题2分,共20分)11一个应用程序必须在某个类中定义的方法是_主方法/public static void main(Stringa rgs)_。12import语句的格式是_import 包名.类名_。13在面向对象语言中,对象之间的交互通过_消息_实现。14设有两个字符串对象str1和str2,则表达式“strl=str2”的意义是判别字符串strl和str2_是否有相同的引用(或者说“是否是同一个字符串”)_。15一个基于Swing的应用程序可能在任何平台上都会有相同的_外观和风格_。16处理键盘事件的Java程序,要实现的接口是_KeyListener_。17Java语言约定,坐标原点位于绘图区域的_左上角_。18Java程序中,在临界段中使用_wait()_方法,使执行该方法的线程等待。19BufferedWriter类对象能按行输入文件的内容,按行输入的方法是_readLine()_。20在java.net包中有InetAddress类的定义,Java程序中的InetAddress类对象存储的内容是_IP地址和域名_。三、简答题(本大题共6小题,每小题3分,共1 8分)21请写出实现计算y=|x|的if语句。if(x=0) y=x; else y=x*(-1);22以下代码定义了一个类,请指出其中三条不合法的代码行(行号参见注释)。class Test22/1float u;static float v;/2static void setUV(boolean f) /3u=fac1(f);/4v=fac2(!f);/5static float facl(boolean f)return f?u:v; /6float fac2(boolean f)return f?v:u; /7 /823在java.awt.event中,用来检测并对事件做出反应的模型涉及三种对象。请写出这三种对象。源对象、事件对象和监视器对象24写出设置Font对象fn的Java语句,要求Courier字体,BOLD风格,18磅字号,设调用对象的类型为Graphics的g。Font fn=new Font(“Courier”,Font.BOLD,18);g.setFont(fn);25通过流的构造方法建立文件流对象,请写出创建输入输出文件流对象的两种常用构造方法。File f=new File(“t.txt”); FileInputSteam fi=new FileInputStream(f); 或者FileInputSteam fi=new FileInputStream(“t.txt”);FileOutputStream fo=new FileOutputStream(“t.txt”);26当Client程序和Server程序需要通信时,可以用Socket类建立套接字连接,请写出双方实现通信的两种方式。流式socket和数据报式socket四、程序填空题(本大题共5小题,每空2分,共20分)27方法int sigmaEvenNum(inta)的功能是求已知数组中偶数的个数。static int sigmaEvenNum(int a)int s =0;for ( int i=0;_ia.length_;i+ ) if(_ai%2=0_) s+;return s;28某小应用程序窗口包含有文本区dispArea,以及一个带文字“追加”的按钮。当点击这个按钮时,程序弹出一个输入信息的对话框,并将对话框中输入的内容追加到文本区中。以下是其中相应“追加”按钮事件的方法。public void actionPerformed(ActionEvent e)if(e._getActionCommand()_.equals(追加)String result=(String)JOptionPane.showInputDialog(null,请输入信息, 输入对话框,JOptionPane.PLAIN_MESSAGE, null, null,null);dispArea._append_(result + );29以下程序段是选择项目事件处理程序的样例,一个由3个单选按钮组成的选择组被定义为一个面板子类Panel,当某个按钮被选中时,按钮监视程序在类MyWindow的一个文本框中输出某个按钮被选中的字样。以下是类Panel的定义。class Panel extends JPanel implements ItemListenerstatic JRadioButton box;ButtonGroup g;Panel(String radioNameList) box=new JRadioButtonradioNameList.length;setLayout(new GridLayout(1, radioNameList.length);g=new ButtonGroup();for(int i=0;iradioNameList.length; i+)boxi = new JRadioButton(_radioNameListi_,false);g.add(boxi);add(boxi);boxi.addItemListener(this);public void itemStateChanged(ItemEvent e)for(int i = 0; i = 0) putData(getData()+ delta); else while (_getData()+delta_0) try wait(); catch (InterruptedException e) putData(getData()+ delta);_notifyAll();_;五、程序分析题(本大题共5小题,每小题4分,共20分)32阅读下列程序,请写出该程序的输出结果。class Tree private String name;public boolean flower;public int birthYear;Tree(String n, boolean f, int y) name = n; flower = f; birthYear = y; public void setName(String n)name = n;public String getName()return name; public void printTree(String str)System.out.println(str); System.out.println(Name:+name);System.out.println(Birth Year:+birthYear);System.out.println(Flower:+flower);class PineTree extends Tree public boolean coniferous = true;PineTree(String n, boolean f, int y, boolean c)super(n, f, y);coniferous = c; public void printTree(String str)super, printTree(str);System.out.println(Coniferous: + coniferous);class Test32 public static void main(String args)Tree fOb = new Tree(May Flower, true, 1980);PineTree sOb = new PineTree(Pine, false, 2000, true);fOb.printTree( fOb:); sOb.printTree(sOb:);fOb:Name: May FlowerBirth Year:1980Flower:truesOb:Name: PineBirth Year:2000Flower:falseConiferous:true33阅读下列程序,请写出该程序的输出结果。class Test33 static void s (int b , int k) int i, j, t;for(i = 1;i= 0 & t bj; j-)bj+l = bj;bj+ 1 = t;public static void main(String args)int i, a = 6, 12, 7, 11, 5 ;s(a, 5);for(i = 0;i a.length; i+) System.out.print(ai+ );System. out. Println();5 6 7 11 1234阅读下列程序,请写出该程序的功能。import java.applet.*; import javax.swing.*;import java.awt.*; import java.awt.event.*;public class Test34 extends Applet implements ActionListener JTextField text;int r; JPanel panel;public void paint(Graphics g)Graphics gc = panel.getGraphics();gc.clearRect(0,0, panel.getWidth(), panel.getHeight();gc.setColor(Color.red); gc.fillOval(10, 10, r, r);public void init() text = new JTextField(10); panel = new JPanel();setSize(200, 100); setLayout(new GridLayout(2,1);add(text); add(panel); te
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!