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语言程序设计试题附参考答案】相关文章: