全国自考Java语言程序设计一真题及答案.docx

上传人:b****0 文档编号:9814342 上传时间:2023-05-21 格式:DOCX 页数:34 大小:79.18KB
下载 相关 举报
全国自考Java语言程序设计一真题及答案.docx_第1页
第1页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第2页
第2页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第3页
第3页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第4页
第4页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第5页
第5页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第6页
第6页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第7页
第7页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第8页
第8页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第9页
第9页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第10页
第10页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第11页
第11页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第12页
第12页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第13页
第13页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第14页
第14页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第15页
第15页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第16页
第16页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第17页
第17页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第18页
第18页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第19页
第19页 / 共34页
全国自考Java语言程序设计一真题及答案.docx_第20页
第20页 / 共34页
亲,该文档总共34页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

全国自考Java语言程序设计一真题及答案.docx

《全国自考Java语言程序设计一真题及答案.docx》由会员分享,可在线阅读,更多相关《全国自考Java语言程序设计一真题及答案.docx(34页珍藏版)》请在冰点文库上搜索。

全国自考Java语言程序设计一真题及答案.docx

全国自考Java语言程序设计一真题及答案

2008年全国自考Java语言程序设计

(一)真题及答案

窗体顶端

一、单项选择题(本大题共10小题,每小题1分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.

下述字符组合不能作为Java程序标识符的是【】(1分)

A:

Aa12

B:

大x

C:

y小

D:

5x

2.

以下程序代码的输出的结果是【】

intx=53;

System.out.println(1.0+x/2);(1分)

A:

27.0

B:

27.5

C:

1.026

D:

1.026.5

3.

(1分)

A:

x、y和s都是成员变量

B:

x是实例变量、y是类变量、s是局部变量

C:

x和y是实例变量、s是参数

D:

x、y和s都是实例变量

4.

需要分析字符串,并将字符串分解成可被独立使用的单词,可使用java.util包中的类是【】(1分)

A:

String

B:

StringBuffer

C:

StringTokenizer

D:

stringTokenizer

5.

要为程序的子窗口设定一个由字符串s指定的名字,可以采用的代码是【】(1分)

A:

JFrame(s)

B:

window(s)

C:

newJFrame(s)

D:

super(s)

6.

以下关于菜单的叙述中,正确的是【】(1分)

A:

菜单分三级定义,最高一级的是菜单条,菜单条中放菜单,菜单中放菜单项

B:

菜单分三级定义,最高一级的是菜单,菜单中放菜单条,菜单条中放菜单项

C:

菜单分两级定义,最高一级的是菜单,菜单中放菜单项

D:

菜单分两级定义,最高一级的是菜单条,菜单条中放菜单项

7.

以下所述内容全部是字型要素的是【】(1分)

A:

字体、字形和大小

B:

字体、风格和字号

C:

字形、风格和字号

D:

字形、颜色和字号

8.

用Thread子类实现多线程的步骤顺序是【】(1分)

A:

声明Thread类的子类,创建Thread子类的实例,让线程调用start()方法

B:

声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例

C:

创建Thread子类的实例,让线程调用start()方法

D:

声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例,让线程调用start()方法

9.

为16位Unicode字符流提供读和写操作支持的类分别是【】(1分)

A:

FileInputStream类和FileOutputStream类

B:

InputStream类和OutputStream类

C:

FileReader类和FileWriter类

D:

File_Reader类和File_Writer类

10.

能利用对象提供的方法获得流对象和实现网络连接的是【】(1分)

A:

URLConnection对象

B:

URL对象

C:

InetAddress对象

D:

TCP/IP对象

二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。

错填、不填均无分。

1.

一个小应用程序必须定义成一个。

(2分)

Applet(JApplet)类的子类

2.

用条件运算符构造一个表达式:

goal等于10时,表达式的值为"对了!

",否则,表达式的值为"错了!

"。

这个表达式是。

(2分)

3.

类是对一组相同对象的描述,类概括了同类对象的共有性质:

(2分)

)数据(属性)和方法(函数)

4.

设有数组a和b的定义如下:

int[]a={1,2,3};int[]b={4,5,6}

……

执行以下代码"a=b;",除了完成赋值操作之外,引起系统额外要做的工作是回收内存。

(2分)

5.

布局使容器的多个组件拥有同一个显示空间,某一时刻只能显示一个组件CardLayout

(2分)

6.

Java语言为处理鼠标事件提供两个接口:

MouseListener接口和MouseMotionListener接口。

(2分)

7.

某个绘图方法设置成"异或模式"绘图,并用黄色作为异或模式设定的绘图颜色。

如果当时背景色为红色,并用红色绘制线段,则线段的实际颜色是黄色。

(2分)

8.

程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:

一是编写线程run()的方法;二是建立线程实例。

(2分)

9.

BufferedWriter类是提供缓冲式输出的类。

程序需要先创建对象FileWriter,再利用这个对象创建BufferedWriter对象。

(2分)

10.

在Java语言中,客户端使用的套接字类是Socket。

(2分)

三、简答题(本大题共6小题,每小题3分,共18分)

1.

请写出表示条件"x=2与y=3有且只有一个成立"的Java表达式。

(3分)

(x=2)!

=(y=3)或(x=2&&y!

=3)||(x!

=2&&y!

=3)

2.

如果类Student是类Person的子类,类Undergraduate是类Student的子类,请指出以下代码行中哪些是不合法的。

Personp1=newStudent();

Personp2=newUndergraduate();

Students1=newPerson();

Students2=newUndergraduate();

Undergraduateug1=newPerson();

Undergraduateug2=newStudent();

Objectob=newStudent();(3分)

Students1=newPerson();

Undergraduateug1=newPerson();

Undergraduateug2=newStudent();

3.

请写出程序处理文本框输入结束事件(回车)添加监视器的方法,以及监视器类必须实现的接口方法。

(3分)

为对象添加监视器的方法是addActionListener;类必须实现的方法是publicvoid

actionPerformed(ActionEvente)。

4.

请写出一条语句,能够绘制一条从点(20,30)开始,长为100像素的水平线段。

设调用的对象是类型为Graphics的g。

(3分)

g.drawLine(20,30,120,30);或g.drawLine(120,30,20,30);

5.

某Java程序要使用文件输入输出流,请写出该程序所需要的import语句。

(3分)

importjava.io.*

6.

JDBC是Java程序与数据库连接的API,请写出JDBC能做的三件事情。

(3分)

与某个数据库建立连接;向数据库发送SQL语句;处理数据库返回的结果。

四、程序填空题(本大题共5小题,每空2分,共20分)

1.

方法intmaxDigit(intn)的功能是找出十进制整数n各位中最大的一位数字。

例如,n=23765,该方法的返回值是7。

staticintmaxDingit(intn){

intc=0,d;

while(n>0){

d=n%10

;

if(d>c)c=d;

n/=10;

}

returnc

;

}(4分)

2.

某程序的界面包含一个文本区text1、一个文本框text2和一个按钮button。

实现在文本区中输入整数序列后,点击按钮,程序响应按钮事件,累计文本区输入的整数序列,并将总和输出在文本框中。

这里给出的是其中相应按钮事件的方法。

publicvoidactionPerformed(ActionEvente){

intsum;

if(e.getSource()=button){

Strings=text1.;//获取text1中的信息

StringTokenizerfenxi=newStringTokenizer(s,",,,\\n");

intn=fenxi.countTokens();

doublea[]=newdouble[n];

for(inti=0;i<n;i++){

Stringtemp=fenxi.nextToken();

a[i]=Double.valueOf(temp).doubleValue();

}

sum=0,

for(inti=0;i<n;i++){

;

}

text2.setText(""+sum);//刷新显示。

}

}(4分)

getText()

sum+=a[i]或sum=sum+a[i]

3.

以下是生成菜单项对象,以及菜单项选择事件处理方法的部分代码。

要求当菜单项singingItem被选中时,在文本框text中输出"唱歌菜单项被选中!

"的字样。

……

singingItem=new=(“唱歌”);//生成菜单对象

……

publicvoidactionPerformed(ActionEvente){

if(egetSource()=singingItem)

text.setText(e.()+“菜单项被选中!

”);

}(4分)

JMenuItem

getActionCommand

4.

某小应用程序实现幻灯片放映。

小应用程序的init()方法将幻灯片读入数组中存储和注册鼠标监视器。

程序运行时,单击鼠标,就顺序变换放映幻灯片的序号。

这里给出的是其中的paint()方法和mousePressed()方法。

finalintnumber=30;//假定幻灯片有30张

intcount=0;

Image[]pic=newImage[number];

publicvoidpaint(gc){

if((pic[count])!

=null)

gc.drawImage(pic[count],10,10,pic[count].getWidth(this),

pic[count].getHeight(this),this);

}

publicvoidmousePressed(MouseEvente){

count=(count+1)%number;//循环逐张显示

}(4分)

Graphics

repaint()或update()

5.

以下定义的类shareDataManager用于管理多个线程共享数据data。

一些线程要减少data,另一些线程要增加data。

由于data不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。

类提供一个方法modiData()供修改data的线程调用,该方法在data修改结束后,应通知其它等待进入这个方法的线程。

classShareDataManager{

intdata=0;

voidmodiData(intdalta){

if(delta>=0){

data+=delta;

}else{

while(data<delta){

try{System.outprintln(“发生等待!

”);

wait();

}catch(InterruptedExceptione){}

}

data-=delta;

}

;

}

ShareDataManager(intititData){data=initData;}

}(4分)

synchronized

notify()

五、程序分析题(本大题共5小题,每小题4分,共20分)

1.

阅读下列程序,请写出该程序的输出结果。

importJavaapplet.*;importjava.awt.*;

classPoint{

intx,y,

Point(intxx,intyy){x=xx;y=yy;}

Point(Pointp){x=p.x;y=p.y;}

voidm(intdx,intdy)(x+=dx;y+=dy;)

}

classCircleextendsPoint{

intr;

Circle(Pointp,intrr){super(p);r=rr;}

floatc(){return3.14f*2.0f*r;}

floata(){return3.14f*r*r;}

}

publicclasssampleextendsApplet{

Circleyuan,Pintd;

publicvoidinit(){d=newPint(2,5);yuan=newCircld(d,10);}

publicvoidpaint(Graphicsg){

g.drawString("yuanCircle"+(int)(yuan.c()*100.0)/100.0,5,20);

g.drawString("yuanArea"+(int)(yuan.a()*100.0)/100.0,5,40);

}

}(4分)

yuanCircle62.8(2分)

yuanArea314.0(2分)

2.

(4分)

程序获得当前日期,将日期的字符串表示输出;(2分)截取日期字符串中从第11位开始到字母‘C’之前的部分字符串,并输出。

(2分)

3.

阅读下列程序,请写出该程序的功能。

importjavaapplet*;importjavaxswing*,importjavaawtevent*;

publicclassClass1extendsAppletimplementsActionListerer{

JTextFieldtext1,text2;

publicvoidinit(){

text1=newJTextField(10);text2=newJTextField(10);

setSize(200,100);add(text1);add(text2);

text1addActionListerer(this);

}

publicvoidactionPerformed(ActionEvente){

longn;

if(e.getSource()=text1){

n=Long.parseLong(text1.getText());

text2.setText(StringvalueOf(n*n));

}

}

}(4分)

在第一个文本框输入数据,输入结束(回车)后,(2分)在第二个文本框输出该整数的平方。

(2分)

4.

阅读以下程序,请写出该程序的功能。

importjavaxswing.*;importjavaawt.*;importjava.awt.event.*;

classMyScrollBarextendsJscrollBar{

publicMyScrollBar(intinit,intlen,intlow,inthigh){

super(JScrollBar.HORIZONTAL,init,len,low,high);

}

}

classMyWindowextendsJFrameimplementsAdjustmentListerer{

privateJTextFieldtext;

MyWindow(Strings){

super(s);

MyScrollBarmyBar=newMyScrollBar(10,10,0,255);

Containercon=this.gerContentPane();

con.setLayout(newGridLayout(2,1));

this.setSize(200,100);

this.setLocation(100,100);

myBar.addAdjustmentListerer(this);

text=newJTextField("",20);

con.add(text);con.add(myBar);

this.setVisible(true);

}

publicvoidadjustmentValueChanged(AdjustmentEvente){

MyScrollBarmyBar=(MyScrollBar)e.getAdjustable();

text.setText(""+myBar.getValue());

}

}

publicclassClass1{

publicstaticvoidmain(String[]args){

MyWindowmyWindow=newMyWindow("text5_4");

}

}(4分)

滑动滚动条的滑块,在文本框显示块位置对应的数值。

5.

小应用程序创建一个线程。

例子使用容器类方法getGraphics()获得Graphics对象,给线程作为画笔使用。

请写出该程序中这个线程的工作内容。

importjava.applet.*;importjavaawt.*;

publicclassClass1extendsjava.applet.AppletimplementsRunnable{

ThreadredBall;GraphicsredPen;

intrx=0,ry=0;

publicvoidinit(){

setSize(250,200);

redBall=newThread(this);

redPen=getGraphicsp();

redPen.setColor(Color.red);

setBackground(Color.gray);

}

publicvoidstart(){redBall.start();}

publicvoidrun(){

while(true){

if(Thread.currentThread()=redBall){

rx=(int)(80*Math.random());

ry=(int)(80*Math.random());

redPen.setColor(Color.red);

redPen.fillOval(100+rx,100+ry,10,10);

try(redBall.sleep(500);}

catch(InterruptedExceptione){}

redPen.setColor(Color.gray);

reden.fillOval(100+rx,100+ry,10,10);

}

}

}

}(4分)

随机位置显示一个小圆,程序采用背景色重画的办法,清除前一次显示的小圆。

六、程序设计题(本大题共2小题,每小题6分,共12分)

1.

编写一个方法halfArray(),要求该方法有一个元素类型为int的数组参数,方法返回一个新数组,新数组的长度与参数数组的长度相同,而新数组元素的值是参数数组各元素的一半。

(6分)

int[]halfArray(int[]a){(1分)

int[]b=newint[a.length];(2分)

for(intk=0;k<a.length;k++){(2分)

b[k]=a[k]/2;

}

returnb;(1分)

}

2.

一个Java小应用程序,界面有三个文本框和两个按钮,前两个文本框用于输入整数,第三个文本框用于输出结果。

两个按钮分别表示加和减运算。

当前两个文本框输入整数后,点击相应按钮,程序就将计算结果输出在第三个文本框中。

以下是程序的大部分,其中监视按钮事件的方法未给出,试编写处理按钮事件的方法。

注:

这里是给定部分的程序,你要编写的是actionPerformed(ActionEvente)方法。

importjava.applet.*;importjavax.swing.*;

importjava.awt.*;importjava.awt.event.*;

classPanellextendsJPanel{

JTextFieldtext1,text2,text3;JButtonaddButton,subButton;

Panell(){

text1=newJTextField(10);text2=newJTextField(10);

text3=newJTextField(10);setLayout(newGridLayout(5,1));

addButton=newJbutton(“加”);subButton=newJButton(“减”);

add(text1);add(text2);

add(text3);add(addButton);add(subButton);

}

}

publicclassClass1extendsAppletimplementsActionListener{

Pane;panel;

publicvoidinit(){

setSize(100,200);panel=newPanell();add(panel);

(panel.addButton).addActionListener(this);

(panel.subButton).addActionListener(this);

}

publicvoidactionPerformed(ActionEvente){

//这里是你要编写的代码

}

}(6分)

if(e.getSource()=(panel.addButton)){(3分)

n1=Long.parseLong(panel.text1.getText());

n2=Long.parseLong(Panel.text2.getText());

panel.text3.setText(String.valueOf(n1+n2));

}

elseif(e.getSource()=(panel.subButton)){(2分)

n1=Long.parseLong(panel.text1.getText());

n2=Long.parseLong(panel.text2.getText());

panel.text3.setText(String.valueOf(n1-n2));

}

窗体底端

参考答案

一、单项选择题(本大题共10小题,每小题1分,共10分)在每

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2