Java语言程序设计一白皮书题库三11.docx
《Java语言程序设计一白皮书题库三11.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计一白皮书题库三11.docx(31页珍藏版)》请在冰点文库上搜索。
![Java语言程序设计一白皮书题库三11.docx](https://file1.bingdoc.com/fileroot1/2023-5/5/ca3585e0-d6ac-4cbd-9d44-a92870fb0bb9/ca3585e0-d6ac-4cbd-9d44-a92870fb0bb91.gif)
Java语言程序设计一白皮书题库三11
2012年10月全国自考Java语言程序设计
(一)白皮书题库(三)
一、单项选择题(本大题共10小题,每小题1分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.按运算符操作数的数目划分,运算符?
:
的类型是()
A.三目
B.双目
C.四目
D.单目
答案:
A
解析:
(P16)条件运算符是一个三目运算符。
一般形式是“逻辑表达式?
表达式1:
表达式2”。
2.当启动Applet程序时,首先调用的方法是()
A.stop()
B.init()
C.start()
D.destroy()
答案:
B
解析:
(P63)初始化,由浏览器载入内存时调用init()方法,该方法只运行一次。
其用途是创建所需要的对象、设置初始
状态、装载图像、设置参数等。
3.下面有关临界段叙述错误的是()
A.多线程互斥使用共享资源的程序段被称为临界段
B.临界段是一种加锁机制,与多线程共享资源有关
C.临界段的作用是在任何时该一个共享资源只能供一个线程使用
D.如果一个线程已进入某个共享资源的临界段,且还没有使用结束,其他进程可抢占这个
共享的资源
答案:
D解析:
(P167)如果一个线程已进入某个共享资源的临界段,且还没有使用结束,其他进程必须等待。
4.在Java语言中,密码框组件和设置密码框的回显字符为“*”的方法分别是()
A.JPassWordField和setEchoChar(*)
B.JPasswordField和setEchoChar(*)
C.JPassWordField和setEchochar(*)
D.JPasswordField和setEchochar(*)
答案:
B解析:
(P103)类名首字母和每个单词首字母均大写,方法名首字母小写,其余单词首字母大写。
5.列表事件的事件源有两种,其中之一是单击列表中的选项,则与单击选项事件相关的接口是()
A.ActionListener
B.ListSelectionEvent
C.ListSelectionListener
D.addListSelectionListener
答案:
C
解析:
(P114)ActionListener是与双击选项事件相关的接口,注册监视器的方法是
addActionListener(),接口方法是
actionPerformed(ActionEvente)。
与单击选项事件相关的接口是ListSelectionListener,注册监视器的方法是
addListSelectionListener(),接口方法是valueChanged(ListSelectionEvente)。
6.以下程序代码的输出结果是()intx=100;System.out.println("5.5"+x%8);
A.5.512
B.5.512.5
C.18
D.5.54
答案:
D
解析:
(P14)百分号运算为求余运算符,但是和前面字符串进行的是连接运算。
7.定义一个使用接口Java.lang.Runnable的类,必须要实现的方法是()
A.start()
B.run()
C.init()
D.paint()
答案:
B
解析:
(P163)Java.lang.Runnable接口只有run()方法需要实现。
一个实现Runnable接口的类实际上定义了一个在主线程之外的新线程的操作。
8.在Java中,线程的调度策略采用()
A.分时式
B.抢占式
C.非分时式
D.非抢占式
答案:
B解析:
(P160)Java提供一个线程调度器来监视和控制就绪状态的线程。
线程的调度策略采用抢占式,优先级高的线程比优先级低的线程优先执行。
在优先级相同的情况下,就按“先到先服务
”的原则。
线程的优先级继承得到,也可在程序中重新设置。
9.下列有关抽象类及抽象方法的叙述错误的是()
A.使用final修饰的类是抽象类
B.使用abstract修饰的方法是抽象方法
C.抽象类必须被继承才能使用,抽象类不可能有实例
D.抽象类可以没有抽象方法,但有抽象方法的类一定是抽象类
答案:
A
解析:
(P54)本题考核知识点是Java抽象类及抽象方法。
抽象类和抽象方法都是使用abstract进行修饰。
抽象类只声明一个模板,没有具体实现的代码,只有它的子类才可能有实际意义。
抽象方法只能出现在抽象类中,抽象方法在抽象类中只声明了一个方法头部就用分号结束了,没有实现方法功能的代码。
使用final修饰的类、方法和变量都是不可以再改变的。
final类不能被继承
,final方法不能被子类的方法覆盖,final变量相当于一个常量。
10.采用缓冲式输出时,如果又想立即写入到文件,则需要调用的方法是()
A.flash()
B.flush()
C.write()
D.read()
答案:
B
解析:
(P179)
二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
错填、不填均无分。
1.使用ResultSet对象的方法可将数据表游针移到插入位置,输入数据后,用方法
insertRow()插入记录。
答案:
(P207)moveToInserRow()
2.闰年的条件是:
每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。
如果年份用整数类型变量y表示,则y年是闰年的条件用逻辑表达式可描述为。
答案:
(P16)(y%4==0&&y%100!
=0)||y%400==0
3.布局是把容器划分成若干行和列的网格状,行数和列数由程序控制,组件放在网格的小格子中。
答案:
(P98)GridLayout
4.在Java程序中,设置文本区对象textA能自动换行的方法是:
。
答案:
(P104)textA.setLineWrap(true)
5.列表的选择模型有单选和多选两种,设置列表选择模型的方法是。
答案:
(P115)setSelectionMode()
6.在Java语言,使用关键字定义临界段,能对共享对象的操作上锁。
答案:
(P167)synchronized
7.Java语言中,逻辑类型用关键字标识,也称布尔类型。
答案:
(P8)Boolean
8.在Java语言中,一个对象通过调用方法可以获得该对象的字符串表示。
答案:
(P79)tostring()
9.在Java语言中,定义一个接口,在接口名前面需要关键字。
答案:
(P59)interface
[解析]定义接口需要使用interface关键字,实现接口需要使用implements关键字,一个类可以实现多个接口,相当于有了多个超类,可以实现有控制的多重继承。
Java本身不支持使用关键字extends进行多重继承。
10.Java语言在实现C/S模式中,套接字分为两类,其中在Server端,类支持底层的网络通信。
答案:
(P193)ServerSocket
三、程序填空题(本大题共5小题,每空2分,共20分)
1.以下是生成单选按钮对象,以及单选按钮选择事件处理方法的代码。
要求当选中
computer单选按钮时,在标签label中显示“计算机性能和价格介绍:
”的字样。
…………
computer=new("计算机");//生成单选按钮对象
computer.addItemListener(this);
…………
publicvoid(ItemEvente)
{
if(e.getItemSelectable()==computer)
{
label.setText(computer.getLabel()+"性能和价格介绍:
");
}
}
答案:
newJRadioButtonitemStateChanged
2.下面小应用程序通过快速显示一组图片(1.jpg~9.jpg)造成显示动画的效果。
importjava.awt.*;
importjava.applet.*;
publicclassClass3002extendsAppletimplementsRunnable
{
finalintnumber=9;
intcount=1;
Image[]pic=newImage[number];ThreadmyThread;
publicvoidinit()
{
setSize(300,200);
for(inti=1;i<=number;i++)
pic[i-1]=;
}
publicvoidstart()
{
myThread=newThread(this);
myThread.start();
}
publicvoidstop(){myThread=null;}
publicvoidrun()
{
while(true)
{repaint();count=(count+1)%number;try{myThread.sleep(1000);}catch(InterruptedExceptione){}
}
}
publicvoidpaint(Graphicsg)
{
if(pic[count]!
=null)
g.(pic[count],10,10,200,200,this);
}
}答案:
getImage(getCodeBase(),i+".jpg")drawImage
3.下面是一个求:
1/1+1/2+2/3+3/5+5/8+8/13+13/21+21/32…前20项的和的程序段
floata=1,b=1,s=0;
for(intk=1;k<=10;k++)
{
s=s+a/b;
a=
s=s+b/a;
b=
}System.out.println(s);答案:
a=a+b;
b=a+b;
4.以下程序产生一个确认对话框。
importjavax.swing.*;
publicclassClass2905
{
publicstaticvoidmain(String[]args)
{
JFramemyWin=newJFrame();myWin.setBounds(100,100,200,300);myWin.setVisible(true);myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
intresule=.(myWin,"确实要退出吗?
","退出确认",0);System.out.println(resule);
}
}
答案:
JOptionPaneshowConfirmDialog
5.下面应用程序,绘制一个红色五角星。
请完成程序。
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();
}
}
答案:
paintComponent(Graphicsg);
g.setColor(Color.RED);
四、程序分析题(本大题共5小题,每小题4分,共20分)
1.阅读下面程序,写出程序功能及当输入6和9时的运行情况。
importjava.awt.*;
importjavax.swing.*;
importjava.awt.event.*;
publicclassClass3402implementsActionListener
{
JButtonbutt=newJButton("OK");JTextFieldtext1=newJTextField(10);JTextFieldtext2=newJTextField(10);JTextFieldtext3=newJTextField(10);publicClass3402()
{
JFramemyWin=newJFrame("Class3402");myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);Containercon=myWin.getContentPane();con.setLayout(newGridLayout(4,1));con.add(text1);con.add(text2);con.add(butt);con.add(text3);butt.addActionListener(this);
myWin.pack();
myWin.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
{
inta=Integer.parseInt(text1.getText());intb=Integer.parseInt(text2.getText());inti;
for(i=1;i<=a*b;i++)
{
if(i%a==0&&i%b==0)break;
}
text3.setText(String.valueOf(i));
}
publicstaticvoidmain(String[]args)
{
newClass3402();
}
}
答案:
程序功能:
在应用程序窗口中的前两个文本框text1和text2中填入两个整数,单击OK按钮
,在第三个文本框text3中
将显示两个整数的最小公倍数。
当输入6和9时,单击OK按钮,在第三个文本框中显示18。
[解析]程序运行后的界面如下:
2.阅读下面程序,写出程序功能。
importjavax.swing.*;
importjava.awt.event.*;
publicclassClass3502implementsActionListener
{
JMenuItemitem1;JMenuItemitem2;JTextFieldtext;publicClass3502()
{
JFramemyWin=newJFrame();JMenuBarmenubar=newJMenuBar();JMenumenu=newJMenu("Graph");item1=newJMenuItem("Circle");item2=newJMenuItem("Rect");text=newJTextField(20);myWin.add(text);myWin.setJMenuBar(menubar);menubar.add(menu);menu.add(item1);
menu.add(item2);item1.addActionListener(this);item2.addActionListener(this);myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myWin.setBounds(100,100,200,200);myWin.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
{
text.setText(e.getActionCommand());
}
publicstaticvoidmain(String[]args)
{
newClass3502();
}
}答案:
程序功能:
在应用程序中产生一个Graph菜单一个文本框,菜单中有两个菜单项Circle和Rect,当单击Circle项时,
在文本框中显示Circle,当单击Rect时,在文本框中显示Rect。
3.阅读下列程序,写出程序运行结果。
interfaceComputable
{
finalintMAX=100;
intf(intx);
intg(intx,inty);
}
classAaimplementsComputable
{
intno;
publicintf(intx)
{
intsum=0;
for(inti=1;i<=x;i++)sum=sum+i;
returnsum;
}
publicintg(intx,inty){returnx*y;}
}
classBbimplementsComputable
{
intno;
publicintf(intx)
{
intsum=0;
for(inti=1;i<=x;i++)sum=sum+i*i;
returnsum;
}
publicintg(intx,inty){returnx+y;}
}
publicclassClass3204
{
publicstaticvoidmain(String[]args)
{
Aali;Bbtom;
li=newAa();li.no=851898;tom=newBb();tom.no=951899;System.out.print("Li的编号"+li.no+","+li.MAX);System.out.println(","+li.f(3)+","+li.g(3,4));System.out.print("Tom的编号"+tom.no+","+tom.MAX);System.out.print(","+tom.f(3)+","+tom.g(3,4));
}
}答案:
运行结果:
Li的编号851898,100,6,12
Tom的编号951899,100,14,7
4.阅读下列程序,写出程序功能。
importjavax.swing.*;
importjava.awt.event.*;
publicclassClass3405extendsJFrameimplementsActionListener
{
publicJFramemw1,mw2;
publicClass3405()
{
JButtonbutt1=newJButton("我是一个按钮");
butt1.setActionCommand("b1");
JButtonbutt2=newJButton("我是另一个按钮");butt2.setActionCommand("b2");butt1.addActionListener(this);butt2.addActionListener(this);
Stringname1="我的第一个窗口";
Stringname2="我的第二个窗口";
mw1=newJFrame(name1);mw1.setSize(500,500);mw2=newJFrame(name2);mw2.setSize(300,300);mw1.getContentPane().add(butt1);mw2.getContentPane().add(butt2);mw1.setVisible(true);mw2.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
{
booleanyesNo;
if(e.getActionCommand().equals("b1"))
{yesNo=!
mw2.isVisible();mw2.setVisible(yesNo);
}
else
{yesNo=!
mw1.isVisible();mw1.setVisible(yesNo);
}
}
publicstaticvoidmain(String[]args)
{
newClass3405();
}
}答案:
应用程序运行后,出现两个窗口,每个窗口中各有一个按钮,单击其中的一个窗口的按钮可使另一个窗口显示和隐藏
。
5.阅读下列程序,写出程序功能。
importjava.awt.*;
importjava.applet.*;importjavax.swing.*;importjava.awt.event.*;
publicclassC3402extendsApplet
{
staticJFramemyWin;
staticSetBGsetbg=newSetBG();
staticJButtonbutton;
publicvoidinit()
{
myWin=newJFrame("C3402");myWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);myWin.setBounds(100,200,300,400);
myWin.setLayout(newFlowLayout());Containercon=myWin.getContentPane();con.se