Java语言程序设计试题附参考答案

时间:2017-04-24 09:08:51 java试题 我要投稿

Java语言程序设计试题附参考答案

  Java语言程序设计详细介绍了Java语言的基本概念和编程方法,同时深入介绍了Java的高级特性。以下是由阳光网小编整理关于Java语言程序设计试题的内容,希望大家喜欢!

Java语言程序设计试题附参考答案

  Java语言程序设计试题附参考答案

  一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求

  的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

  1. 如果发生多个线程形成一个等待环,这样,所有线程都陷入相互等待的状态。这种循环等待现象称为() (1分)

  A:互斥

  B:同步

  C:死锁

  D:临界

  2. 下面有关临界段叙述错误的是() (1分)

  A:多线程互斥使用共享资源的程序段被称为临界段

  B:临界段是一种加锁机制,与多线程共享资源有关

  C:临界段的作用是在任何时该一个共享资源只能供一个线程使用

  D:如果一个线程已进入某个共享资源的临界段,且还没有使用结束,其他进程可抢占这个共享的资源

  3. 以下程序代码的输出结果是()

  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());

  则输出结果为() (1分)

  A:I am a student

  B:2

  C:3

  D:4

  5. 为8位字节流数据提供读操作支持的类是() (1分)

  A:FileInputStream

  B:FileOutputStrem

  C:FileReader

  D:FileWriter

  6. 下列有关抽象类及抽象方法的叙述错误的是() (1分)

  A:使用final修饰的类是抽象类

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

  C:抽象类必须被继承才能使用,抽象类不可能有实例

  D:抽象类可以没有抽象方法,但有抽象方法的类一定是抽象类

  7. 在编写Java程序访问数据库的过程中,用来处理驱动程序的加载和建立新数据库连接的类是() (1分)

  A:DriverManager类

  B:Statement类

  C:Connection类

  D:ResultSet类

  8. 在Java语言中执行如下语句后,i和j的值分别为()

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

  A:11和11

  B:10和10

  C:10和11

  D:11和10

  9. 包含当事件发生时从源传递给监视器的特定事件信息的对象是() (1分)

  A:事件对象

  B:源对象

  C:监视器对象

  D:接口

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

  500);则线的颜色是() (1分)

  A:蓝色

  B:红色

  C:黄色

  D:绿色

  二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。

  1. 为选择框(JCheckBox)对象设定监视器的方法是:。 (2分)

  2. 使用ResultSet对象的方法可将数据表游针移到插入位置,输入数据后,用方法insertRow()插入记录。 (2分)

  3. 题中横线处答案为: (2分)

  4. 列表的选择模型有单选和多选两种,设置列表选择模型的方法是。 (2分)

  5. 多线程互斥使用共享资源的程序段,称为,它是一种加锁机制,与多线程共享资源有关,它的作用是在任何时该一个共享资源只能供一个线程使

  用。 (2分)

  6. 流在某些应用中,不希望顺序读写流,而是需要采用随机访问方式,文件随机访问可利用类来实现。 (2分)

  7. 创建java.net包中URL对象可能会产生异常。 (2分)

  8. 以下代码的输出结果是。

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

  9. Java语言中需要采用随机方式对文件进行读写,可利用类来实现。 (2分)

  10. 在Java语言中,package语句必须出现在程序文件的。 (2分)

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

  1. 某程序的界面包含了两个按钮button1和button2,一个文本框text。要求实现当点击button1时,文本框中显示“请认真做题!”;当点击button2

  时,文本框中内容消失。

  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);//关闭窗口时,整个应用程序关闭。若省略,关闭窗口时程序不终止,相当于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("请认真做题!");

  else

  ;

  }

  } (2分)

  2. 以下是生成菜单项对象,以及菜单项选择事件处理方法的代码。要求当菜单项singingItem被选中时,在文本框text中输出“唱歌菜单项被选中!”

  的字样。

  …………

  singingItem=new("唱歌");//生成菜单项对象

  …………

  public void actionPerformed(ActionEvent e)

  {

  if(e.getSource()==singingItem)

  {

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

  }

  } (2分)

  3. 回文整数是指正读和反读都一样的整数。方法f2705(int n)的功能是判断十进制整数n是否为回文整数。例如: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. 程序运行结果如下图:五个按钮按照紧凑方式显示在窗口中。

  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)+"个按钮");

  con.add(button[i]);

  }

  myWin.setVisible(true);

  }

  } (2分)

  5. 下面小应用程序实现在一个文本框中输入整数后回车,另一个文本框中显示这个整数的平方。

  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. 写出下面程序的运行结果。

  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. 阅读程序,画出程序运行后的界面并写出程序的功能。

  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. 阅读程序,画出程序运行后初始界面并写出程序功能。

  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("计算结果:");

  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("输入数的和");

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

  }

  if(e.getSource()==button2)

  {

  label.setText("输入数的平均值");

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

  }

  }

  public static void main(String[] args)

  {

  new Class3503();

  }

  } (4分)

  4. 阅读下列程序,写出程序运行结果。

  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. 阅读下列程序,写出程序运行结果。

  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分)

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

  1. 设计一个应用程序,求整数文件intfile1.txt中各行整数的和,并把和存入到另一个文件intfile2.txt中。设整数文件中全是整数,整数序列被

  分成行,各行整数个数不等且用空格分隔。要求程序将文件中各行整数的和输出在另一个文件中。 (6分)

  2. 一个Java小应用程序,界面有两个文本框、一个文本区和一个按钮,两个文本框用于输入整数,文本区用于输出结果。按钮表示求两个整

  数之间的素数。当两个文本框输入整数后,点击相应按钮,程序就将两个整数之间的所有素数用空格隔开每5个一行输出在文本区中。以下是程序的

  大部分,其中监视按钮事件的方法未给出,试编写处理按钮事件的方法。

  注:这里是给定部分的程序,你要编写的是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("求两个整数之间的素数");

  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)

  {

  //这里是你要编写的代码

  }

  } (6分)

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

  1. 设有整型变量x和y的值分别为5和110。请指出执行了下面循环语句后,变量x和y的值分别是多少?

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

  2. 能将类同时声明为abstract和final吗?为什么? (3分)

  3. 请写出一条语句,能够绘制一条垂直线段,上端点坐标为(200,300),长为100像素。设调用的对象是类型为Graphics的g。 (3分)

  4. 如果类A1是类A0的子类,类A2是类A1的子类,请指出以下代码行中哪些是不合法的?

  ①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. 请写出一条Java语句,要求建立一个文件对象f,其对应的磁盘文件是“d:\gzq.txt”。 (3分)

  6. 使用Java语言进行数据库操作,删除数据表记录有哪三种方案? (3分)

  Java语言程序设计试题参考答案

  一、单项选择题 (本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内

  。错选、多选或未选均无分。

  1:参考答案:C

  参考解析:(P171)在互斥同步机制的实现中,稍有不当,就可能产生死锁。Java语言对死锁问题没有特别处理,只能由用户在编程时注意。Java技术

  既不能发现死锁也不能避免死锁。防止死锁的有效方法是:①线程因为某个条件未满足,不能让其继续占有资源;②如果由多个对象需要互斥访问

  ,应确定线程获得锁的顺序,并保证整个程序以相反的顺序释放锁。

  试题内容:

  如果发生多个线程形成一个等待环,这样,所有线程都陷入相互等待的状态。这种循环等待现象称为()

  A:互斥

  B:同步

  C:死锁

  D:临界

  2:参考答案:D

  参考解析:(P167)如果一个线程已进入某个共享资源的临界段,且还没有使用结束,其他进程必须等待。

  试题内容:

  下面有关临界段叙述错误的是()

  A:多线程互斥使用共享资源的.程序段被称为临界段

  B:临界段是一种加锁机制,与多线程共享资源有关

  C:临界段的作用是在任何时该一个共享资源只能供一个线程使用

  D:如果一个线程已进入某个共享资源的临界段,且还没有使用结束,其他进程可抢占这个共享的资源

  3:参考答案:D

  参考解析:(P14)百分号运算为求余运算符,但是和前面字符串进行的是连接运算。

  试题内容:

  以下程序代码的输出结果是()

  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用于对单词的分析,本题是用?a?作为分隔,这样句子"I am a student"被分隔为三部分。countTokens()方法得到3。

  试题内容:

  在Java程序中有代码如下:

  System.out.println(

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

  则输出结果为()

  A:I am a student

  B:2

  C:3

  D:4

  5:参考答案:A

  参考解析:(P175)

  试题内容:

  为8位字节流数据提供读操作支持的类是()

  A:FileInputStream

  B:FileOutputStrem

  C:FileReader

  D:FileWriter

  6:参考答案:A

  参考解析:(P54)本题考核知识点是Java抽象类及抽象方法。抽象类和抽象方法都是使用abstract进行修饰。抽象类只声明一个模板,没有具体实现的

  代码,只有它的子类才可能有实际意义。抽象方法只能出现在抽象类中,抽象方法在抽象类中只声明了一个方法头部就用分号结束了,没有实现方

  法功能的代码。使用final修饰的类、方法和变量都是不可以再改变的。final类不能被继承,final方法不能被子类的方法覆盖,final变量相当于一个常

  量。

  试题内容:

  下列有关抽象类及抽象方法的叙述错误的是()

  A:使用final修饰的类是抽象类

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

  C:抽象类必须被继承才能使用,抽象类不可能有实例

  D:抽象类可以没有抽象方法,但有抽象方法的类一定是抽象类

  7:参考答案:A

  参考解析:(P201)本题考核知识点是DriverManager类。DriverManager类处理驱动程序的加载和建立新数据连接;Statement类用于在指定的连接中处

  理SQL语句;Connection类用于处理与特定数据库的连接;ResultSet类用于处理SQL语句执行后的查询结果。

  试题内容:

  在编写Java程序访问数据库的过程中,用来处理驱动程序的加载和建立新数据库连接的类是()

  A:DriverManager类

  B:Statement类

  C:Connection类

  D:ResultSet类

  8:参考答案:A

  参考解析:(P14)j=++i;++运算符在前,则表示先运算;变量i在后,则后使用。先运算++i,这时i的值变为11,后使用把i赋值给j,j也是11。这里的运算

  指自增运算。若是j=i++;++运算符在后,则后运算;变量i在前,则表示先使用。先使用,这时i的值是10,使用是把i赋值给j,j也是10,然后i再运算

  ,i变为11。结果为11和10。自减运算是一样的,如果把++i或i++放到更复杂的式子中也是一样的规律。

  试题内容:

  在Java语言中执行如下语句后,i和j的值分别为()

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

  A:11和11

  B:10和10

  C:10和11

  D:11和10

  9:参考答案:A

  参考解析:(P87)例如:当用户点击Button对象对应的按钮时,系统就将一个ActionEvent事件对象从事件激发对象传递到监视器。ActionEvent对象包

  含的信息有事件发生在哪一个按钮上以及有关事件的其他信息。

  试题内容:

  包含当事件发生时从源传递给监视器的特定事件信息的对象是()

  A:事件对象

  B:源对象

  C:监视器对象

  D:接口

  10:参考答案:B

  参考解析:(P140)本题考核知识点是绘图模式。绘图模式设置为异或模式后,用背景色绘图将出现异或模式设置的颜色。

  试题内容:

  在Java程序中有如下设置:setBackground(Color.blue);g.setXORMode(Color.red); g.setColor(Color.blue);g.drawLine(300,300,500,500);则线的颜色是()

  A:蓝色

  B:红色

  C:黄色

  D:绿色

  二、填空题 (本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。

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

  试题内容:

  为选择框(JCheckBox)对象设定监视器的方法是:_____。

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

  试题内容:

  使用ResultSet对象的_____方法可将数据表游针移到插入位置,输入数据后,用方法insertRow()插入记录。

  3:参考答案:(P70)5

  试题内容:

  题中横线处答案为:_____

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

  试题内容:

  列表的选择模型有单选和多选两种,设置列表选择模型的方法是_____。

  5:参考答案:(P167)临界段

  试题内容:

  多线程互斥使用共享资源的程序段,称为_____,它是一种加锁机制,与多线程共享资源有关,它的作用是在任何时该一个共享资源只能供

  一个线程使用。

  6:参考答案:(P180)RandomAccessFile

  试题内容:

  流在某些应用中,不希望顺序读写流,而是需要采用随机访问方式,文件随机访问可利用_____类来实现。

  7:参考答案:MalformedURLException

  [解析](P191)创建java.net包中URL对象可能会产生MalformedURLException异常,所以,创建URL对象的代码应出现在

  try...catch语句块中,以便能捕捉网址错误异常

  试题内容:

  创建java.net包中URL对象可能会产生_____异常。

  8:参考答案:(P15)true

  试题内容:

  以下代码的输出结果是_____。

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

  9:参考答案:(P180)RandomAccessFile

  试题内容:

  Java语言中需要采用随机方式对文件进行读写,可利用_____类来实现。

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

  试题内容:

  在Java语言中,package语句必须出现在程序文件的_____。

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

  1:参考答案:implements ActionListener

  text1.setText("")

  ,

  试题内容:

  某程序的界面包含了两个按钮button1和button2,一个文本框text。要求实现当点击button1时,文本框中显示“请认真做题!”;当点击

  button2时,文本框中内容消失。

  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);//关闭窗口时,整个应用程序关闭。若省略,关闭窗口时程序不终止,相当于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("请认真做题!");

  else

  _____;

  }

  }

  2:参考答案:JMenuItem

  getActionCommand

  ,

  试题内容:

  以下是生成菜单项对象,以及菜单项选择事件处理方法的代码。要求当菜单项singingItem被选中时,在文本框text中输出“唱歌菜单项被选

  中!”的字样。

  …………

  singingItem=new_____("唱歌");//生成菜单项对象

  …………

  public void actionPerformed(ActionEvent e)

  {

  if(e.getSource()==singingItem)

  {

  text.setText(e._____()+"菜单项被选中!");

  }

  }

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

  s1.equals(s2)

  ,

  试题内容:

  回文整数是指正读和反读都一样的整数。方法f2705(int n)的功能是判断十进制整数n是否为回文整数。例如: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();

  ,

  试题内容:

  程序运行结果如下图:五个按钮按照紧凑方式显示在窗口中。

  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)+"个按钮");

  con.add(button[i]);

  }

  _____

  myWin.setVisible(true);

  }

  }

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

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

  ,

  试题内容:

  下面小应用程序实现在一个文本框中输入整数后回车,另一个文本框中显示这个整数的平方。

  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:参考答案:输出结果为:

  Hello0

  Hello1

  Hello2

  Hello3

  Hello4

  试题内容:

  写出下面程序的运行结果。

  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:参考答案:程序运行后的界面如下:

  程序的功能是:拖动滑块,在上面的标签中间显示滑块的当前值,范围为0~280。

  试题内容:

  阅读程序,画出程序运行后的界面并写出程序的功能。

  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:参考答案:程序运行后初始界面如下:

  程序功能:在左边设有滚动条的文本区输入若干整数,单击sum按钮,“计算结果”标签显示“输入数的和”并在右边文

  本框中显示输入数的和,;单击ave按钮,“计算结果”标签显示“输入数的平均值”并在右边文本框中显示输入数的平

  均值。

  试题内容:

  阅读程序,画出程序运行后初始界面并写出程序功能。

  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("计算结果:");

  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("输入数的和");

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

  }

  if(e.getSource()==button2)

  {

  label.setText("输入数的平均值");

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

  }

  }

  public static void main(String[] args)

  {

  new Class3503();

  }

  }

  4:参考答案:程序运行结果:

  345678

  ABC

  3

  8

  试题内容:

  阅读下列程序,写出程序运行结果。

  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:参考答案:运行结果:

  4

  static

  void

  试题内容:

  阅读下列程序,写出程序运行结果。

  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);

  }

  }

  五、程序设计题 (本大题共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("文件读写错!"+e);}

  }

  }

  试题内容:

  设计一个应用程序,求整数文件intfile1.txt中各行整数的和,并把和存入到另一个文件intfile2.txt中。设整数文件中全是整数,整数序列被分

  成行,各行整数个数不等且用空格分隔。要求程序将文件中各行整数的和输出在另一个文件中。

  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");

  }

  }

  试题内容:

  一个Java小应用程序,界面有两个文本框、一个文本区和一个按钮,两个文本框用于输入整数,文本区用于输出结果。按钮表示求两个整数

  之间的素数。当两个文本框输入整数后,点击相应按钮,程序就将两个整数之间的所有素数用空格隔开每5个一行输出在文本区中。以下是程序的大

  部分,其中监视按钮事件的方法未给出,试编写处理按钮事件的方法。

  注:这里是给定部分的程序,你要编写的是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("求两个整数之间的素数");

  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)

  {

  //这里是你要编写的代码

  }

  }

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

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

  试题内容:

  设有整型变量x和y的值分别为5和110。请指出执行了下面循环语句后,变量x和y的值分别是多少?

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

  2:参考答案:(P54)不能。Final类是不能被再继承的类,即它不能再有子类。而abstract类称为抽象类,抽象类只声明一种模板,

  是没有具体实现代码的类,只有它的子类才可能是有实际意义的类,所有抽象类必须被继承,必须有子类,然后在子类

  中可以实现超类的抽象方法,否则不可能有实例。所以abstract和final不可能同时用来修饰一个类。

  试题内容:

  能将类同时声明为abstract和final吗?为什么?

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

  试题内容:

  请写出一条语句,能够绘制一条垂直线段,上端点坐标为(200,300),长为100像素。设调用的对象是类型为Graphics的g。

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

  试题内容:

  如果类A1是类A0的子类,类A2是类A1的子类,请指出以下代码行中哪些是不合法的?

  ①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");

  试题内容:

  请写出一条Java语句,要求建立一个文件对象f,其对应的磁盘文件是“d:\gzq.txt”。

  6:参考答案:(P208)

  (1)使用Statement对象;

  (2)使用ResultSet对象;

  (3)使用PrepareStatement对象。


【Java语言程序设计试题附参考答案】相关文章:

1.Java语言程序设计试题及答案

2.Java程序设计模拟试题及参考答案

3.C语言程序设计试题附答案

4.Java语言程序设计模拟试题及答案

5.Java语言程序设计试题及答案(六)

6.Java语言程序设计试题及答案(八)

7.Java语言程序设计试题及答案(九)

8.C语言程序设计期末试题附答案