您当前的位置: 湖南自考网 > 历年真题 > 工学类 > 文章详情

自考软件工程:2010年1月04747Java语言程序设计(一)历年真题及答案

2018-08-08 17:43:21
来源:湖南自考生网

以下自考本科软件工程专业:2010年1月04747Java语言程序设计(一)历年真题试卷及答案由湖南自考生网www.zikaosw.com收集、提供。更多真题及答案,可在我办网站“历年真题”栏目中查看。软件工程历年真题建议同学们在自学完教材后,做几套历年真题,熟悉题型,提高学习能力。 

 

全国20101月高等教育自学考试

Java语言程序设计(一)试题(含答案)

课程代码:04747

 一、单项选择题(本大题共10小题,每小题1分,共10分)

 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未 选均无分。

1.在下述字符串中,不属于Java语言关键字的是 (  C  )

A.float B.new

C.java D.return

2.Java语言中数值数据的类型能自动转换,按照从左到右的转换次序为 (   B   )

A. byte→int→short→long→float→double

B. byte→short→int→long→float→double

C. byte→short→int→float→long→double

D. short→byte→int→long→float→double

3.在以下供选择的概念中,不属于面向对象语言概念的是 (  B    )

A.消息 B.模块

C.继承 D.多态性

4.在下述Java语言语句中,错误的创建数组的方法是 (  D   )

A.int intArray [ ]; intArray=new int[5];

B.int intArray [ ]=new int[5];

C.int [ ] intArray ={1,2,3,4,5};

D.int intArray [5]={1,2,3,4.5};

5.在Swing中,它的子类能用来创建框架窗口的类是 (   B   )

A.JWindow B.JFrame

C.JDialog D.JApplet

6.MouseListener接口不能处理的鼠标事件是 (   D   )

A.按下鼠标左键 B.点击鼠标右键

C.鼠标进入 D.鼠标移动

7.以下不属于文字字型要素的是 (   A  )

A.颜色 B.字体

C.风格 D.字号

8.在以下四个供选的整数中,能作为线程最高优先级的整数是 (  C   )

注意:线程的最高级是10级,最低级是1级,默认为5级

 

A.0 B.1

C.10 D.11

9.Java语言可以用javax.swing包中的类JFileChooser来实现打开和保存文件对话框。用户通过文件对话框不可能获得的信息是 (   C   )

A.文件名称 B.文件路径

C.文件内容 D.文件对象

10.在编写访问数据库的Java程序时,Connection对象的作用是 (   A   )

A.用来表示与数据库的连接 B.存储查询结果

C.在指定的连接中处理SQL语句 D.建立新数据库连接

 二、填空题(本大题共10小题,每空2分,共20分)

 请在每小题的空格中填上正确答案。错填、不填均无分。

 11.Java的编译程序先将Java源程序翻译成与机器无关的__字节码________。

 12.表达式¨23 & 18’’的值是____18______。

 13.如果类A某个成员变量的类型是类B,则类A和类B之间是___has-a______关系。

 14.Java语言提供了两个用于处理字符串的类,它们是___String / StringBuffer_______。

 15.某程序用代码“JTextField text=new JTextField();”创建了一个文本框,并对这个文本框注册了监视器,则在监视器处理方法actionPerformed(ActionEvent e)中,判定是在这个文本框上发生事件的条件表达式是___if(e.getSource()==text)_______。

 16.一个水平滚动条对象的初始值是50,滑块的宽是10个像素,表示的范围是[0,250]。 创建这样的滚动条对象时,提供的5个参数依次是___ScrollBar.HORIZONTAL  50  10  0  250   JScrollBar b=new JScrollBar(JScrollBar.HOERIZONTAL,50,10,0,250)_______。

 17.要在JComponent 子类的组件中绘图,应重写____paintComponent______方法。

 18.当线程使用完临界段后,为了使等待的线程恢复工作,需要调用的方法是__notify() 或notifyAll()________。

 19.某程序想为一个long型整数文件构造随机读写对象,支持这个要求的类是__RandomAccessFile________。

 20.设已知服务器的IP地址和端口号,要创建一个套接字对象,支持这个要求的类是__Socket________。

 三、简答题(本大题共6小题,每小题3分,共18分)

 21.请写出一段if语句,判断一个整数n是否为偶数。如果是偶数,输出“Yes.”;否则,输出“No.”。

 if(i%2==0)

 {

 System.out.println("Yes");

 }

 else

 {

 System.out.println("No");

 }

 22.请写出接口定义的一般形式。

 [public] interface 接口名[extends 超口接口表]{

 接口体

 }

 23.请写出Java语言编写事件处理程序的两种主要方案。

 1、程序重设方法handleEvent(event)

 2、实现一些系统设定的接口

 

 24.设已经有Graphics2D对象g2d, 请用Java语句绘制一个矩形rect,其左上角坐标是(20,30),宽是120,高是30。

 Rectangle2D rect=new Rectangle.Double(20,30,120,30);

 g2d.draw(rect);

 25.打开文件对话框时,还可以设置筛选条件,即指定文件的类型。请写出FileFilter类预设的两个方法。

 accept(File f);

 getDescript();

 26.请写出URLConnection类提供的三个常用方法。

 connect();

 getInputStream();

 getOuputStream();

 四、程序填空题(本大题共5小题,每空2分,共20分)

 27.方法void moveOddForword(int a[ ])的功能是将数组中的所有奇数移到所有偶数之前。

  void moveOddForword(int a[]){

     for(int i=0, odd=0;__i

       if(__a[i]%2==0______){

         int  t=a[i];

 a[i]=a[odd];

 a[odd]=t;

 odd++;

       }

  }

 28.以下程序创建了一个窗口,然后在窗口内显示″Hello,World! ″。

  import javax.swing.*; import java.awt*;

  public class HelloWorld {

      public static void main(String[ ]ares) {

         TextFrame frame=new TextFrame();

         frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        frame. setVisible()________;

      }

  }

  class TextFrame extends JFrame  {

      public TextFrame()  { .

          setTitle(″HelloWorld″);

          setSize(WIDTH,HEIGHT);

          TextPanel panel=new TextPanel();

          Container contentPane=getContentPane();

          contentPane.add(panel);

      }

      public static final int WIDTH=300;

      public static final int HEIGHT= 200;

  }

  class TextPanel extends JPanel {

     public void paintComponent(Graphics g)  {

          super. paintComponent(g)________;

          g.drawString(″Hello,World! ″,x,y);

     }

     public int x=100;  public int y=100;

  }

 29.以下是子窗口中设置一个菜单条类的定义。类的构造方法根据指定的窗口名称和菜单表设置菜单条,菜单和菜单项,当选中某个菜单项时,在文本框中显示相应菜单项被选中的信息。

  class MenuWindow extends JFrame implements ActionListener {

      public static JTextField text;

      public MenuWindow(String s,String menuList[][]) {

           setTitle(s);

           Container con=this.getContentPane();

           con.setLayout(new BorderLayout());

           this.setLocation(100,100);

  this.setSize(300,100);

           JMenuBar menubar=new JMenuBar();

           for(int i=0; i

               JMenu menu=new JMenu(menuList[i][0]);

               for(int j=1;j

                   JMenultem anltem=new JMenultem(menuList[i][j]);

                   anltem.setActionCommand(menuList[i][j]);

                   anltem.addActionListener (this)________;

 menu.add(anltem);

               }

               menubar.Add(menu)__________;

           }

          text=new JTextField();

 setJMenuBar(menubar);

         con.add(text,BorderLayout.SOUTH);

     }

     public void actionPerformed(ActionEvent e){

          text.setText(e.getActionCommand()+″菜单项被选中! ″);

     }

  }

  public class Test29 extends Applet  {

      MenuWindow window;

      String menuList[][]={{″体育″,″跑步″,″打蓝球″,″打乒乓″},

                                   {″娱乐″,″唱歌″,″跳舞″}};

      public void init() {

           window=new MenuWindow(″体育娱乐之窗″,menuList);

           window.setVisible(true);

      }

  }

 30.以下是一个用鼠标自由作画的小应用程序。最简单的方法是根据鼠标所在位置画点,跟随鼠标的移动,不断画圆点,就能实现用鼠标作画。

  import java.awt.*;

  import java.awt.event.*;

  public class Test30 extends java.applet.Applet implements MouseMotionListener {

      Color color;int lineSize=2:

      int x=-1,y=-l;

      public void init(){

          setLocation(30,20);   

  setSize(300,300);

          setBackground(Color.green);

 addMouseMotionListener(this);

      }

      public void paint(Graphics g){

          if(x!=-1&&y!=-1) {

            g.setColor(color);

 g.fillOval(x,y,1ineSize,lineSize);

          }

      }

      public void mouseMoved(MouseEvent e){}

      public void mouseDragged(MouseEvent e){

          x=e.getX();

 y=e.getY();__repain()_______;

      }

      public void __update______ (Graphics g){     paint(g);}

  }

 31.以下定义的类ShareData用于管理多个线程共享数据data。一个线程生成data,另一个线程使用data。约定,新生成的data只有被另一个线程使用后,才能生成下一个data。反之,一个data被使用后,也不能再继续使用。所以,生成和使用data的线程之间需要互斥和同步。以下是管理上述使用方式的类,类内有要管理的共享数据,以及对共享数据的存操作putData()和取操作getData()。

  class ShareData{

  int data;∥共享数据

  boolean newData=false;∥有最近新生成data的标志

  synchronized int getData(){

      while(!newData){

  try{ __wait()_______;

  } catch(InterruptedExceptipn e){

        System.out.println(″因错误,而中断!″);

  }

  }

        newData=false;

  notify();

 return data;

  }

  synchronized void putData(int n){

  while(newData){

  try{wait();

  }catch(InterruptedException e){

        System.out.println(″因错误,而中断! ″);

  }

  }

  data=n;  

   _ newData=true_________;

  notify();

    return;

  }

  }

 五、程序分析题(本大题共5小题,每小题4分,共20分)

 32.阅读下列程序,请写出该程序的输出结果。

  class Parent{

    private void method 1 () {  System.out.println(″Parent′s method 1()″);}

    public void method 2 () {  System.out.println(″Parent′s method 2()″);method 1();}

  }

  class Child extends Parent {

    public void method l (){  System.out.println(″Child′s method 1 ()″);}

    public static void main(String args[]){  Parent p = new Child();p.method2();}

  }

 

 Parent′s method 2()

 Parent′s method 1()

 

 33.阅读下列程序,请写出该程序的功能。

  import java.util.*;import javax.swing.*;

  public class Test33{

     public static void main(String args[]){

 String str=(String)JOptionPane.showInputDialog(null,″请输入信息″,

 ″输入对话框″,JOptionPane.PLAIN_MESSAGE,null,null,null);

 StringTokenizer pas=new StringTokenizer(str, ″,″);

 int n=pas.countTokens();

 System.out.println(″输入的信息有单词:″+n+″个,全部单词如下:″);

 while(pas.hasMoreTokens()){

 String s=pas.nextToken();

 System.out.println(s);

 }

     }

  )

 

 在输入对话框中输入文字,并以逗号作为分隔符,输出单词个数以及各个单词;

 

 34.阅读下列程序,请用示意图画出程序运行时呈现的界面。

  import java.applet.*;import java.awt.*;import javax.swing.*;

  class MyPanel extends JPanel{

     JTextField textl,text2;

     MyPanel(String sl,String s2) {

        textl=new JTextFieId(s1);

 text2=new JTextField(s2);

        add(text 1);                 add(text2);

     }

  }

  class MySubPanel extends MyPanel {

      JTextField text;

      MySubPanel(String sl,String s2,String s3) {

         super(s1,s2);

 text = new JTextField(s3);

 add(text);

      }

  }

  public class Test34 {

      public static void main(String args[]) {

  JFrame mw=new JFrame(″一个示意窗口″);

  mw.setSize(350,150);

  Container con = mw.getContentPane();

  con.setLayout(new BorderLayout());

  MyPanel pl=new MyPanel(″文本框l″,″文本框2″);

  MySubPanel p2=new MySubPanel(″文本框3″,″文本框4″,″文本框5″);

  JTextArea text=new JTextArea(″这里是一个文本区″);

  con.add(pl,″North″); con.add(p2,″South″);

  con.add(text,″Center″);

 mw.setVisible(true);

     }

  }

 

 

 

 35.阅读下列程序,请写出该程序的功能。

  import java.applet.*:import java.awt.event.*;

 import javax.swing.*

  public class Class 1 extends Applet implements KeyListener{

  JButton button=new JButton(″开始″);

  JTextArea text=new JTextArea(5,20);

      public void init() {

      button.addKeyListener(this);

   add(button)

 ;add(text);

  }

  public void keyPressed(KeyEvent e){

      int t=e.getKeyCode();

      if(t>=KeyEvent.VK_A&& t<=KeyEvent.VK_Z) {

         text.append(″ ″+(char)t);

      }

  }

  public void keyTyped(KeyEvent e){}

  public void keyReleased(KeyEvent e){}

  }

 从键盘输入字符,如果是大写字母A-Z,则显示在文本区中;

 

 36.阅读下列程序,请写出该程序的功能。

  import java.awt.Color;

 import java.awt.Graphics;

 

 public class Test36 extends java.applet.Applet implements Runnable {

  

 Thread myThread = null;

 double seta = 0.0;

 

 public void start() {

 setSize(500, 400);

 if (myThread == null) {

 myThread = new Thread(this);

 myThread.start();

 }

 }

 

 public void run() {

 while (myThread != null) {

 try {

 myThread.sleep(40);

 } catch (InterruptedException e) {

 }

 seta += 3.0;

 if (seta >= 360)

 seta = 0;

 repaint();

 }

 }

 

 public void paint(Graphics g) {

 final double pi = 3.14159;

 final double r = 100.0;

 int x0 = 250 + (int) (r * Math.cos(3.1415926 / 180.0 * seta));

 int y0 = 200 + (int) (r * Math.sin(3.1415926 / 180.0 * seta));

 g.setColor(Color.red);

 g.drawOval(x0, y0, 10, 10);

 }

 

 顺时针 画红色的圆

 }六、程序设计题(本大题共2小题,每小题6分,共1 2分)

 37.请编写方法void strReverse(String  str),该方法的功能是输出一个新字符串,新字符串字符排列顺序与原字符串str的字符排列顺序相反。例如,strReverse(″ABCD″) 所输出的结果是″DCBA″。请使用字符串与字节数组的相互转换方法进行设计。

 void strReverse(String  str)

 {

 String newStr="";

 byte[] b=str.getBytes();

 for(int i=b.length-1;i>=0;i--){

 

 newStr+=(char)b[i];

 }

 

 System.out.print(newStr);

 }

 38.请设计实现如下用于输入学号和姓名的对话框界面,其中空白格是文本框,用于输入相应的内容。

 

 

 

 

 public class TestJFrame extends  JFrame {

 

 /**

  * @param args

  */

 public static void main(String[] args) {

  new TestJFrame("输入学号和姓名");

 

 }

 

 public TestJFrame (String s){

 super(s);

 Container con=getContentPane();

 setLayout(new GridLayout(3,2));

 JLabel label1 =new JLabel("学号",JLabel.CENTER);

 JLabel label2 =new JLabel("姓名",JLabel.CENTER);

 JLabel label3 =new JLabel(s);

 JTextField text1=new JTextField();

 JTextField text2=new JTextField();

 JButton bt=new JButton("确定");

 con.add(label3);

 con.add(bt);

 

 con.add(label1);

 con.add(text1);

 con.add(label2);

 con.add(text2);

 setVisible(true);

 pack();

 

 }

 

 }

 

 这里给出的是程序的一部分,你要编写的是类InputNoNameDialog的构造方法InputNoNameDialog(JFrame f,String s,JTextField t)。其中参数f是对话框的依赖窗口,s是对话框标题,t是依赖窗口中显示对话框输入内容的文本框。

 以下是类InputNoNameDialog的程序框架。

 class InputNoNameDialog extends JDialog implements ActionListener{

 JLabel title;

 JTextField textl,text2,mainText;

 JButton done;

     InputNoNameDialog(JFrame f ,String s,JTextField t) {

  super(f,s,true);

  mainText = t;

 Container con = getContentPane();

  title=new JLabel(s);

  textl=new  JTextField(10);

  text2=new JTextField(10);

  con.setLayout(new GridLayout(3,2));

  con.setSize(200,100);

  setModal(false);

  //请在以下位置续写其余代码

 done=new JButton(“确定”);

  done.addActionListener(this);

  con.add(title);

 con.add(done);

 con.add(new JLabel(“学号”));

 con.add(text1);

 con.add(new JLabel(“姓名”));

 con.add(text2);

 setVisible(true);

 

     }

 public void actionPerformed(ActionEvent e) {

  

  //输入结束按确定按钮后,将对话框中输入的学号和姓名在它依赖窗口的文本框中显示。

 

 

      mainText.setText(″学号:″+textl.getText()+″ 姓名:″+text2.getText());

      setVisible(false);dispose();

    }

  }

  

更多自考本科考试复习资料可查看我办湖南自考 生网考试资料”栏目

 

湖南学历提升报名热线:
蒋老师QQ咨询 QQ咨询

TEL:蒋老师17773102705

2024年自考、成考、网教报名进行中,点击立即报考咨询>>

扫一扫下方二维码关注湖南自考生网微信公众号、客服咨询号,即时获取湖南自考、成考、网教最新考试资讯。

  • 湖南自考官方公众号

    关注公众号免费拿资料

  • 微信扫一扫咨询

  • 微信扫一扫咨询

免责声明

1、鉴于各方面资讯时常调整与变化,本网所提供的信息仅供参考,实际以考试院通知文件为准。

2、本网部分内容来源于网络,如有内容、版权等问题请与本网联系,我们将会及时处理。联系方式 :QQ(393848300)

3、如转载湖南自考生网声明为“原创”的内容,请注明出处及网址链接,违者必究!

市区导航: 长沙市自考  |   株洲市自考  |   湘潭市自考  |   衡阳市自考  |   邵阳市自考  |   岳阳市自考  |   常德市自考  |   张家界自考  |   益阳市自考  |   郴州市自考  |   永州市自考  |   怀化市自考  |   娄底市自考  |   湘西州自考  |  

特别声明:本站信息大部分来源于各高校,真实可靠!部分内容来自互联网,仅供参考!所有信息以实际政策和官方公告为准!

湖南求实创新教育科技有限公司 版权所有 湘ICP备18023047号-2