网上报名 新手必读 个人空间 成绩查询

Hi!欢迎来到自考室!

领积分换购课程,做试题吧!

学员登入 免费注册
考试提醒
您的当前位置:首页 > 主考院校 > 中南林业科技大学自考

湖南自考Java语言程序设计(一)真题-2013年10月全国卷

时间:2018-08-21 10:59:03来源:湖南自考网

绝密考试结束前

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

Java语言程序设计()试题

课程代码:04747

请考生按规定用笔将所有试题的答案涂、写在答题纸上。

选择题部分

注意事项:

1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。

2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。如需改动,用橡皮擦干净后,再选涂其他答案标号。不能答在试题卷上。

 

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

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将答题纸的相应代码涂黑。错涂、多涂或未涂均无分。

1.在Java语言中,用于标记回车符的转义字符是

A\b                                                         B/b

C\n                                                         D/n

2.设有定义inti=6;,则执行语句“i+=i-1;’’后,i的值为

A10                                                        B11

C12                                                         D13

3.以下关于抽象类及抽象方法的说法中,不正确的是

A.抽象方法只能出现在抽象类中              B.抽象类必须有抽象方法

C.有抽象方法的类一定是抽象类               D.抽象方法没有实现的代码

4.执行下列程序语句后,b的值是

 String a=Hello〃;

 String b=a.substring(1,3)

Ael                                                         BHe

Cell                                                        DHel

5.能够直接添加组件的Swing容器是

AJFrame                                                BJDialog

CJWindow                                              DJPanel

6.用于判定鼠标右键操作的常量是

ABUTTON1_MASK                                 BBUTTON2_MASK

CBUTTON3_MASK                                DBUTTON4_MASK

7.设置异或绘图模式的方法是

AsetXORMode()                                    BsetPaintMode()

CXORMode()                                         DPaintMode()

8.用来定义临界段,能对共享对象的操作上锁的关键字是

Astatic                                                    Bshare

Cserialize                                                Dsynchronized

9.如果一次从文件中读出一行数据,可使用的方法是

AFileReaderreadLine()方法                  BBufferedReaderreadLine()方法

CFileReaderread()方法                         DBufferedReaderread()方法

10.获取InetAddress对象的IP地址所用到的方法是

AgetHostlPAddress()                                BgetHostlP()

CgetHostAddress()                                  DgetHost()

 

非选择题部分

注意事项:

用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。

 

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

11.在Java语言中,双精度型变量在内存中占_____8____个字节。

12.在Java语言中,逻辑右移运算符为___>>_______

1 3.在Java语言中,通过扩展原有的类,声明新类的机制被称为____继承______

14.已知字节数组b,取由b[i]开始至b[j](其中j≥i≥0)结束的字节字符构造一个字符串s,其语句为:String s=new String(_b,i,j-i____);。

15.将容器区域分成东、南、西、北、中五个区域的布局类是___BorderLayout_______

16.在构造非强制对话框时,所使用的构造方法是JDialog(f,s, __false__),其中f为对话框所依赖的窗口,s为对话框的标题。

17.在Java语言中,要播放音频文件可以使用___AudioPlayer _______类。

18.当线程调用resume()方法后,就进入____就绪______状态。

19.要使用输入/输出操作的程序,必须要导入____ java.io______包。

20.在进行数据库访问时,查询结果存放在一个用____ResultSet______类声明的对象中。

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

21.请写出下面程序段的执行结果。

 int n=90

 int k=2

 System.out.print(n+″=)

 while(k<=n){

     if(k==n){System.out.println(n) break;}

     else if(n%k==0){System.out.print(k+″*″)n=nk;)

     else k++

 }

答:将一个数分解成质数因子,执行结果:90=2*3*3*5

22.为了系统安全,对JavaApplet小应用程序有什么限制?

答:小应用程序不允许访问和使用本地文件,避免小应用程序破坏本地文件。

23.请写出声明int类型的二维数组intArr的三种形式。

答:int[][]intArr;

int[] intArr[];

int intArr[][];

24.请写出在JFrame框架窗口对象中添加组件的步骤。

答:用getContentPane()方法获得内容面板,再调用add(组件对象)方法将组件加入。

25.请写出使用Graphics2D类声明并创建一个左上角为(2030)、边长为50的正方形对象square的语句。

答:Rectangle2D square= newRectangle2D.Double(20,30,50,50);

26.请写出使用纯Java JDBC驱动程序连接数据库的步骤。

答:

(1)加载驱动程序

(2)创建指定数据库的URL

(3)建立连接

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

 完全代码,使它能正确实现题意的功能。错填、不填均无分。

27.一个数如果恰好等于它的因子之和,这个数就称为完全数。例如6=1+2+3。方法voidfindPerfectNumber()的功能是找出1000以内的所有完全数。

 staticvoid findPerfectNumber(){

     System.out.println(″1000以内的完全数有:″)

     for(int i=1i<1000i++){

        int t=0

        for(int j=1j<=i/2j++)

             if(   i%j==0    )

                 t=t+j

        if(    t==i    )

          System.out.primt(i+"    ")

    }

 }

28.某应用程序的类实现了接口ActionListener,在其窗口的内容面板conPane中,有一个标上文字红色的按钮对象btn,并正确为该按钮对象注册了监视器。按钮处理程序要实现的功能是当点击这个按钮时,窗口的背景色置为红色,并设置该按钮不再响应事件。

 publicvoid actionPerformed(ActionEvent e){

     if(e.getActionCommand().equals("红色")){

conPane.setBAckground(   Color.red   )

            btn.    removeActionListener(this)     

     }

 }

29.某小应用程序有一个按钮和一个文本区,按钮作为发生键盘事件的事件源,并对它进行监视。程序运行时,先点击按钮,让按钮激活;从键盘输入英文字母时,在文本区显示输入的字母。

 importjAva.applet.*import java.awt.event.*import javax.swing.*

 public classTest29 extends Applet implements KeyListener{

     int count=0

     JButton button=new JButton("BEGIN")

   JTextArea text l=new JTextArea(110)

     public void init(){

         button.addKeyListener(this)

         add(textl)

 text1.setEnabled(false)  

     }

     public void keyPressed(KeyEvent e){

         intt=e.getKeyCode()

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

             text 1.append((char)t+"  ")

         }

     }

     public void    keyTyped    (KeyEvent e){}

     public void keyReleased(KeyEvent e){}

 }

30.以下小应用程序获取图像文件bg.jpg并显示。

 importjava.applet.*import java.awt.*

 public classTest30 extends Applet{

   lmage myImg

   publicvoid start(){

       myImg=getImage(    getCodeBase()    ,"bg.jpg¨)

   }

   public void paint(Graphics g){

      g   drawImage    (myImg,0,0,this)

   }

 }

31.以下程序段实现简单的线程创建、启动和终止的过程。

 MyThreadClassmyThread=new MyThreadClass()

 myThread    start()    

 try{

   myThread.sleep(10000)

 }

 Catch(InterruptedException e){

 }

 myThread   stop()   

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

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

 ClassParent {

   String onetwo

   public Parent(String aStringb){

     one=atwo=b

   }

   public void print(){

     System.out.println(two+"to"+one)

   }

 }

 public classChild extends Parent{

  public Child(String aStringb){

    super(a,b)

  }

  public void print(){

    System.out.println(one+"to"+two)

  }

  public static void main(String args[]){

    Parent p=new Parent("south""north")

    Parent t=new Child("east""west")

    p.print()

    t.print()

  }

 }

解:运行结果

northtosouth

easttowest

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

 importjava.applet.Appletimport java.awt.*

 public classTest33 extends Applet{

public voidpaint(Graphics g){

        for(int i=0i<6i++)

             drawGraphics(I,g)

    }

    public void drawGraphics(int n,Graphics g){

        g.clearRect(1010300300)

        switch(n){

          case 0:case 3

               g.setColor(Color.red)

               g.drawRect(5050150150)

               break

          case 1:case 4

               g.setColor(Color.blue)

               g.drawOval(4040160160)

               break

          case 2:case5

               g.setColor(Color.green)

               g.fillRect(5050200200)

               break

               }

              try{

                Thread.sleep(1500)

              }

            catch(InterruptedExceptione){System.exit(0)}

        }

   }

解:在applet窗口中,每隔1500毫秒,依次显示出红色正方形、蓝色圆形、绿色填充的正方形各两次

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

 import javax.swing.*  import java.awt.* import java.awt.event.*

 public class Test34 {

     publicstatic void main(String[]args){

         ComboBoxDemo myComboBoxGUI = new ComboBoxDemo()

     }

 }

 class ComboBoxDemo extends JFrame implementsItemListener{

      StringCountryList[]={"美国","中国","英国","俄罗斯","韩国","德国"};

      int GoldMedalNumber[]={46,38,29,24,13,11};

      JLabel label;

      JComboBoxcombobox;

      public ComboBoxDemo(){

         setSize(350,150);

         setTitle("第三十届伦敦奥运会金牌查询");

          ContainerconPane = getContentPane();

         conPane.setLayout(newFlowLayout());

          combobox=new JComboBox(CountryList);

         combobox.addItemListener(this);

         conPane.add(combobox);

          label=new JLabel();   conPane.add(label);   this.setVisible(true);

      }

      public void itemStateChanged(ItemEvent e){

          if(e.getSource()==combobox)

            label.setText(

              String.valueOf(GoldMedalNumber[combobox.getSelectedIndex()]));

     }

 }

解:在"第三十届伦敦奥运会金牌查询"窗口中显示一个下拉菜单,选中某一国家后,显示相应金牌数。

35.阅读下列程序,请回答下面的问题:

 (1)两个文本区内分别每次追加何种字符?有多少个?

答:左边的文本区每次追加6个大写字母;右边的文本区每次追加6个数字字符

 (2)两个文本区里面内容的显示速度有何区别?

答:左边文本区每400ms追加显示一次;右边文本区每700ms追加显示一次

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

 public class Test35 extendsApplet{

     JTextArea lText,rText;

     public void init() {

         setSize(600,500);setLayout(null);

         lText=newJTextArea();  rText=new JTextArea();

         lText.setFont(newFont ("Times New Roman",1,40));

         rText.setFont(newFont("Modern",1,40));

         JScrollPanejsp1=new JScrollPane(lText);

         JScrollPanejsp2=new JScrollPane(rText);

         add(jsp1);      add(jsp2);

        jsp1.setBounds(20,20,250,450);   jsp2.setBounds(310,20,200,450);

         (newthread1(lText,"1")).start();   

         (newthread1(rText,"2")).start();

     }

 }

 class thread1 extendsThread{

     protected JTextArea t;

     Stringtext="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

     publicthread1(JTextArea text,String m){     super(m);  t=text; }

     public void run()  {

         while(true){

             String s="";

             for(int i=0;i<6;i++){

                 int k;

                if(getName().equals("1"))

                    k=((int)(Math.random()*100)%26);

                 else

                    k=((int)(Math.random()*100)%10)+26;

                 s+=text.charAt(k);//获取k位置字符

             }

            t.append(s+"\n");

            t.setCaretPosition(t.getText().length());//最近输出的内容在文本区中显示

            try{sleep(getName().equals("1")?400:700);}

             catch(InterruptedException e){}

         }

    }

}

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

 import java.io.*;

 class Test36{

     publicstatic void main(String arg[]){

         intch;

        try{

           FileReader in=new FileReader(newFile("file1.txt"));

           FileWriter out=new FileWriter(newFile("file2.txt"));

           while((ch=in.read())!=-1){

               if(ch>=(int)'A' &&ch<=(int)'Z')

                  ch+=32;

               else if(ch>=(int)'a'&& ch<=(int)'z')

                  ch-=32;

               out.write(ch);

           }

          in.close();            

          out.close();

       }catch (FileNotFoundException e1){

            System.out.println("文件没有找到! "+e1);

       }catch(IOException e2){

            System.out.println("文件读写出错! "+e2);

       }

       System.out.println("程序结束! ");

     }

 }

答:将file1.txt文件中的内容中所有大写字符转换成小写字符,所有小写字符转换成大写字符,并将转换后的内容保存到file2.txt文件中。

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

37.编写方法int[][]transpose(int[][]a),方法将生成并返回一个新数组b,该数组为a的转置数组。

注:数组转置指的是将数组的行、列内容互换。

解:方法如下:

public static int[][] transpose(int[][] a){

              int[][] b=newint[a[0].length][a.length];            

              for(inti=0;i<a.length;i++){

                     for(intj=0;j<a[i].length;j++){

                            b[j][i]=a[i][j];

                     }

              }

              return b;

       }

38.以下程序界面有一个标以“OK”的按钮bt、一个文本区ta和一个文本框tf。当在文本框中输入内容完毕后,点击“OK”按钮可以使文本框内的字符串添加到文本区中,并输出文字因点击按钮而引发添加;或者按回车键使得文本框内的字符串添加到文本区中,并输出文字因在文本框里回车而引发添加

注:这里是给定程序的部分代码,你要编写的是actionPerformed(ActionEvent e)方法。

 import javax.swing.*;

 import java.awt.*

 import java.awt.event.*

 public classTest38 extends JFrame implements ActionListener{

          JButton bt=new JButton("OK")

          JTeXtField tf=new JTextField(20)

          JTextArea ta=new JTextArea(1020)

          public Test38()    {

            Container c=getContentPane()

            c.setLayout(new FlowLayout())  //指定布局方式为顺序布局

            c.add(ta)

             c.add(bt)

            c.add(tf)

             bt.addActionListener(this)

             tf.addActionListener(this)

             setSize(400300)

             setVisible(true)

         }

         public void actionPerformed(ActionEvente)     {

         //请在答题纸’’上编写以下代码

if(e.getSource()==jButton){               

                     jTextArea.append(jTextField.getText()+"(因点击按钮而引发添加)\n");

              }

              if(e.getSource()==jTextField){

                     jTextArea.append(jTextField.getText()+"(因在文本框里回车而引发添加)\n");

              }

         }

         public static void main(String args[])   {

             new Test38()

        }

 }


上一篇:湖南自考本科:软件工程(02333)应考指导(三)

下一篇:湖南自考Java语言程序设计(一)真题-2014年4月全国卷

报名咨询 专业咨询 院校咨询 历年真题 资料下载 咨询热线0731-8206-3569