Java语言程序设计试题及答案四.docx
- 文档编号:11358390
- 上传时间:2023-05-31
- 格式:DOCX
- 页数:30
- 大小:28.83KB
Java语言程序设计试题及答案四.docx
《Java语言程序设计试题及答案四.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计试题及答案四.docx(30页珍藏版)》请在冰点文库上搜索。
Java语言程序设计试题及答案四
Java语言程序设计试题及答案(四)
一、单项选择题(本大题共10小题,每小题1分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列正确的句子是()(1分)
A:
float3.14;
B:
bytei=225;
C:
intk=33L;
D:
intp[][];
2.当使用FileInputStream类中的read()方法时,如果没有读入一个字节数据时,返回值为()
A:
0
B:
-1
C:
true
D:
false
3.能够支持javadoc命令的文档注释形式是()(1分)
A:
/**...//
B:
/*...*/
C:
//
D:
/**...*/
4.以下程序代码的输出结果是()
intx=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”。
importjava.applet.*;
publicclassClass3001extendsApplet
{
publicvoidstart()
{
=getAudioClip(getCodeBase(),"1.wav");
clip.;
}
}(2分)
2.下列程序的功能是每隔一秒钟输出一个字符串“Hello!
”。
publicclassC3101implementsRunnable
{
publicstaticvoidmain(Stringargs[])
{
C3101t=newC3101();
Threadtt=newThread(t);
tt.start();
}
publicvoidrun()
{
for(inti=0;i<10;i++)
{
try{sleep(1000);
}catch(Exceptione){e.printStackTrace();}
System.out.println("Hello");
}
}
}(2分)
3.设计一个JFrame窗口,窗口中心有一个文本区。
另有4个菜单,每个菜单都有菜单项,每个菜单项都对应有快捷键,选择某个菜单项时,窗口中心的文本区显示相应信息。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassC2902implementsActionListener
{
JTextFieldtext=newJTextField(20);
Stringt[]={"文件","编辑","格式","帮助"};
Menumenu[]=newMenu[4];
Strings[]={"打开","保存","复制","粘贴","字体","段落","小助手","关于"};
MenuItemjmi[]=newMenuItem[8];
C2902()
{
JFramemyWin=newJFrame("Ex0606");
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Containercon=myWin.getContentPane();
con.add(text,"Center");
text.setEditable(false);
myWin.setMenuBar(jmb);
inti;
for(i=0;i<4;i++)//生成四个菜单
{
menu[i]=newMenu(t[i]);
jmb.add(menu[i]);
}
for(i=0;i<8;i++)//每个菜单中放两个菜单项
{
jmi[i]=newMenuItem(s[i]);
menu[i/2].add(jmi[i]);
jmi[i].addActionListener(this);
jmi[i].(newMenuShortcut(65+i));//设快捷键
}
myWin.setBounds(300,200,400,200);
myWin.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
{
text.setText("你选择了:
"+e.getActionCommand()+"菜单项.");
}
publicstaticvoidmain(String[]args)
{
newC2902();
}
}(2分)
4.下面应用程序,绘制一个红色五角星。
请完成程序。
importjava.awt.*;
importjavax.swing.*;
classMyPanelextendsJPanel
{
publicvoid
{
intr=100;
intx1=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);
}
}
publicclassC3002extendsJFrame
{
C3002()
{
super("C3002");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
getContentPane().add(newMyPanel());
setSize(210,242);
setVisible(true);
}
publicstaticvoidmain(String[]args)
{
newC3002();
}
}(2分)
5.下面程序运行后,连续输出20个相同的单词。
请完成程序。
publicclassC3102
{
publicstaticvoidmain(Stringargs[])
{
t.start();
}
}
classHelloimplementsRunnable
{
inti=0;
publicvoidrun()
{
while()
{
System.out.print(i+":
Hello");
}
}
}(2分)
四、程序分析题(本大题共5小题,每小题4分,共20分)
1.写出下面程序的运行结果。
publicclassTestextendsTT
{
publicstaticvoidmain(Stringargs[])
{
Testt=newTest("Tom.");
}
publicTest(Strings)
{
super(s);
System.out.print("Howareyou?
");
}
publicTest()
{
this("IamJack.");
}
}
classTT
{
publicTT()
{
System.out.print("Hi!
");
}
publicTT(Strings)
{
this();
System.out.print("Iam"+s);
}
}(4分)
2.阅读下面程序,写出程序功能。
importjava.applet.*;importjava.awt.*;
publicclassClass3602extendsAppletimplementsRunnable
{
ThreadredBall,blueBall;GraphicsredPen,bluePen;
intblueSeta=0,redSeta=0;
publicvoidinit()
{
setSize(250,200);
redBall=newThread(this);blueBall=newThread(this);
redPen=getGraphics();bluePen=getGraphics();
redPen.setColor(Color.red);bluePen.setColor(Color.blue);
setBackground(Color.gray);
}
publicvoidstart()
{
redBall.start();blueBall.start();
}
publicvoidrun()
{
intx,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(InterruptedExceptione){}
}
elseif(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(InterruptedExceptione){}
}
}
}
}(4分)
3.阅读下列程序,写出运行结果。
publicclassClass3205
{
publicstaticvoidmain(String[]args)
{
Stringstr1="abc";
Stringstr2="Abc";
Stringstr3="abc";
Stringstr4=newString("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.阅读下列程序,写出程序功能。
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
publicclassClass3505implementsAdjustmentListener
{
JScrollBarjs;
JLabellabel;
intsize=20;
publicClass3505()
{
JFramemyWin=newJFrame("Class3505");
myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
myWin.setBounds(200,200,400,400);
Containercon=myWin.getContentPane();
js=newJScrollBar(JScrollBar.HORIZONTAL,20,10,1,210);
js.setSize(newDimension(395,50));
js.addAdjustmentListener(this);
con.add(js);
label=newJLabel("Class3505");
con.add(label);
myWin.setVisible(true);
}
publicvoidadjustmentValueChanged(AdjustmentEvente)
{
size=e.getValue();
Fontf=newFont(label.getFont().getName(),
label.getFont().getStyle(),size);
label.setFont(f);
}
publicstaticvoidmain(String[]args)
{
newClass3505();
}
}(4分)
5.阅读下面程序,写出程序运行结果。
classprinter
{
synchronizedvoidprintchar(charch)
{
for(inti=1;i<=3;i++)System.out.print(ch);
System.out.println();
}
}
classprinterThreadextendsThread
{
printerptr;
charch;
printerThread(printerptr,charch)
{
this.ptr=ptr;
this.ch=ch;
}
publicvoidrun()
{
for(inti=1;i<=3;i++)ptr.printchar(ch);
}
}
publicclassClass3605
{
publicstaticvoidmain(String[]args)
{
printerptr=newprinter();
printerThreadpt1=newprinterThread(ptr,?
A?
);
printerThreadpt2=newprinterThread(ptr,?
B?
);
pt1.start();
pt2.start();
}
}(4分)
五、程序设计题(本大题共2小题,每小题6分,共12分)
1.编写一个小应用程序,在小应用程序中有两个线程,一个负责模仿圆转运动,另一个模仿椭圆运动。
已给出部分代码,请完成程序。
importjava.awt.*;
importjava.applet.*;
publicclassClass3804extendsAppletimplementsRunnable
{
Threadthread1,thread2;
Graphicsg;
publicvoidinit()
{
setSize(500,500);
setBackground(Color.gray);
g=getGraphics();
g.setColor(Color.red);
g.setXORMode(Color.blue);
thread1=newThread(this);
thread2=newThread(this);
}
publicvoidstart()
{
thread1.start();
thread2.start();
}
publicvoidrun()
{
intx=0,y=0;
while(true)
{
//这里是你要编写的代码
}
}
}(6分)
2.编写一个方法hex3705(),要求将一个以字符串(如有字母用大写)形式表示的十六进制数转换十进制正整数,其中字符串为方法参数,正整数为返回值。
(6分)
六、简答题(本大题共6小题,每小题3分,共18分)
1.请写出:
提供缓冲式输出的类、采用缓冲输出时如果想立即写入文件就调用的方法。
(3分)
2.在以下类的声明中,指出哪些是错误的以及错误的原因?
①classClass22extendsClass2201,Class2202{......}
②publicabstractclassClass22{......}
③abstractfinalclassClass22{......}
④abstractpublicclassClass22{......}
⑤publicabstractclassString{......}
⑥publicfinalclassClass22extendsimplementinterface1{......}(3分)
3.文件随机访问应该利用什么类来实现?
创建此类对象的代码应该能捕获什么类型的异常?
(3分)
4.用一个Java语句完成下面的要求:
先将整型变量a的值加1,再把它加到变量b中。
(3分)
5.用一个Java语句完成下面的要求:
先把变量a与b的差赋值给变量c,再把变量b的值减1。
(3分)
6.请写一条语句,实现用预定的颜色填充一个突出显示的矩形色块,其中矩形左
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 试题 答案