Java语言程序设计试题及答案
Java语言程序设计全书从Java语言的基本特点入手,详细介绍了Java语言的基本概念和编程方法,同时深入介绍了Java的高级特性。以下是由阳光网小编整理关于Java语言程序设计试题的内容,希望大家喜欢!
Java语言程序设计试题及答案
一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1. 下列正确的句子是() (1分)
A:float 3.14;
B:byte i=225;
C:int k=33L;
D:int p[][];
2. 当使用FileInputStream类中的read()方法时,如果没有读入一个字节数据时,返回值为()
A:0
B:-1
C:true
D:false
3. 能够支持 javadoc 命令的文档注释形式是() (1分)
A:/**...//
B:/*...*/
C://
D:/**...*/
4. 以下程序代码的输出结果是()
int x=100;
System.out.println(5.5+x/8); (1分)
A:18
B:17.5
C:9.5
D:5.512
5. 当用户在文件对话框中选择了文件并按下了“打开/保存”按钮后,程序可利用一个方法取得文件对象,并针对这个对象使用getName()取得文件名,使用getPath()取得文件的路径,则这个方法是() (1分)
A:getFile()
B:getSelectFile()
C:getSelectedFile()
D:getDescription()
6. 在 Java 中,表示换行符的转义字符是() (1分)
A:A
B:B
C:C
D:D
7. 一个实现Runnabel接口的类必须要实现的方法是() (1分)
A:start()
B:run()
C:sleep()
D:init()
8. 下列有关Java的叙述错误的是() (1分)
A:强类型语言
B:与平台无关
C:可以使用汉字变量名
D:不检查数组下标越界
9. 下列有关数组的叙述错误的是() (1分)
A:数组是将一组相同类型的数据顺序存储,组成一种复合数据类型
B:在Java语言中,数组是一种引用类型,数组名如同对象名一样,是一种引用
C:对于多维数组,从最高维开始,可以对每一维分配不等长的空间
D:在Java语言中,数组元素可以互相赋值,而数组名不能直接赋值
10. 当线程A使用某个对象,而此对象又需要线程B修改后才能符合A线程的需要,这时线程A就要等待线程B完成修改工作,这种现象称为() (1分)
A:线程的同步
B:线程的互斥
C:线程的调度
D:线程的就绪
二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。
1. 在switch 语句中,通过语句退出 switch 语句,使程序从整个 switch 语句后面的第一条语句处开始执行。 (2分)break
2. 在 Java 中所有实现的多维数组,实际上是由一维数组构成的。 (2分)
3. 为实现线程同步,Java语言提供了notify()、notifyAll()和Sycgised()三个方法供线程在临界段中使用。 (2分)
4. Java语言使用Unicode字符集,共有65536个字符。 (2分)
5. 闰年的条件是:每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。如果年份用整数类型变量y表示,则y年是闰年的条件用逻辑表达式可描述为。 (2分)
y%4&&y!%100||y%400
6. Java语言中,逻辑类型用boolean关键字标识,也称布尔类型。 (2分)
7. Java程序能实现多线程并行执行,为了让一个线程暂停执行,其他线程有机会被执行,可对要暂停的线程执行wait()方法。 (2分)
8. Java应用程序和小应用程序都由一个或多个扩展名为的class文件组成。 (2分)
9. 将显示区域按行、列划分成一个个大小相等的格子,组件依次放入这些格子中。GridLayout (2分)
10. 键盘事件的接口是。keyListener (2分)
三、程序填空题(本大题共5小题,每空2分,共20分)
1. 下面小应用程序启动后自动播放一个声音文件“1.wav”。
import java.applet.*;
public class Class3001 extends Applet
{
public void start()
{
=getAudioClip(getCodeBase(),"1.wav");
clip.;
}
} (2分)
2. 下列程序的功能是每隔一秒钟输出一个字符串“Hello!”。
public class C3101 implements Runnable
{
public static void main(String args[])
{
C3101 t=new C3101();
Thread tt=new Thread(t);
tt.start();
}
public void run()
{
for(int i=0;i<10;i++)
{
try{sleep(1000);
}catch(Exception e){e.printStackTrace();}
System.out.println("Hello");
}
}
} (2分)
3. 设计一个JFrame窗口,窗口中心有一个文本区。另有4个菜单,每个菜单都有菜单项,每个菜单项都对应有快捷键,选择某个菜单项时,窗口中心的文本区显示相应信息。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class C2902 implements ActionListener
{
JTextField text=new JTextField(20);
String t[]={"文件","编辑","格式","帮助"};
Menu menu[]=new Menu[4];
String s[]={"打开","保存","复制","粘贴","字体","段落","小助手","关于"};
MenuItem jmi[]=new MenuItem[8];
C2902()
{
JFrame myWin=new JFrame("Ex0606");
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Container con=myWin.getContentPane();
con.add(text,"Center");
text.setEditable(false);
myWin.setMenuBar(jmb);
int i;
for(i=0;i<4;i++)//生成四个菜单
{
menu[i]=new Menu(t[i]);
jmb.add(menu[i]);
}
for(i=0;i<8;i++)//每个菜单中放两个菜单项
{
jmi[i]=new MenuItem(s[i]);
menu[i/2].add(jmi[i]);
jmi[i].addActionListener(this);
jmi[i].(new MenuShortcut(65+i));//设快捷键
}
myWin.setBounds(300,200,400,200);
myWin.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
text.setText("你选择了:"+e.getActionCommand()+"菜单项.");
}
public static void main(String[] args)
{
new C2902();
}
} (2分)
4. 下面应用程序,绘制一个红色五角星。请完成程序。
import java.awt.*;
import javax.swing.*;
class MyPanel extends JPanel
{
public void
{
int r=100;
int x1=100,
x2=(int)(r*(1-Math.cos((18*Math.PI)/180))),
x3=(int)(r*(1+Math.cos((18*Math.PI)/180))),
x4=(int)(r*(1-Math.cos((54*Math.PI)/180))),
x5=(int)(r*(1+Math.cos((54*Math.PI)/180))),
y1=0,
y2=(int)(r*(1-Math.sin((18*Math.PI)/180))),
y3=(int)(r*(1-Math.sin((18*Math.PI)/180))),
y4=(int)(r*(1+Math.sin((54*Math.PI)/180))),
y5=(int)(r*(1+Math.sin((54*Math.PI)/180)));
g.drawOval(0,0,200,200);
g.drawLine(x4,y4,x1,y1);g.drawLine(x1,y1,x5,y5);
g.drawLine(x5,y5,x2,y2);g.drawLine(x2,y2,x3,y3);
g.drawLine(x3,y3,x4,y4);
}
}
public class C3002 extends JFrame
{
C3002()
{
super("C3002");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(new MyPanel());
setSize(210,242);
setVisible(true);
}
public static void main(String[] args)
{
new C3002();
}
} (2分)
5. 下面程序运行后,连续输出20个相同的单词。请完成程序。
public class C3102
{
public static void main(String args[])
{
t.start();
}
}
class Hello implements Runnable
{
int i=0;
public void run()
{
while()
{
System.out.print(i+":Hello");
}
}
} (2分)
四、程序分析题(本大题共5小题,每小题4分,共20分)
1. 写出下面程序的运行结果。
public class Test extends TT
{
public static void main(String args[])
{
Test t=new Test("Tom.");
}
public Test(String s)
{
super(s);
System.out.print("How are you?");
}
public Test()
{
this("I am Jack.");
}
}
class TT
{
public TT()
{
System.out.print("Hi!");
}
public TT(String s)
{
this();
System.out.print("I am "+s);
}
} (4分)
2. 阅读下面程序,写出程序功能。
import java.applet.*;import java.awt.*;
public class Class3602 extends Applet implements Runnable
{
Thread redBall,blueBall;Graphics redPen,bluePen;
int blueSeta=0,redSeta=0;
public void init()
{
setSize(250,200);
redBall=new Thread(this);blueBall=new Thread(this);
redPen=getGraphics();bluePen=getGraphics();
redPen.setColor(Color.red);bluePen.setColor(Color.blue);
setBackground(Color.gray);
}
public void start()
{
redBall.start();blueBall.start();
}
public void run()
{
int x,y;
while(true)
{
if(Thread.currentThread()==redBall)
{
x=(int)(80.0*Math.cos(3.1415926/180.0*redSeta));
y=(int)(80.0*Math.sin(3.1415926/180.0*redSeta));
redPen.setColor(Color.gray);
redPen.fillOval(100+x,100+y,10,10);
redSeta +=3;
if(redSeta>=360) redSeta=0;
x=(int)(80.0*Math.cos(3.1415926/180.0*redSeta));
y=(int)(80.0*Math.sin(3.1415926/180.0*redSeta));
redPen.setColor(Color.red);
redPen.fillOval(100+x,100+y,10,10);
try {redBall.sleep(20);}
catch(InterruptedException e){}
}
else if (Thread.currentThread()==blueBall)
{
x=(int)(80.0*Math.cos(3.1415926/180.0*blueSeta));
y=(int)(80.0*Math.sin(3.1415926/180.0*blueSeta));
bluePen.setColor(Color.gray);
bluePen.fillOval(150+x,100+y,10,10);
blueSeta-=3;
if(blueSeta<=-360) blueSeta=0;
x=(int)(80.0*Math.cos(3.1415926/180.0*blueSeta));
y=(int)(80.0*Math.sin(3.1415926/180.0*blueSeta));
bluePen.setColor(Color.blue);
bluePen.fillOval(150+x,100+y,10,10);
try {blueBall.sleep(40);}
catch(InterruptedException e){}
}
}
}
} (4分)
3. 阅读下列程序,写出运行结果。
public class Class3205
{
public static void main(String[] args)
{
String str1="abc";
String str2="Abc";
String str3="abc";
String str4=new String("abc");
System.out.println(str1==str2);
System.out.println(str1.equals(str2));
System.out.println(str1==str3);
System.out.println(str1.equals(str3));
System.out.println(str1==str4);
System.out.println(str1.equals(str4));
}
} (4分)
4. 阅读下列程序,写出程序功能。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Class3505 implements AdjustmentListener
{
JScrollBar js;
JLabel label;
int size=20;
public Class3505()
{
JFrame myWin=new JFrame("Class3505");
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myWin.setBounds(200,200,400,400);
Container con=myWin.getContentPane();
js=new JScrollBar(JScrollBar.HORIZONTAL,20,10,1,210);
js.setSize(new Dimension(395,50));
js.addAdjustmentListener(this);
con.add(js);
label=new JLabel("Class3505");
con.add(label);
myWin.setVisible(true);
}
public void adjustmentValueChanged(AdjustmentEvent e)
{
size=e.getValue();
Font f=new Font(label.getFont().getName(),
label.getFont().getStyle(),size);
label.setFont(f);
}
public static void main(String[]args)
{
new Class3505();
}
} (4分)
5. 阅读下面程序,写出程序运行结果。
class printer
{
synchronized void printchar(char ch)
{
for (int i=1;i<=3;i++)System.out.print(ch);
System.out.println();
}
}
class printerThread extends Thread
{
printer ptr;
char ch;
printerThread(printer ptr,char ch)
{
this.ptr=ptr;
this.ch=ch;
}
public void run()
{
for (int i=1; i<=3;i++)ptr.printchar(ch);
}
}
public class Class3605
{
public static void main(String[] args)
{
printer ptr=new printer();
printerThread pt1=new printerThread(ptr,?A?);
printerThread pt2=new printerThread(ptr,?B?);
pt1.start();
pt2.start();
}
} (4分)
五、程序设计题(本大题共2小题,每小题6分,共12分)
1. 编写一个小应用程序,在小应用程序中有两个线程,一个负责模仿圆转运动,另一个模仿椭圆运动。已给出部分代码,请完成程序。
import java.awt.*;
import java.applet.*;
public class Class3804 extends Applet implements Runnable
{
Thread thread1,thread2;
Graphics g;
public void init()
{
setSize(500,500);
setBackground(Color.gray);
g=getGraphics();
g.setColor(Color.red);
g.setXORMode(Color.blue);
thread1=new Thread(this);
thread2=new Thread(this);
}
public void start()
{
thread1.start();
thread2.start();
}
public void run()
{
int x=0,y=0;
while(true)
{
//这里是你要编写的代码
}
}
} (6分)
2. 编写一个方法hex3705(),要求将一个以字符串(如有字母用大写)形式表示的十六进制数转换十进制正整数,其中字符串为方法参数,正整数为返回值。 (6分)
六、简答题(本大题共6小题,每小题3分,共18分)
1. 请写出:提供缓冲式输出的类、采用缓冲输出时如果想立即写入文件就调用的方法。 (3分)
2. 在以下类的声明中,指出哪些是错误的以及错误的原因?
①class Class22 extends Class2201,Class2202{......}
②public abstract class Class22{......}
③abstract final class Class22{......}
④abstract public class Class22{......}
⑤public abstract class String{......}
⑥public final class Class22 extends implement interface1{......} (3分)
3. 文件随机访问应该利用什么类来实现?创建此类对象的代码应该能捕获什么类型的异常? (3分)
4. 用一个Java语句完成下面的要求:
先将整型变量a的值加1,再把它加到变量b中。 (3分)
5. 用一个Java语句完成下面的要求:
先把变量a与b的差赋值给变量c,再把变量b的值减1。 (3分)
6. 请写一条语句,实现用预定的颜色填充一个突出显示的矩形色块,其中矩形左上角坐标为(200,100),右下角坐标为(400,500),调用的是类型为Graphics的g对象。 (3分)
Java语言程序设计试题答案
一、单项选择题 (本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1:参考答案:D
参考解析:(P71)声明二维数组的一般形式有以下3种:
①类型 数组名 [][]
②类型 [][] 数组名
③类型 [] 数组名 []
试题内容:
下列正确的'句子是()
A:float 3.14;
B:byte i=225;【-128,127】
C:int k=33L;
D:int p[][];
2:参考答案:B
参考解析:(P176)read()方法的返回值类型为int型,用-1表示流在读之前已结束。
试题内容:
当使用FileInputStream类中的read()方法时,如果没有读入一个字节数据时,返回值为()
A:0
B:-1
C:true
D:false
3:参考答案:D
参考解析:(P6)/**……*/这种注释是文档注释,文档注释能被实用程序javadoc接受,由它能自动生成程序的HTML文档。
试题内容:
能够支持 javadoc 命令的文档注释形式是()
A:/**...//
B:/*...*/
C://
D:/**...*/
4:参考答案:B
参考解析:(P14)Java程序中的类只能继承一个类,这种继承称为单继承。Java语言虽不允许一个类继承多个类,但允许一个类实现多个接口。接口有与类相似的基本形式。
试题内容:
以下程序代码的输出结果是()
int x=100;
System.out.println(5.5+x/8);
A:18
B:17.5
C:9.5
D:5.512
5:参考答案:C
参考解析:(P182)
试题内容:
当用户在文件对话框中选择了文件并按下了“打开/保存”按钮后,程序可利用一个方法取得文件对象,并针对这个对象使用getName()取得文件名,使用getPath()取得文件的路径,则这个方法是()
A:getFile()
B:getSelectFile()
C:getSelectedFile()
D:getDescription()
6:参考答案:A
参考解析:(P9)
试题内容:
在 Java 中,表示换行符的转义字符是()
A:A
B:B
C:C
D:D
7:参考答案:B
参考解析:(P163)本题考核知识点是Runnable接口的使用。实现一个接口必须实现接口中的所有方法,而Runnable接口只有一个方法run()。
试题内容:
一个实现Runnabel接口的类必须要实现的方法是()
A:start()
B:run()
C:sleep()
D:init()
8:参考答案:D
参考解析:(P3)
试题内容:
下列有关Java的叙述错误的是()
A:强类型语言
B:与平台无关
C:可以使用汉字变量名
D:不检查数组下标越界
9:参考答案:D
参考解析:(P70)数组是一种引用类型,一个数组名在不同时间可引用不同的数组,数组名之间可以赋值。
试题内容:
下列有关数组的叙述错误的是()
A:数组是将一组相同类型的数据顺序存储,组成一种复合数据类型
B:在Java语言中,数组是一种引用类型,数组名如同对象名一样,是一种引用
C:对于多维数组,从最高维开始,可以对每一维分配不等长的空间
D:在Java语言中,数组元素可以互相赋值,而数组名不能直接赋值
10:参考答案:A
参考解析:(P168)
试题内容:
当线程A使用某个对象,而此对象又需要线程B修改后才能符合A线程的需要,这时线程A就要等待线程B完成修改工作,这种现象称为()
A:线程的同步
B:线程的互斥
C:线程的调度
D:线程的就绪
二、填空题 (本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。
1:参考答案:(P23)break
试题内容:
在switch 语句中,通过_____语句退出 switch 语句,使程序从整个 switch 语句后面的第一条语句处开始执行。
2:参考答案:(P71)数组的数组
试题内容:
在 Java 中所有实现的多维数组,实际上是由一维数组构成的_____。
3:参考答案:(P168)wait()
试题内容:
为实现线程同步,Java语言提供了notify()、notifyAll()和_____三个方法供线程在临界段中使用。
4:参考答案:(P7)65536
试题内容:
Java语言使用Unicode字符集,共有_____个字符。
5:参考答案:(P16)(y%4==0&&y%100!=0)||y%400==0
试题内容:
闰年的条件是:每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。如果年份用整数类型变量y表示,则y年是闰年的条件用逻辑表达式可描述为_____。
6:参考答案:(P8)Boolean
试题内容:
Java语言中,逻辑类型用关键字_____标识,也称布尔类型。
7:参考答案:(P161)sleep()
试题内容:
Java程序能实现多线程并行执行,为了让一个线程暂停执行,其他线程有机会被执行,可对要暂停的线程执行_____方法。
8:参考答案:(P11).class
[解析]Java程序的扩展名为“.class”,源程序的扩展名为“.java”。
试题内容:
Java应用程序和小应用程序都由一个或多个扩展名为_____的文件组成。
9:参考答案:(P98)GridLayout
[解析]常用的布局类:FlowLayout为依次放置组件;BorderLayout将组件放置在边界上; CardLayout将组件像扑克牌一样叠放,而每次只能显示其中的一个组件;GridLayout将显示区域按行、列划分成一个个大小相等的格子,组件依次放入这些格子中;GridBagLayout能进行更精细的位置控制。
试题内容:
_____将显示区域按行、列划分成一个个大小相等的格子,组件依次放入这些格子中。
10:参考答案:(P132)KeyListener
[解析]键盘事件的接口是KeyListener,注册键盘事件监视器的方法是addKeyListener(监视器)。实现KeyListener接口的方法有3个:
(1)keyPressed(KeyEvent e),键盘上某个键被按下。
(2)keyReleased(KeyEvent e),键盘上某下键被按下后,又释放。
(3)keyTyped(KeyEvent e),keyPressed和keyReleased两方法的组合
试题内容:
键盘事件的接口是_____。
下一页更多有关“Java语言程序设计试题及答案”的内容