全国自考Java语言程序设计一真题及答案Word文件下载.docx
《全国自考Java语言程序设计一真题及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《全国自考Java语言程序设计一真题及答案Word文件下载.docx(26页珍藏版)》请在冰点文库上搜索。
23456789234
5.
以下是关于FlowLayout布局组件排列顺序的叙述,正确的是()(1分)
从上到下排列
从左到右排列
从下到上排列
从右到左排列
6.
程序执行方法showOpenDialog(),能打开“打开文件对话框”,如果该方法的返回值是JFileChooser.APPROVE_OPTION,则用户执行的动作是()(1分)
对话框非正常关闭
按下“打开/保存”按钮
按下“撤销”按钮
重新输入了一个文件名
7.
设已经有Graphics2D对象g2d,Rectangle2D对象r,绘制对象r的代码是()(1分)
g2d.draw(r)
g2d.drawRect(r)
r.draw()
r.drawRect()
8.
在以下供选择的方法中,能让线程从阻塞状态恢复到就绪状态的方法是()(1分)
start()
init()
resume()
run()
9.
在以下供选择的方法中,不能用于文件随机访问的方法是()(1分)
readChar()
readLong()
readInteger()
writeChars()
10.
某程序利用网址参数创建URL对象url,接着希望利用对象url获得URLConnection对象,则这个url对象要调用的方法是()(1分)
connection()
URLConnection()
getConnection()
openConnection()
二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
错填、不填均无分。
1.
一个应用程序必须在某个类中定义的方法是。
(2分)
2.
import语句的格式是。
3.
在面向对象语言中,对象之间的交互通过实现。
4.
设有两个字符串对象str1和str2,则表达式“str1==str2”的意义是判别字符串str1和str2。
5.
一个基于Swing的应用程序可能在任何平台上都会有相同的。
6.
处理键盘事件的Java程序,要实现的接口是。
7.
Java语言约定,坐标原点位于绘图区域的。
8.
Java程序中,在临界段中使用方法,使执行该方法的线程等待。
9.
BufferedWriter类对象能按行输入文件的内容,按行输入的方法是。
10.
在包中有InetAddress类的定义,Java程序中的InetAddress类对象存储的内容是。
三、简答题(本大题共6小题,每小题3分,共18分)
请写出实现计算y=|x|的if语句。
(3分)
以下代码定义了一个类,请指出其中三条不合法的代码行(行号参见注释)。
classTest22{//1
floatu;
staticfloatv;
//2
staticvoidsetUV(booleanf){//3
u=fac1(f);
//4
v=fac2(!
f);
}//5
staticfloatfac1(booleanf){returnf?
u:
v;
}//6
floatfac2(booleanf){returnf?
v:
u;
}//7
}//8(3分)
在java.awt.event中,用来检测并对事件做出反应的模型涉及三种对象。
请写出这三种对象。
写出设置Font对象fn的Java语句,要求Courier字体,BOLD风格,18磅字号,设调用对象的类型为Graphics的g。
通过流的构造方法建立文件流对象,请写出创建输入输出文件流对象的两种常用构造方法。
当Client程序和Server程序需要通信时,可以用Socket类建立套接字连接,请写出双方实现通信的两种方式。
四、程序填空题(本大题共5小题,每空2分,共20分)
方法intsigmaEvenNum(int[]a)的功能是求已知数组中偶数的个数。
staticintsigmaEvenNum(int[]a){
ints=0;
for(inti=0;
;
i++){
if()s++;
}
returns;
某小应用程序窗口包含有文本区dispArea,以及一个带文字“追加”的按钮。
当点击这个按钮时,程序弹出一个输入信息的对话框,并将对话框中输入的内容追加到文本区中。
以下是其中相应“追加”按钮事件的方法。
publicvoidactionPerformed(ActionEvente){
if(e..equals("
追加"
)){
Stringresult=(String)JOptionPane.showInputDialog(null,"
请输入信息"
,
"
输入对话框"
JOptionPane.PLAIN_MESSAGE,null,null,null);
dispArea.(result+"
);
以下程序段是选择项目事件处理程序的样例,一个由3个单选按钮组成的选择组被定义为一个面板子类Panel,当某个按钮被选中时,按钮监视程序在类MyWindow的一个文本框中输出某个按钮被选中的字样。
以下是类Panel的定义。
classPanelextendsJPanelimplementsItemListener{
staticJRadioButtonbox[];
ButtonGroupg;
Panel(StringradioNameList[]){
box=newJRadioButton[radioNameList.length];
setLayout(newGridLayout(1,radioNameList.length));
g=newButtonGroup();
for(inti=0;
i<
radioNameList.length;
i++){
box[i]=newJRadioButton(,false);
g.add(box[i]);
add(box[i]);
box[i].addItemListener(this);
publicvoiditemStateChanged(ItemEvente){
for(inti=0;
i<
box.length;
if(box[i].){
MyWindow.text.setText(box[i].getLabel()+"
被选中!
"
}(2分)
用getImage()方法和drawImage()方法能加载和显示图像。
以下程序加载的是seattle.jpg文件,并假定该文件与包含这个小应用程序的HTML文件在同一个目录下。
importjava.awt.*;
importjava.applet.*;
publicclassSimpleImageLoadextendsApplet{
Imageimg;
publicvoidinit(){
img=getImage(,"
seattle.jpg"
publicvoidpaint(Graphicsg){
g.drawImage(img,0,0,);
以下程序段定义的类ShareDataManager用于管理多个线程共享数据data。
为了对data的取、存和修改操作保持完整,多线程在data上的操作有互斥要求;
另外,限制线程对data的修改不能让data为负数,所以多线程在data上的操作还有同步要求。
为此,程序为管理data上的操作定义成类,以下是管理共享数据data的类ShareDataManager的代码。
classShareDataManager{
intdata;
ShareDataManager(intinit){data=init;
publicintgetData(){returndata;
}
privatevoidputData(intnewValue){data=newValue;
synchronizedvoidmodiData(intdelta){
if(delta>
=0){putData(getData()+delta);
}else{
while(<
0){
try{wait();
}catch(InterruptedExceptione){}
putData(getData()+delta);
;
五、程序分析题(本大题共5小题,每小题4分,共20分)
阅读下列程序,请写出该程序的输出结果。
classTree{
privateStringname;
publicbooleanflower;
publicintbirthYear;
Tree(Stringn,booleanf,inty){name=n;
flower=f;
birthYear=y;
publicvoidsetName(Stringn){name=n;
publicStringgetName(){returnname;
publicvoidprintTree(Stringstr){
System.out.println(str);
System.out.println("
Name:
+name);
System.out.println("
BirthYear:
+birthYear);
Flower:
+flower);
classPineTreeextendsTree{
publicbooleanconiferous=true;
PineTree(Stringn,booleanf,inty,booleanc){super(n,f,y);
coniferous=c;
super.printTree(str);
Coniferous:
+coniferous);
classTest32{
publicstaticvoidmain(String[]args){
TreefOb=newTree("
MayFlower"
true,1980);
PineTreesOb=newPineTree("
Pine"
false,2000,true);
fOb.printTree("
fOb:
sOb.printTree("
sOb:
}(4分)
classTest33{
staticvoids(intb[],intk){
inti,j,t;
for(i=1;
k;
i++){
for(t=b[i],j=i-1;
j>
=0&
&
t<
b[j];
j--)
b[j+1]=b[j];
b[j+1]=t;
publicstaticvoidmain(String[]args){
inti,a[]={6,12,7,11,5};
s(a,5);
for(i=0;
a.length;
i++)System.out.print(a[i]+"
System.out.Println();
阅读下列程序,请写出该程序的功能。
importjavax.swing.*;
importjava.awt.event.*;
publicclassTest34extendsAppletimplementsActionListener{
JTextFieldtext;
intr;
JPanelpanel;
publicvoidpaint(Graphicsg){
Graphicsgc=panel.getGraphics();
gc.clearRect(0,0,panel.getWidth(),panel.getHeight());
gc.setColor(Color.red);
gc.fillOval(10,10,r,r);
text=newJTextField(10);
panel=newJPanel();
setSize(200,100);
setLayout(newGridLayout(2,1));
add(text);
add(panel);
text.addActionListener(this);
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==text){
r=Integer.parseInt(text.getText());
repaint();
阅读下列程序,请回答以下问题:
(1)该程序的菜单条中共有几个菜单项?
(2)单击哪个菜单项,可以打开一个对话框?
(3)该对话框是强制型还是非强制型?
(4)该对话框中显示的是什么内容?
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.*;
importjava.util.*;
classMyDialogextendsJDialog{
MyDialog(JFrameF,Strings){
super(F,s,false);
Datedate=newDate();
Stringt=date.toString();
JLabeltext=newJLabel(t);
setSize(200,100);
setVisible(true);
publicclassMenuDemoextendsJFrameimplementsActionListener{
JMenuBarmenubar;
JMenuaction;
JMenuItemshow,set,quit;
publicMenuDemo(){
menubar=newJMenuBar();
setJMenuBar(menubar);
action=newJMenu("
操作"
);
menubar.add(action);
show=newJMenuItem("
显示"
action.add(show);
set=newJMenuItem("
设置"
action.add(set);
action.addSeparator();
quit=newJMenuItem("
退出"
action.add(quit);
show.addActionListener(this);
set.addActionListener(this);
quit.addActionListener(this);
setSize(300,300);
setVisible(true);
if(e.getSource()==show){MyDialogdiag=newMyDialog(this,"
信息"
elseif(e.getSource()==set){this.setTitle("
菜单演示"
elseif(e.getSource()==quit){System.exit(0);
publicstaticvoidmain(String[]args){newMenuDemo();
阅读以下程序,请写出该程序的输出结果。
classCurrentThreadDemo{
publicstaticvoidmain(Stringargs[]){
Threadt=newThread();
Currentthread"
t.setName("
MyThread"
Afternamechange"
try{for(intn=3;
n>
0;
n--){
System.out.println(n);
Thread.sleep(1000);
}catch(InterruptedExceptione){
Mainthreadinterrupted"
六、程序设计题(本大题共2小题,每小题6分,共12分)
编写方法intsearchMaxNumIndex(int[]a),寻找已知数组中最大数的下标并返回。
(6分)
以下程序的界面有一个按钮button、一个文本区textA和一个文本框textF。
程序运行时,在文本区中输入数字序列,单击按钮,则在文本框中显示数字序列的和。
以下是要求你编写的actionPerformed(ActionEvente)方法的部分代码。
if(e.getSource()==button){
Strings=textA.getText();
doublesum=0;
StringTokenizerfenxi=newStringTokenizer(s,"
\n"
//请在以下位置编写代码
}(6分)
窗体底端
参考答案
一、单项选择题(本大题共10小题,每小题1分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
1:
参考答案:
C
参考解析:
暂无解析
试题内容:
下面供选字符序列中,不属于Java语言关键字的是()
A:
B:
C:
D:
2:
A
以下程序代码的输出结果是()
intx=73;
3:
Java语言中,在类定义时用final关键字修饰,是指这个类()
4:
D
以下是关于字符串运算的代码,执行该代码段的输出结果是()
Strings=″0123456789″,s1,s2;
s1=s.substring
(2);
5:
B
以下是关于FlowLayout布局组件排列顺序的叙述,正确的是()
6:
程序执行方法showOpenDialog(),能打开“打开文件对话框”,如果该方法的返回值是JFileChooser.APPROVE_OPTION,则用户执行的动作是()
7:
设已经有Graphics2D对象g2d,Rectangle2D对象r,绘制对象r的代码是()
8:
在以下供选择的方法中,能让线程从阻塞状态恢复到就绪状态的方法是()
9: