国产在线精品一级A片-国产另类欧美-国产精品va在线观看一-我要找美国一级片黄色|www.zheinei.com

Java語(yǔ)言程序設(shè)計(jì)試題附參考答案

時(shí)間:2017-04-24 09:08:51 java試題 我要投稿

Java語(yǔ)言程序設(shè)計(jì)試題附參考答案

  Java語(yǔ)言程序設(shè)計(jì)詳細(xì)介紹了Java語(yǔ)言的基本概念和編程方法,同時(shí)深入介紹了Java的高級(jí)特性。以下是由陽(yáng)光網(wǎng)小編整理關(guān)于Java語(yǔ)言程序設(shè)計(jì)試題的內(nèi)容,希望大家喜歡!

Java語(yǔ)言程序設(shè)計(jì)試題附參考答案

  Java語(yǔ)言程序設(shè)計(jì)試題附參考答案

  一、單項(xiàng)選擇題(本大題共10小題,每小題1分,共10分) 在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求

  的,請(qǐng)將其代碼填寫(xiě)在題后的括號(hào)內(nèi)。錯(cuò)選、多選或未選均無(wú)分。

  1. 如果發(fā)生多個(gè)線(xiàn)程形成一個(gè)等待環(huán),這樣,所有線(xiàn)程都陷入相互等待的狀態(tài)。這種循環(huán)等待現(xiàn)象稱(chēng)為() (1分)

  A:互斥

  B:同步

  C:死鎖

  D:臨界

  2. 下面有關(guān)臨界段敘述錯(cuò)誤的是() (1分)

  A:多線(xiàn)程互斥使用共享資源的程序段被稱(chēng)為臨界段

  B:臨界段是一種加鎖機(jī)制,與多線(xiàn)程共享資源有關(guān)

  C:臨界段的作用是在任何時(shí)該一個(gè)共享資源只能供一個(gè)線(xiàn)程使用

  D:如果一個(gè)線(xiàn)程已進(jìn)入某個(gè)共享資源的臨界段,且還沒(méi)有使用結(jié)束,其他進(jìn)程可搶占這個(gè)共享的資源

  3. 以下程序代碼的輸出結(jié)果是()

  int x=100;

  System.out.println("5.5"+x%8); (1分)

  A:5.512

  B:5.512.5

  C:18

  D:5.54

  4. 在Java程序中有代碼如下:

  System.out.println(

  (new StringTokenizer("I am a student","a")).countTokens());

  則輸出結(jié)果為() (1分)

  A:I am a student

  B:2

  C:3

  D:4

  5. 為8位字節(jié)流數(shù)據(jù)提供讀操作支持的類(lèi)是() (1分)

  A:FileInputStream

  B:FileOutputStrem

  C:FileReader

  D:FileWriter

  6. 下列有關(guān)抽象類(lèi)及抽象方法的敘述錯(cuò)誤的是() (1分)

  A:使用final修飾的類(lèi)是抽象類(lèi)

  B:使用abstract修飾的方法是抽象方法

  C:抽象類(lèi)必須被繼承才能使用,抽象類(lèi)不可能有實(shí)例

  D:抽象類(lèi)可以沒(méi)有抽象方法,但有抽象方法的類(lèi)一定是抽象類(lèi)

  7. 在編寫(xiě)Java程序訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的過(guò)程中,用來(lái)處理驅(qū)動(dòng)程序的加載和建立新數(shù)據(jù)庫(kù)連接的類(lèi)是() (1分)

  A:DriverManager類(lèi)

  B:Statement類(lèi)

  C:Connection類(lèi)

  D:ResultSet類(lèi)

  8. 在Java語(yǔ)言中執(zhí)行如下語(yǔ)句后,i和j的值分別為()

  int i=10;int j=++i; (1分)

  A:11和11

  B:10和10

  C:10和11

  D:11和10

  9. 包含當(dāng)事件發(fā)生時(shí)從源傳遞給監(jiān)視器的特定事件信息的對(duì)象是() (1分)

  A:事件對(duì)象

  B:源對(duì)象

  C:監(jiān)視器對(duì)象

  D:接口

  10. 在Java程序中有如下設(shè)置:setBackground(Color.blue);g.setXORMode(Color.red); g.setColor(Color.blue);g.drawLine(300,300,500,

  500);則線(xiàn)的顏色是() (1分)

  A:藍(lán)色

  B:紅色

  C:黃色

  D:綠色

  二、填空題(本大題共10小題,每小題2分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。

  1. 為選擇框(JCheckBox)對(duì)象設(shè)定監(jiān)視器的方法是:。 (2分)

  2. 使用ResultSet對(duì)象的方法可將數(shù)據(jù)表游針移到插入位置,輸入數(shù)據(jù)后,用方法insertRow()插入記錄。 (2分)

  3. 題中橫線(xiàn)處答案為: (2分)

  4. 列表的選擇模型有單選和多選兩種,設(shè)置列表選擇模型的方法是。 (2分)

  5. 多線(xiàn)程互斥使用共享資源的程序段,稱(chēng)為,它是一種加鎖機(jī)制,與多線(xiàn)程共享資源有關(guān),它的作用是在任何時(shí)該一個(gè)共享資源只能供一個(gè)線(xiàn)程使

  用。 (2分)

  6. 流在某些應(yīng)用中,不希望順序讀寫(xiě)流,而是需要采用隨機(jī)訪(fǎng)問(wèn)方式,文件隨機(jī)訪(fǎng)問(wèn)可利用類(lèi)來(lái)實(shí)現(xiàn)。 (2分)

  7. 創(chuàng)建java.net包中URL對(duì)象可能會(huì)產(chǎn)生異常。 (2分)

  8. 以下代碼的輸出結(jié)果是。

  System.out.println(5>4||3<4); (2分)

  9. Java語(yǔ)言中需要采用隨機(jī)方式對(duì)文件進(jìn)行讀寫(xiě),可利用類(lèi)來(lái)實(shí)現(xiàn)。 (2分)

  10. 在Java語(yǔ)言中,package語(yǔ)句必須出現(xiàn)在程序文件的。 (2分)

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

  1. 某程序的界面包含了兩個(gè)按鈕button1和button2,一個(gè)文本框text。要求實(shí)現(xiàn)當(dāng)點(diǎn)擊button1時(shí),文本框中顯示“請(qǐng)認(rèn)真做題!”;當(dāng)點(diǎn)擊button2

  時(shí),文本框中內(nèi)容消失。

  import java.awt.*;

  import javax.swing.*;

  import java.awt.event.*;

  public class Class2801 extends JFrame

  {

  JButton butt1,butt2;

  JTextField text1;

  JFrame myWin;

  public Class2801(String s)

  {

  myWin=new JFrame(s);

  myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關(guān)閉窗口時(shí),整個(gè)應(yīng)用程序關(guān)閉。若省略,關(guān)閉窗口時(shí)程序不終止,相當(dāng)于setVisible

  (false)

  Container con=myWin.getContentPane();

  con.setLayout(new FlowLayout(FlowLayout.LEFT));

  butt1=new JButton("b1");

  butt2=new JButton("b2");

  butt1.addActionListener(this);

  butt2.addActionListener(this);

  con.add(butt1);con.add(butt2);

  text1=new JTextField(20);

  con.add(text1);

  myWin.pack();

  myWin.setVisible(true);

  }

  public static void main(String[] args)

  {

  Class2801 my=new Class2801("Class2801");

  }

  public void actionPerformed(ActionEvent e)

  {

  if(e.getSource()==butt1)

  text1.setText("請(qǐng)認(rèn)真做題!");

  else

  ;

  }

  } (2分)

  2. 以下是生成菜單項(xiàng)對(duì)象,以及菜單項(xiàng)選擇事件處理方法的代碼。要求當(dāng)菜單項(xiàng)singingItem被選中時(shí),在文本框text中輸出“唱歌菜單項(xiàng)被選中!”

  的字樣。

  …………

  singingItem=new("唱歌");//生成菜單項(xiàng)對(duì)象

  …………

  public void actionPerformed(ActionEvent e)

  {

  if(e.getSource()==singingItem)

  {

  text.setText(e.()+"菜單項(xiàng)被選中!");

  }

  } (2分)

  3. 回文整數(shù)是指正讀和反讀都一樣的整數(shù)。方法f2705(int n)的功能是判斷十進(jìn)制整數(shù)n是否為回文整數(shù)。例如:n=123321,該方法返回值為true;

  n=123,該方法返回值為false。

  boolean f2705(int n)

  {

  Integer M=n;

  String s=;

  int i=0;

  while(i<s.length()/2)

  {

  String s1,s2;

  s1=s.substring(i,i+1);

  s2=s.substring(s.length()-i-1,s.length()-i);

  if(!())break;

  i++;

  }

  if (i<s.length()/2) return false;

  else return true;

  } (2分)

  4. 程序運(yùn)行結(jié)果如下圖:五個(gè)按鈕按照緊湊方式顯示在窗口中。

  import java.awt.*;

  import javax.swing.*;

  public class Class2805

  {

  public static void main(String[] args)

  {

  myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  myWin.setBounds(100,200,400,200);

  Container con=myWin.getContentPane();

  con.setBackground(Color.red);

  con.setLayout(new FlowLayout());

  JButton button[]=new JButton[5];

  for(int i=0;i<5;i++)

  {

  button[i]=new JButton("第"+(i+1)+"個(gè)按鈕");

  con.add(button[i]);

  }

  myWin.setVisible(true);

  }

  } (2分)

  5. 下面小應(yīng)用程序?qū)崿F(xiàn)在一個(gè)文本框中輸入整數(shù)后回車(chē),另一個(gè)文本框中顯示這個(gè)整數(shù)的平方。

  import javax.swing.*;

  import java.applet.*;

  import java.awt.event.*;

  public class C2802 extends Applet

  {

  static JTextField text1,text2;

  CC c=new CC();

  public void init()

  {

  text1=new JTextField(10);

  text2=new JTextField(20);

  add(text1);add(text2);

  }

  }

  class CC implements ActionListener

  {

  public void actionPerformed(ActionEvent e)

  {

  if(e.getSource()==C2802.text1)

  {

  long n=;

  C2802.text2.setText(n*n+"");

  }

  }

  } (2分)

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

  1. 寫(xiě)出下面程序的運(yùn)行結(jié)果。

  public class Class34ThreadTest

  {

  public static void main(String args[])

  {

  Hello h=new Hello();

  Thread t=new Thread(h);

  t.start();

  }

  }

  class Hello implements Runnable

  {

  int i;

  public void run()

  {

  while(true)

  {

  System.out.println("Hello"+i++);

  if(i==5) break;

  }

  }

  } (4分)

  2. 閱讀程序,畫(huà)出程序運(yùn)行后的界面并寫(xiě)出程序的功能。

  import java.awt.*;

  import javax.swing.*;

  import java.awt.event.*;

  public class Class3601 implements AdjustmentListener

  {

  JScrollBar myBar;

  JLabel label;

  public Class3601(String s)

  {

  JFrame myWin=new JFrame(s);

  Container con=myWin.getContentPane();

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

  myBar=new JScrollBar(JScrollBar.HORIZONTAL,5,20,0,300);

  label=new JLabel(""+myBar.getValue(),JLabel.CENTER);

  myBar.addAdjustmentListener(this);

  con.add(label);

  con.add(myBar);

  myWin.setSize(300,100);

  myWin.setVisible(true);

  }

  public void adjustmentValueChanged(AdjustmentEvent e)

  {

  label.setText(""+e.getAdjustable().getValue());

  }

  public static void main(String[] args)

  {

  new Class3601("Class3601");

  }

  } (4分)

  3. 閱讀程序,畫(huà)出程序運(yùn)行后初始界面并寫(xiě)出程序功能。

  import java.util.*;

  import java.awt.*;

  import javax.swing.*;

  import java.awt.event.*;

  public class Class3503 implements ActionListener

  {

  JButton button1,button2;

  JLabel label;

  JTextArea textA;

  JTextField text;

  int n;

  public Class3503()

  {

  JFrame myWin=new JFrame("Class3503");

  myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  Container con=myWin.getContentPane();

  con.setLayout(new FlowLayout());

  textA=new JTextArea("",5,10);

  JScrollPane jsp=new JScrollPane(textA);

  con.add(jsp);

  button1=new JButton("sum");

  button2=new JButton("ave");

  button1.addActionListener(this);

  button2.addActionListener(this);

  con.add(button1);con.add(button2);

  label=new JLabel("計(jì)算結(jié)果:");

  con.add(label);

  text=new JTextField(10);

  con.add(text);

  myWin.setBounds(300,300,600,200);

  myWin.setVisible(true);

  }

  int sum()

  {

  String str=textA.getText();

  StringTokenizer tokens=new StringTokenizer(str);

  n=tokens.countTokens();

  int s=0;

  for(int i=0;i<n;i++)

  {

  String t=tokens.nextToken();

  s+=Integer.parseInt(t);

  }

  return s;

  }

  float avg()

  {

  return (float)sum()/n;

  }

  public void actionPerformed(ActionEvent e)

  {

  if(e.getSource()==button1)

  {

  label.setText("輸入數(shù)的和");

  text.setText(""+sum());

  }

  if(e.getSource()==button2)

  {

  label.setText("輸入數(shù)的平均值");

  text.setText(""+avg());

  }

  }

  public static void main(String[] args)

  {

  new Class3503();

  }

  } (4分)

  4. 閱讀下列程序,寫(xiě)出程序運(yùn)行結(jié)果。

  public class Class3305

  {

  public static void main(String args[])

  {

  byte b[]=new byte[10];

  for(int k=0;k<10;k++)

  b[k]=(byte)(k+48);

  String s1=new String(b);String s2=new String(b,3,6);

  String s3=new String("ABC");String s4=new String("JAVA程序");

  byte c[]=s3.getBytes();byte d[]=s4.getBytes();

  System.out.println(s2);

  System.out.println(s3);

  System.out.println(c.length);

  System.out.println(d.length);

  }

  } (4分)

  5. 閱讀下列程序,寫(xiě)出程序運(yùn)行結(jié)果。

  import java.util.StringTokenizer;

  public class C3301

  {

  public static void main(String[] args)

  {

  String ss="public static void main";

  StringTokenizer pas=new StringTokenizer(ss," ");

  int n=pas.countTokens();

  System.out.println(n);

  String s=pas.nextToken();

  for(pas.nextToken();pas.hasMoreTokens();s=pas.nextToken())

  System.out.println(s);

  }

  }

  (4分)

  五、程序設(shè)計(jì)題(本大題共2小題,每小題6分,共12分)

  1. 設(shè)計(jì)一個(gè)應(yīng)用程序,求整數(shù)文件intfile1.txt中各行整數(shù)的和,并把和存入到另一個(gè)文件intfile2.txt中。設(shè)整數(shù)文件中全是整數(shù),整數(shù)序列被

  分成行,各行整數(shù)個(gè)數(shù)不等且用空格分隔。要求程序?qū)⑽募懈餍姓麛?shù)的和輸出在另一個(gè)文件中。 (6分)

  2. 一個(gè)Java小應(yīng)用程序,界面有兩個(gè)文本框、一個(gè)文本區(qū)和一個(gè)按鈕,兩個(gè)文本框用于輸入整數(shù),文本區(qū)用于輸出結(jié)果。按鈕表示求兩個(gè)整

  數(shù)之間的素?cái)?shù)。當(dāng)兩個(gè)文本框輸入整數(shù)后,點(diǎn)擊相應(yīng)按鈕,程序就將兩個(gè)整數(shù)之間的所有素?cái)?shù)用空格隔開(kāi)每5個(gè)一行輸出在文本區(qū)中。以下是程序的

  大部分,其中監(jiān)視按鈕事件的方法未給出,試編寫(xiě)處理按鈕事件的方法。

  注:這里是給定部分的程序,你要編寫(xiě)的是actionPerformed(ActionEvent e)方法。

  import java.applet.*;

  import javax.swing.*;

  import java.awt.event.*;

  class MyPanel extends JPanel

  {

  JTextField text1,text2;

  JTextArea textA;

  JButton button;

  MyPanel()

  {

  text1=new JTextField(10);

  text2=new JTextField(10);

  textA=new JTextArea(10,10);

  button=new JButton("求兩個(gè)整數(shù)之間的素?cái)?shù)");

  add(text1);add(text2);add(button);add(textA);

  }

  }

  public class C3802 extends Applet implements ActionListener

  {

  MyPanel panel;

  public void init()

  {

  setSize(600,200);panel=new MyPanel();add(panel);

  panel.button.addActionListener(this);

  }

  public void actionPerformed(ActionEvent e)

  {

  //這里是你要編寫(xiě)的代碼

  }

  } (6分)

  六、簡(jiǎn)答題(本大題共6小題,每小題3分,共18分)

  1. 設(shè)有整型變量x和y的值分別為5和110。請(qǐng)指出執(zhí)行了下面循環(huán)語(yǔ)句后,變量x和y的值分別是多少?

  do{x=y/x;y=y-x;}while(y>=1); (3分)

  2. 能將類(lèi)同時(shí)聲明為abstract和final嗎?為什么? (3分)

  3. 請(qǐng)寫(xiě)出一條語(yǔ)句,能夠繪制一條垂直線(xiàn)段,上端點(diǎn)坐標(biāo)為(200,300),長(zhǎng)為100像素。設(shè)調(diào)用的對(duì)象是類(lèi)型為Graphics的g。 (3分)

  4. 如果類(lèi)A1是類(lèi)A0的子類(lèi),類(lèi)A2是類(lèi)A1的子類(lèi),請(qǐng)指出以下代碼行中哪些是不合法的?

  ①A0 p1=new A1();

  ②A0 p2=new A2();

  ③A1 p3=new A0();

  ④A1 p4=new A2();

  ⑤A2 p5=new A0();

  ⑥A2 p6=new A1();

  ⑦Object ob=new A1(); (3分)

  5. 請(qǐng)寫(xiě)出一條Java語(yǔ)句,要求建立一個(gè)文件對(duì)象f,其對(duì)應(yīng)的磁盤(pán)文件是“d:\gzq.txt”。 (3分)

  6. 使用Java語(yǔ)言進(jìn)行數(shù)據(jù)庫(kù)操作,刪除數(shù)據(jù)表記錄有哪三種方案? (3分)

  Java語(yǔ)言程序設(shè)計(jì)試題參考答案

  一、單項(xiàng)選擇題 (本大題共10小題,每小題1分,共10分) 在每小題列出的四個(gè)備選項(xiàng)中只有一個(gè)是符合題目要求的,請(qǐng)將其代碼填寫(xiě)在題后的括號(hào)內(nèi)

  。錯(cuò)選、多選或未選均無(wú)分。

  1:參考答案:C

  參考解析:(P171)在互斥同步機(jī)制的實(shí)現(xiàn)中,稍有不當(dāng),就可能產(chǎn)生死鎖。Java語(yǔ)言對(duì)死鎖問(wèn)題沒(méi)有特別處理,只能由用戶(hù)在編程時(shí)注意。Java技術(shù)

  既不能發(fā)現(xiàn)死鎖也不能避免死鎖。防止死鎖的有效方法是:①線(xiàn)程因?yàn)槟硞(gè)條件未滿(mǎn)足,不能讓其繼續(xù)占有資源;②如果由多個(gè)對(duì)象需要互斥訪(fǎng)問(wèn)

  ,應(yīng)確定線(xiàn)程獲得鎖的順序,并保證整個(gè)程序以相反的順序釋放鎖。

  試題內(nèi)容:

  如果發(fā)生多個(gè)線(xiàn)程形成一個(gè)等待環(huán),這樣,所有線(xiàn)程都陷入相互等待的狀態(tài)。這種循環(huán)等待現(xiàn)象稱(chēng)為()

  A:互斥

  B:同步

  C:死鎖

  D:臨界

  2:參考答案:D

  參考解析:(P167)如果一個(gè)線(xiàn)程已進(jìn)入某個(gè)共享資源的臨界段,且還沒(méi)有使用結(jié)束,其他進(jìn)程必須等待。

  試題內(nèi)容:

  下面有關(guān)臨界段敘述錯(cuò)誤的是()

  A:多線(xiàn)程互斥使用共享資源的.程序段被稱(chēng)為臨界段

  B:臨界段是一種加鎖機(jī)制,與多線(xiàn)程共享資源有關(guān)

  C:臨界段的作用是在任何時(shí)該一個(gè)共享資源只能供一個(gè)線(xiàn)程使用

  D:如果一個(gè)線(xiàn)程已進(jìn)入某個(gè)共享資源的臨界段,且還沒(méi)有使用結(jié)束,其他進(jìn)程可搶占這個(gè)共享的資源

  3:參考答案:D

  參考解析:(P14)百分號(hào)運(yùn)算為求余運(yùn)算符,但是和前面字符串進(jìn)行的是連接運(yùn)算。

  試題內(nèi)容:

  以下程序代碼的輸出結(jié)果是()

  int x=100;

  System.out.println("5.5"+x%8);

  A:5.512

  B:5.512.5

  C:18

  D:5.54

  4:參考答案:C

  參考解析:(P77)StringTokenizer用于對(duì)單詞的分析,本題是用?a?作為分隔,這樣句子"I am a student"被分隔為三部分。countTokens()方法得到3。

  試題內(nèi)容:

  在Java程序中有代碼如下:

  System.out.println(

  (new StringTokenizer("I am a student","a")).countTokens());

  則輸出結(jié)果為()

  A:I am a student

  B:2

  C:3

  D:4

  5:參考答案:A

  參考解析:(P175)

  試題內(nèi)容:

  為8位字節(jié)流數(shù)據(jù)提供讀操作支持的類(lèi)是()

  A:FileInputStream

  B:FileOutputStrem

  C:FileReader

  D:FileWriter

  6:參考答案:A

  參考解析:(P54)本題考核知識(shí)點(diǎn)是Java抽象類(lèi)及抽象方法。抽象類(lèi)和抽象方法都是使用abstract進(jìn)行修飾。抽象類(lèi)只聲明一個(gè)模板,沒(méi)有具體實(shí)現(xiàn)的

  代碼,只有它的子類(lèi)才可能有實(shí)際意義。抽象方法只能出現(xiàn)在抽象類(lèi)中,抽象方法在抽象類(lèi)中只聲明了一個(gè)方法頭部就用分號(hào)結(jié)束了,沒(méi)有實(shí)現(xiàn)方

  法功能的代碼。使用final修飾的類(lèi)、方法和變量都是不可以再改變的。final類(lèi)不能被繼承,final方法不能被子類(lèi)的方法覆蓋,final變量相當(dāng)于一個(gè)常

  量。

  試題內(nèi)容:

  下列有關(guān)抽象類(lèi)及抽象方法的敘述錯(cuò)誤的是()

  A:使用final修飾的類(lèi)是抽象類(lèi)

  B:使用abstract修飾的方法是抽象方法

  C:抽象類(lèi)必須被繼承才能使用,抽象類(lèi)不可能有實(shí)例

  D:抽象類(lèi)可以沒(méi)有抽象方法,但有抽象方法的類(lèi)一定是抽象類(lèi)

  7:參考答案:A

  參考解析:(P201)本題考核知識(shí)點(diǎn)是DriverManager類(lèi)。DriverManager類(lèi)處理驅(qū)動(dòng)程序的加載和建立新數(shù)據(jù)連接;Statement類(lèi)用于在指定的連接中處

  理SQL語(yǔ)句;Connection類(lèi)用于處理與特定數(shù)據(jù)庫(kù)的連接;ResultSet類(lèi)用于處理SQL語(yǔ)句執(zhí)行后的查詢(xún)結(jié)果。

  試題內(nèi)容:

  在編寫(xiě)Java程序訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的過(guò)程中,用來(lái)處理驅(qū)動(dòng)程序的加載和建立新數(shù)據(jù)庫(kù)連接的類(lèi)是()

  A:DriverManager類(lèi)

  B:Statement類(lèi)

  C:Connection類(lèi)

  D:ResultSet類(lèi)

  8:參考答案:A

  參考解析:(P14)j=++i;++運(yùn)算符在前,則表示先運(yùn)算;變量i在后,則后使用。先運(yùn)算++i,這時(shí)i的值變?yōu)?1,后使用把i賦值給j,j也是11。這里的運(yùn)算

  指自增運(yùn)算。若是j=i++;++運(yùn)算符在后,則后運(yùn)算;變量i在前,則表示先使用。先使用,這時(shí)i的值是10,使用是把i賦值給j,j也是10,然后i再運(yùn)算

  ,i變?yōu)?1。結(jié)果為11和10。自減運(yùn)算是一樣的,如果把++i或i++放到更復(fù)雜的式子中也是一樣的規(guī)律。

  試題內(nèi)容:

  在Java語(yǔ)言中執(zhí)行如下語(yǔ)句后,i和j的值分別為()

  int i=10;int j=++i;

  A:11和11

  B:10和10

  C:10和11

  D:11和10

  9:參考答案:A

  參考解析:(P87)例如:當(dāng)用戶(hù)點(diǎn)擊Button對(duì)象對(duì)應(yīng)的按鈕時(shí),系統(tǒng)就將一個(gè)ActionEvent事件對(duì)象從事件激發(fā)對(duì)象傳遞到監(jiān)視器。ActionEvent對(duì)象包

  含的信息有事件發(fā)生在哪一個(gè)按鈕上以及有關(guān)事件的其他信息。

  試題內(nèi)容:

  包含當(dāng)事件發(fā)生時(shí)從源傳遞給監(jiān)視器的特定事件信息的對(duì)象是()

  A:事件對(duì)象

  B:源對(duì)象

  C:監(jiān)視器對(duì)象

  D:接口

  10:參考答案:B

  參考解析:(P140)本題考核知識(shí)點(diǎn)是繪圖模式。繪圖模式設(shè)置為異或模式后,用背景色繪圖將出現(xiàn)異或模式設(shè)置的顏色。

  試題內(nèi)容:

  在Java程序中有如下設(shè)置:setBackground(Color.blue);g.setXORMode(Color.red); g.setColor(Color.blue);g.drawLine(300,300,500,500);則線(xiàn)的顏色是()

  A:藍(lán)色

  B:紅色

  C:黃色

  D:綠色

  二、填空題 (本大題共10小題,每小題2分,共20分)請(qǐng)?jiān)诿啃☆}的空格中填上正確答案。錯(cuò)填、不填均無(wú)分。

  1:參考答案:(P111)addItemListener(ItemListener I)

  試題內(nèi)容:

  為選擇框(JCheckBox)對(duì)象設(shè)定監(jiān)視器的方法是:_____。

  2:參考答案:(P207)moveToInserRow()

  試題內(nèi)容:

  使用ResultSet對(duì)象的_____方法可將數(shù)據(jù)表游針移到插入位置,輸入數(shù)據(jù)后,用方法insertRow()插入記錄。

  3:參考答案:(P70)5

  試題內(nèi)容:

  題中橫線(xiàn)處答案為:_____

  4:參考答案:(P115)setSelectionMode()

  試題內(nèi)容:

  列表的選擇模型有單選和多選兩種,設(shè)置列表選擇模型的方法是_____。

  5:參考答案:(P167)臨界段

  試題內(nèi)容:

  多線(xiàn)程互斥使用共享資源的程序段,稱(chēng)為_(kāi)____,它是一種加鎖機(jī)制,與多線(xiàn)程共享資源有關(guān),它的作用是在任何時(shí)該一個(gè)共享資源只能供

  一個(gè)線(xiàn)程使用。

  6:參考答案:(P180)RandomAccessFile

  試題內(nèi)容:

  流在某些應(yīng)用中,不希望順序讀寫(xiě)流,而是需要采用隨機(jī)訪(fǎng)問(wèn)方式,文件隨機(jī)訪(fǎng)問(wèn)可利用_____類(lèi)來(lái)實(shí)現(xiàn)。

  7:參考答案:MalformedURLException

  [解析](P191)創(chuàng)建java.net包中URL對(duì)象可能會(huì)產(chǎn)生MalformedURLException異常,所以,創(chuàng)建URL對(duì)象的代碼應(yīng)出現(xiàn)在

  try...catch語(yǔ)句塊中,以便能捕捉網(wǎng)址錯(cuò)誤異常

  試題內(nèi)容:

  創(chuàng)建java.net包中URL對(duì)象可能會(huì)產(chǎn)生_____異常。

  8:參考答案:(P15)true

  試題內(nèi)容:

  以下代碼的輸出結(jié)果是_____。

  System.out.println(5>4||3<4);

  9:參考答案:(P180)RandomAccessFile

  試題內(nèi)容:

  Java語(yǔ)言中需要采用隨機(jī)方式對(duì)文件進(jìn)行讀寫(xiě),可利用_____類(lèi)來(lái)實(shí)現(xiàn)。

  10:參考答案:(P31)起始行

  試題內(nèi)容:

  在Java語(yǔ)言中,package語(yǔ)句必須出現(xiàn)在程序文件的_____。

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

  1:參考答案:implements ActionListener

  text1.setText("")

  ,

  試題內(nèi)容:

  某程序的界面包含了兩個(gè)按鈕button1和button2,一個(gè)文本框text。要求實(shí)現(xiàn)當(dāng)點(diǎn)擊button1時(shí),文本框中顯示“請(qǐng)認(rèn)真做題!”;當(dāng)點(diǎn)擊

  button2時(shí),文本框中內(nèi)容消失。

  import java.awt.*;

  import javax.swing.*;

  import java.awt.event.*;

  public class Class2801 extends JFrame_____

  {

  JButton butt1,butt2;

  JTextField text1;

  JFrame myWin;

  public Class2801(String s)

  {

  myWin=new JFrame(s);

  myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//關(guān)閉窗口時(shí),整個(gè)應(yīng)用程序關(guān)閉。若省略,關(guān)閉窗口時(shí)程序不終止,相當(dāng)于setVisible(false)

  Container con=myWin.getContentPane();

  con.setLayout(new FlowLayout(FlowLayout.LEFT));

  butt1=new JButton("b1");

  butt2=new JButton("b2");

  butt1.addActionListener(this);

  butt2.addActionListener(this);

  con.add(butt1);con.add(butt2);

  text1=new JTextField(20);

  con.add(text1);

  myWin.pack();

  myWin.setVisible(true);

  }

  public static void main(String[] args)

  {

  Class2801 my=new Class2801("Class2801");

  }

  public void actionPerformed(ActionEvent e)

  {

  if(e.getSource()==butt1)

  text1.setText("請(qǐng)認(rèn)真做題!");

  else

  _____;

  }

  }

  2:參考答案:JMenuItem

  getActionCommand

  ,

  試題內(nèi)容:

  以下是生成菜單項(xiàng)對(duì)象,以及菜單項(xiàng)選擇事件處理方法的代碼。要求當(dāng)菜單項(xiàng)singingItem被選中時(shí),在文本框text中輸出“唱歌菜單項(xiàng)被選

  中!”的字樣。

  …………

  singingItem=new_____("唱歌");//生成菜單項(xiàng)對(duì)象

  …………

  public void actionPerformed(ActionEvent e)

  {

  if(e.getSource()==singingItem)

  {

  text.setText(e._____()+"菜單項(xiàng)被選中!");

  }

  }

  3:參考答案:M.toString()

  s1.equals(s2)

  ,

  試題內(nèi)容:

  回文整數(shù)是指正讀和反讀都一樣的整數(shù)。方法f2705(int n)的功能是判斷十進(jìn)制整數(shù)n是否為回文整數(shù)。例如:n=123321,該方法返回值為

  true;n=123,該方法返回值為false。

  boolean f2705(int n)

  {

  Integer M=n;

  String s=_____;

  int i=0;

  while(i<s.length()/2)

  {

  String s1,s2;

  s1=s.substring(i,i+1);

  s2=s.substring(s.length()-i-1,s.length()-i);

  if(!(_____))break;

  i++;

  }

  if (i<s.length()/2) return false;

  else return true;

  }

  4:參考答案:JFrame myWin=new JFrame("Class2805");

  myWin.pack();

  ,

  試題內(nèi)容:

  程序運(yùn)行結(jié)果如下圖:五個(gè)按鈕按照緊湊方式顯示在窗口中。

  import java.awt.*;

  import javax.swing.*;

  public class Class2805

  {

  public static void main(String[] args)

  {

  _____

  myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  myWin.setBounds(100,200,400,200);

  Container con=myWin.getContentPane();

  con.setBackground(Color.red);

  con.setLayout(new FlowLayout());

  JButton button[]=new JButton[5];

  for(int i=0;i<5;i++)

  {

  button[i]=new JButton("第"+(i+1)+"個(gè)按鈕");

  con.add(button[i]);

  }

  _____

  myWin.setVisible(true);

  }

  }

  5:參考答案:text1.addActionListener(c);

  Long.parseLong(C2802.text1.getText())

  ,

  試題內(nèi)容:

  下面小應(yīng)用程序?qū)崿F(xiàn)在一個(gè)文本框中輸入整數(shù)后回車(chē),另一個(gè)文本框中顯示這個(gè)整數(shù)的平方。

  import javax.swing.*;

  import java.applet.*;

  import java.awt.event.*;

  public class C2802 extends Applet

  {

  static JTextField text1,text2;

  CC c=new CC();

  public void init()

  {

  text1=new JTextField(10);

  text2=new JTextField(20);

  add(text1);add(text2);

  _____

  }

  }

  class CC implements ActionListener

  {

  public void actionPerformed(ActionEvent e)

  {

  if(e.getSource()==C2802.text1)

  {

  long n=_____;

  C2802.text2.setText(n*n+"");

  }

  }

  }

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

  1:參考答案:輸出結(jié)果為:

  Hello0

  Hello1

  Hello2

  Hello3

  Hello4

  試題內(nèi)容:

  寫(xiě)出下面程序的運(yùn)行結(jié)果。

  public class Class34ThreadTest

  {

  public static void main(String args[])

  {

  Hello h=new Hello();

  Thread t=new Thread(h);

  t.start();

  }

  }

  class Hello implements Runnable

  {

  int i;

  public void run()

  {

  while(true)

  {

  System.out.println("Hello"+i++);

  if(i==5) break;

  }

  }

  }

  2:參考答案:程序運(yùn)行后的界面如下:

  程序的功能是:拖動(dòng)滑塊,在上面的標(biāo)簽中間顯示滑塊的當(dāng)前值,范圍為0~280。

  試題內(nèi)容:

  閱讀程序,畫(huà)出程序運(yùn)行后的界面并寫(xiě)出程序的功能。

  import java.awt.*;

  import javax.swing.*;

  import java.awt.event.*;

  public class Class3601 implements AdjustmentListener

  {

  JScrollBar myBar;

  JLabel label;

  public Class3601(String s)

  {

  JFrame myWin=new JFrame(s);

  Container con=myWin.getContentPane();

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

  myBar=new JScrollBar(JScrollBar.HORIZONTAL,5,20,0,300);

  label=new JLabel(""+myBar.getValue(),JLabel.CENTER);

  myBar.addAdjustmentListener(this);

  con.add(label);

  con.add(myBar);

  myWin.setSize(300,100);

  myWin.setVisible(true);

  }

  public void adjustmentValueChanged(AdjustmentEvent e)

  {

  label.setText(""+e.getAdjustable().getValue());

  }

  public static void main(String[] args)

  {

  new Class3601("Class3601");

  }

  }

  3:參考答案:程序運(yùn)行后初始界面如下:

  程序功能:在左邊設(shè)有滾動(dòng)條的文本區(qū)輸入若干整數(shù),單擊sum按鈕,“計(jì)算結(jié)果”標(biāo)簽顯示“輸入數(shù)的和”并在右邊文

  本框中顯示輸入數(shù)的和,;單擊ave按鈕,“計(jì)算結(jié)果”標(biāo)簽顯示“輸入數(shù)的平均值”并在右邊文本框中顯示輸入數(shù)的平

  均值。

  試題內(nèi)容:

  閱讀程序,畫(huà)出程序運(yùn)行后初始界面并寫(xiě)出程序功能。

  import java.util.*;

  import java.awt.*;

  import javax.swing.*;

  import java.awt.event.*;

  public class Class3503 implements ActionListener

  {

  JButton button1,button2;

  JLabel label;

  JTextArea textA;

  JTextField text;

  int n;

  public Class3503()

  {

  JFrame myWin=new JFrame("Class3503");

  myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  Container con=myWin.getContentPane();

  con.setLayout(new FlowLayout());

  textA=new JTextArea("",5,10);

  JScrollPane jsp=new JScrollPane(textA);

  con.add(jsp);

  button1=new JButton("sum");

  button2=new JButton("ave");

  button1.addActionListener(this);

  button2.addActionListener(this);

  con.add(button1);con.add(button2);

  label=new JLabel("計(jì)算結(jié)果:");

  con.add(label);

  text=new JTextField(10);

  con.add(text);

  myWin.setBounds(300,300,600,200);

  myWin.setVisible(true);

  }

  int sum()

  {

  String str=textA.getText();

  StringTokenizer tokens=new StringTokenizer(str);

  n=tokens.countTokens();

  int s=0;

  for(int i=0;i<n;i++)

  {

  String t=tokens.nextToken();

  s+=Integer.parseInt(t);

  }

  return s;

  }

  float avg()

  {

  return (float)sum()/n;

  }

  public void actionPerformed(ActionEvent e)

  {

  if(e.getSource()==button1)

  {

  label.setText("輸入數(shù)的和");

  text.setText(""+sum());

  }

  if(e.getSource()==button2)

  {

  label.setText("輸入數(shù)的平均值");

  text.setText(""+avg());

  }

  }

  public static void main(String[] args)

  {

  new Class3503();

  }

  }

  4:參考答案:程序運(yùn)行結(jié)果:

  345678

  ABC

  3

  8

  試題內(nèi)容:

  閱讀下列程序,寫(xiě)出程序運(yùn)行結(jié)果。

  public class Class3305

  {

  public static void main(String args[])

  {

  byte b[]=new byte[10];

  for(int k=0;k<10;k++)

  b[k]=(byte)(k+48);

  String s1=new String(b);String s2=new String(b,3,6);

  String s3=new String("ABC");String s4=new String("JAVA程序");

  byte c[]=s3.getBytes();byte d[]=s4.getBytes();

  System.out.println(s2);

  System.out.println(s3);

  System.out.println(c.length);

  System.out.println(d.length);

  }

  }

  5:參考答案:運(yùn)行結(jié)果:

  4

  static

  void

  試題內(nèi)容:

  閱讀下列程序,寫(xiě)出程序運(yùn)行結(jié)果。

  import java.util.StringTokenizer;

  public class C3301

  {

  public static void main(String[] args)

  {

  String ss="public static void main";

  StringTokenizer pas=new StringTokenizer(ss," ");

  int n=pas.countTokens();

  System.out.println(n);

  String s=pas.nextToken();

  for(pas.nextToken();pas.hasMoreTokens();s=pas.nextToken())

  System.out.println(s);

  }

  }

  五、程序設(shè)計(jì)題 (本大題共2小題,每小題6分,共12分)

  1:參考答案:程序如下:

  import java.io.*;

  import java.util.*;

  public class Class3803

  {

  public static void main(String[] args)

  {

  RandomAccessFile in,out;

  try

  {

  in=new RandomAccessFile("intfile1.txt","r");

  out=new RandomAccessFile("intfile2.txt","rw");

  String s;

  while((s=in.readLine())!=null)

  {

  StringTokenizer token=new StringTokenizer(s);

  long sum=0;

  while(token.hasMoreTokens())

  {

  sum+=Integer.parseInt(token.nextToken());

  }

  out.writeLong(sum);

  }

  in.close();out.close();

  }

  catch(FileNotFoundException e)

  {System.out.println("文件找不到!"+e);}

  catch(IOException e)

  {System.out.println("文件讀寫(xiě)錯(cuò)!"+e);}

  }

  }

  試題內(nèi)容:

  設(shè)計(jì)一個(gè)應(yīng)用程序,求整數(shù)文件intfile1.txt中各行整數(shù)的和,并把和存入到另一個(gè)文件intfile2.txt中。設(shè)整數(shù)文件中全是整數(shù),整數(shù)序列被分

  成行,各行整數(shù)個(gè)數(shù)不等且用空格分隔。要求程序?qū)⑽募懈餍姓麛?shù)的和輸出在另一個(gè)文件中。

  2:參考答案:long m,n;

  m=Long.parseLong(panel.text1.getText());

  n=Long.parseLong(panel.text2.getText());

  if (m>n)

  {long t=m;m=n;n=t;}

  panel.textA.setText("");

  int i=0;

  for(long i=m;i<=n;i++)

  {

  long j;

  for(j=2;j<i;j++)

  if (i%j==0)break;

  if(j==i)

  {

  panel.textA.append(" "+i);

  i++;

  if(i%5==0)

  panel.textA.append("\n");

  }

  }

  試題內(nèi)容:

  一個(gè)Java小應(yīng)用程序,界面有兩個(gè)文本框、一個(gè)文本區(qū)和一個(gè)按鈕,兩個(gè)文本框用于輸入整數(shù),文本區(qū)用于輸出結(jié)果。按鈕表示求兩個(gè)整數(shù)

  之間的素?cái)?shù)。當(dāng)兩個(gè)文本框輸入整數(shù)后,點(diǎn)擊相應(yīng)按鈕,程序就將兩個(gè)整數(shù)之間的所有素?cái)?shù)用空格隔開(kāi)每5個(gè)一行輸出在文本區(qū)中。以下是程序的大

  部分,其中監(jiān)視按鈕事件的方法未給出,試編寫(xiě)處理按鈕事件的方法。

  注:這里是給定部分的程序,你要編寫(xiě)的是actionPerformed(ActionEvent e)方法。

  import java.applet.*;

  import javax.swing.*;

  import java.awt.event.*;

  class MyPanel extends JPanel

  {

  JTextField text1,text2;

  JTextArea textA;

  JButton button;

  MyPanel()

  {

  text1=new JTextField(10);

  text2=new JTextField(10);

  textA=new JTextArea(10,10);

  button=new JButton("求兩個(gè)整數(shù)之間的素?cái)?shù)");

  add(text1);add(text2);add(button);add(textA);

  }

  }

  public class C3802 extends Applet implements ActionListener

  {

  MyPanel panel;

  public void init()

  {

  setSize(600,200);panel=new MyPanel();add(panel);

  panel.button.addActionListener(this);

  }

  public void actionPerformed(ActionEvent e)

  {

  //這里是你要編寫(xiě)的代碼

  }

  }

  六、簡(jiǎn)答題 (本大題共6小題,每小題3分,共18分)

  1:參考答案:(P35)x=18,y=0

  試題內(nèi)容:

  設(shè)有整型變量x和y的值分別為5和110。請(qǐng)指出執(zhí)行了下面循環(huán)語(yǔ)句后,變量x和y的值分別是多少?

  do{x=y/x;y=y-x;}while(y>=1);

  2:參考答案:(P54)不能。Final類(lèi)是不能被再繼承的類(lèi),即它不能再有子類(lèi)。而abstract類(lèi)稱(chēng)為抽象類(lèi),抽象類(lèi)只聲明一種模板,

  是沒(méi)有具體實(shí)現(xiàn)代碼的類(lèi),只有它的子類(lèi)才可能是有實(shí)際意義的類(lèi),所有抽象類(lèi)必須被繼承,必須有子類(lèi),然后在子類(lèi)

  中可以實(shí)現(xiàn)超類(lèi)的抽象方法,否則不可能有實(shí)例。所以abstract和final不可能同時(shí)用來(lái)修飾一個(gè)類(lèi)。

  試題內(nèi)容:

  能將類(lèi)同時(shí)聲明為abstract和final嗎?為什么?

  3:參考答案:(P140)g.drawLine(200,300,200,400)

  試題內(nèi)容:

  請(qǐng)寫(xiě)出一條語(yǔ)句,能夠繪制一條垂直線(xiàn)段,上端點(diǎn)坐標(biāo)為(200,300),長(zhǎng)為100像素。設(shè)調(diào)用的對(duì)象是類(lèi)型為Graphics的g。

  4:參考答案:(P51)③⑤⑥不合法。

  試題內(nèi)容:

  如果類(lèi)A1是類(lèi)A0的子類(lèi),類(lèi)A2是類(lèi)A1的子類(lèi),請(qǐng)指出以下代碼行中哪些是不合法的?

  ①A0 p1=new A1();

  ②A0 p2=new A2();

  ③A1 p3=new A0();

  ④A1 p4=new A2();

  ⑤A2 p5=new A0();

  ⑥A2 p6=new A1();

  ⑦Object ob=new A1();

  5:參考答案:(P175)File f=new File("d:\\gzq.txt");

  試題內(nèi)容:

  請(qǐng)寫(xiě)出一條Java語(yǔ)句,要求建立一個(gè)文件對(duì)象f,其對(duì)應(yīng)的磁盤(pán)文件是“d:\gzq.txt”。

  6:參考答案:(P208)

  (1)使用Statement對(duì)象;

  (2)使用ResultSet對(duì)象;

  (3)使用PrepareStatement對(duì)象。


【Java語(yǔ)言程序設(shè)計(jì)試題附參考答案】相關(guān)文章:

1.Java語(yǔ)言程序設(shè)計(jì)試題及答案

2.Java程序設(shè)計(jì)模擬試題及參考答案

3.C語(yǔ)言程序設(shè)計(jì)試題附答案

4.Java語(yǔ)言程序設(shè)計(jì)模擬試題及答案

5.Java語(yǔ)言程序設(shè)計(jì)試題及答案(六)

6.Java語(yǔ)言程序設(shè)計(jì)試題及答案(八)

7.Java語(yǔ)言程序設(shè)計(jì)試題及答案(九)

8.C語(yǔ)言程序設(shè)計(jì)期末試題附答案