全国自考Java语言程序设计方案一试题.docx

上传人:b****6 文档编号:5647478 上传时间:2022-12-30 格式:DOCX 页数:13 大小:38.42KB
下载 相关 举报
全国自考Java语言程序设计方案一试题.docx_第1页
第1页 / 共13页
全国自考Java语言程序设计方案一试题.docx_第2页
第2页 / 共13页
全国自考Java语言程序设计方案一试题.docx_第3页
第3页 / 共13页
全国自考Java语言程序设计方案一试题.docx_第4页
第4页 / 共13页
全国自考Java语言程序设计方案一试题.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

全国自考Java语言程序设计方案一试题.docx

《全国自考Java语言程序设计方案一试题.docx》由会员分享,可在线阅读,更多相关《全国自考Java语言程序设计方案一试题.docx(13页珍藏版)》请在冰豆网上搜索。

全国自考Java语言程序设计方案一试题.docx

全国自考Java语言程序设计方案一试题

全国2009年1月Java语言程序设计

(一)试题

课程代码:

04747

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

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

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

1.下列字符组合不能作为Java整型常量的是()

A.078B.0x3ACBC.5000D.0x3ABC

2.以下程序代码的输出结果是()

intx=10;

while(x>7)

{System.out.print("*");x--;}

A.**B.***C.*D.****

3.设类U声明,及对象u和v的定义如下:

classU{

intx,inty;

U(inta,intb){x=a;y=b;}

voidcopy(Ua){x=a.x;y=a.y;}

}

Uu=newU(1,2),v=newU(2,3);

在以下供选择的代码中,可能引起系统回收内存的是()

A.u.x=v.y;u.y=v.x;B.u=v;C.u.copy(v);D.v.copy(u);

4.设有以下代码:

Stringsl="123";

Strings2="123";

Strings3=newString("123");

则表达式s1==s2和s1==s3的值分别是()

A.true,trueB.false,falseC.true,falseD.false,true

5.以下关于AWT与Swing之间关系的叙述,正确的是()

A.Swing是AWT的提高和扩展

B.在写GUI程序时,AWT和Swing不能同时使用

C.AWT和Swing在不同的平台上都有相同的表示

D.AWT中的类是从Swing继承的

6.在以下Swing组件中,能为它指定布局管理器的是()

A.JScrollBar对象B.JMenuBar对象C.JComboBox对象D.JDialog对象

7.一般的绘图程序要定义一个JPanel子类。

在JPanel子类中还要重定义一个方法,在这个方法中调用绘图方法,绘制各种图形。

要重定义的方法是()

A.paint()B.paintComponent()C.repaint()D.update()

8.用Runnable接口实现多线程的主要工作是()

A.声明实现Runnable接口的类,在类内实现run()方法,让线程调用start()方法。

B.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在init()方法中创建新线程,启动新线程。

C.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在Init()方法或start()方法中创建新线程,在start()方法中启动新线程。

D.声明实现Runnable接口的类,在类内实现run()方法,在init()方法中创建新线程,在start()方法中启动新线程。

9.程序如果要按行输入输出文件的字符流,最合理的方法是采用()

A.BufferedReader类和BufferedWriter类B.InputStream类和OutputStream类

C.FileReader类和FileWriter类D.File_Reader类和File_Writer类

10.在编写访问数据库的Java程序中,要用到DriverManager类。

该类的作用是()

A.存储查询结果B.处理与数据库的连接

C.在指定的连接中处理SQL语句D.处理驱动程序的加载和建立数据库连接

二、填空题(本大题共10小题,每小题2分,共20分)

请在每小题的空格中填上正确答案。

错填、不填均无分。

11.Java程序的字节码文件的扩展名是_________。

12.构造一个Java表达式:

y/x>5,并且x!

=0。

这个表达式是_________。

13.在类声明之前用_________修饰,声明类是不能被再继承的类,即它不能再有子类。

14.设有字符串定义:

Strings="ABCDABCD";

则表达式s.indexOf("B")的值是_________。

1

15.在实现接口ActionListener的方法actionPerformed()中,常用的有两个获得事件源的方法,它们是getActionCommand()和_________。

16.使用单选按钮的方法是将一些单选按钮用_________对象分组,使同一组内的单选按钮只允许一个被选中。

17.在Java语言中,用类Font对象设置字型。

如果要设置的字型是:

细明体、正常风格(Font.PLAIN),12磅字号,构造这样要求的Font对象fnA的代码是_________。

18.线程从阻塞状态恢复到就绪状态,有三种途径:

自动恢复、用resume()方法恢复和用_________方法恢复。

19.为普通的8位字节流文件读和写操作提供支持的类是_________。

20.Connection类是java.sql包中用于处理与数据库连接的类。

Connection对象是用来表示_________的对象,Java程序对数据库的操作都在这种对象上进行。

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

21.请写出表示year年是闰年的Java表达式。

闰年的条件是:

每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。

22.请写出在类的方法的定义之前,加上修饰字public、private的区别。

23.请写出将文本区text放置于滚动面板jsp,并将滚动面板jsp添加到JFrame窗口myFrame的Java语句。

24.要用Graphics2D类的方法画一个图形,首先要把参数对象g强制转换成Graphics2D对象;然后,用图形类提供的静态方法Double()创建一个图形对象;最后,以图形对象为参数调用Graphics2D对象的draw()方法绘制这个图形。

请写出用这样的方法绘制一条线段的程序段,线段的两个端点分别是(10.0,10.0)和(30.0,30.0)。

25.请写出字符流数据与字节流数据的区别。

26.请写出URLConnection类在编写Java网络应用程序中的作用。

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

27.方法intsigmaDigit(intn)的功能是求出十进制整数n的各位数字之和。

例如,n=1234,该方法的返回值是10。

staticintsigmaDigit(intn)

{intsum=0,d;

while(n>0){

d=n%10;

_________;

n/=10;

}

_________;

}

28.以下小应用程序能响应鼠标按动的事件,当鼠标在正文区的某个位置被点击时,就在该位置显示一个记号“×”,程序限制最多保留最新20个位置。

importjava.applet.*;importjava.awt.*;

importjavax.swing.*;importjava.awt.event.*;

classMyPanelextendsJPanel{

publicvoidprint(Graphicsg,intx,inty)(

g.setColor(Color.red);

g.drawLine(x-5,y-5,x+5,y+5);

g.drawLine(x+5,y-5,x-5,y+5);

}

}

classMyWindowextendsJFrameimplementsMouseListener{

finalintMaxMarks=20;

intcurrentMarks=0,markCount=0;

Pointmarks[]=newPoint[MaxMarks];

MyPanelpanel;

MyWindow(){

this.setLocation(100,100);

this.setSize(300,300);

Containercon=this.getContentPane();

panel=newMyPanel();con.add(panel);

_________(this);

this.setVisible(true);

}

publicvoidpaint(Graphicsg){

inti;

g.clearRect(0,0,this.getWidth(),this.getHeight());

for(i=0;i

_________(g,marks[i].x,marks[i].y);

}

}

publicvoidmousePressed(MouseEvente){}

publicvoidmouseReleased(MouseEvente){}

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseExited(MouseEvente){}

publicvoidmouseClicked(MouseEvente){

marks[currentMarks]=newPoint(e.getX(),e.getY());

if(markCount

currentMarks=(currentMarks+1)%MaxMarks;

repaint();

}

}

publicclassClass1extendsApplet{

publicvoidinit(){

MyWindowmyWndow=newMyWindow();

}

}

29.这是一个处理选择项目事件的子窗口类。

窗口中有2个选择框,当选中某个选择框时,文本框将显示选择框对应的信息。

classMyWindowextendsJFrameimplementsItemListener{

JTextFieldtext;

JCheckBoxboxl,box2;

MyWindow(Strings){

_________;

Containercon=this.getContentPane();

this.setLocation(100,100);this.setSize(400,200);

text=newJTextField(10);

box1=newJCheckBox("A计算机",false);

box2=newJCheckBox("B计算机",false);

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

con.add(newJLabel("计算机产品介绍",JLabel.CENTER));

add(newJLabel("计算机2选1",JLabel.CENTER));

con.add(box1);con.add(box2);con.add(text);

box1.addItemListener(this);

box2.addItemListener(this);

this.setVisible(true);this.pack();

}

publicvoiditemStateChanged(_________e){

if(e.getItemSelectable()==box1){

text.setText("A公司生产");

}elseif(e.getItemSelectable()==box2){

text.setText("B公司生产");

}

}

}

30.这是一个播放幻灯片的小应用程序中的paint()方法。

设幻灯片已由小应用程序的init()方法装入内存,并存放于myImage数组中,幻灯片的张数放于变量num中,paint()方法要播放的幻灯片号是intcurrentImage=0;

finalintnum=30;

Image[]myImage=new_________[num];

……

publicvoidpaint(Graphicsg){

if((mylmage[currentImage])!

=null)

g._________(myImage[currentImage],10,10,

myImage[currentImage].getWidth(this),

myImage[currentImage].getHeight(this),this);

}

31.以下定义的类ShareData用于管理多个线程共享数据val。

为了保证对共享数据val修改的完整性,线程对val的操作需要互斥,类ShareData中定义的方法modiData()就是供共享val的线程修改val的方法。

程序共有20个线程共享val,有些减少val,有些增加val。

publicclassClass1{

publicstaticvoidmain(Stringargs[]){

ShareDatamrc=newShareData(50);

Thread[]aThreadArray=newThread[20];

System.out.println("\t刚开始的值是:

"+mrc.getVal());

System.out.println("\t多个线程正在工作,请稍等!

");

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

intd=i%2==0?

50:

-30;

aThreadArray[i]=newThread(newMyMultiThreadClass(mrc,d));

aThreadArray[i].start();

}

WhileLoop:

//等待所有线程结束

while(true){

for(inti=0;i<20;i++)

if(aThreadArray[i]._________())continueWhileLoop;

break;

}

System.out.println("\t最后的结果是:

"+mrc.getVal());

}

}

classMyMultiThreadClassimplementsRunnable{

ShareDataUseInteger;intdelta;

MyMultiThreadClass(ShareDatamrc,intd){

UseInteger=mrc;delta=d;

}

publicvoidrun(){

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

UseInteger.modiData(delta);

try{Thread.sleep(10);//做一些其他的处理

}catch(InterruptedExceptione){}

}

}

}

classShareData{

intval;

ShareData(intinitValue){val=initValue;}

intgetVal(){returnval;}

privatevoidputVal(intv){val=v;}

_________voidmodiData(intd){

putVal(getVal()+d);

}

}

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

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

classA{

intx,y;

A(inta,intb){

x=a;y=b;

}

}

publicclasssample{

publicstaticvoidmain(Stringargs[]){

Apl,p2;

p2=newA(12,15);

p1=p2;p2.x++;

System.out.println("p1.x="+p1.x);

}

}

33.阅读下列程序,请写出调用pascal(4)的输出结果。

staticvoidpascal(intn){

intpas[];

pas=newint[n];

pas[0]=1;

System.out.println(pas[0]);

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

/*由存储在pas中的原来内容生成新内容*/

pas[i-l]=1;

for(intj=i-2;j>0;j--)

pas[j]=pas[j]+pas[j-1];

for(intj=0;j

System.out.print(pas[j]+"");

System.out.println();

}

}

34.阅读下列程序,请用示意图画出程序运行时呈现的界面。

importjava.applet.*;

importjava.awt*;

importjavax.swing.*;

classMyPanelextendsJPanel{

JButtonbutton;JLabellabel;

MyPanel(Strings1,Strings2){

this.setLayout(newGridLayout(2,2));

button=newJButton(s1);

label=newJLabel(s2,JLabel.CENTER);

add(button);add(label);add(newJLabel());

}

}

publicclassClass1{

publicstaticvoidmain(Stringargs[]){

JFramemw=newJFrame("一个示意窗口");

mw.setSize(400,250);

Containercon=mw.getContentPane();

con.setLayout(newBorderLayout());

MyPanelpanel1,panel2;

panel1=newMyPanel("按钮1","标签1");

panel2=newMyPanel("按钮2","标签2");

JButtonbutton=newJButton("开始按钮");

con.add(panel1,"North");con.add(panel2,"South");

con.add(button,"Center");

mw.setVisible(true);

}

}

35.阅读下列程序,请回答以下问题:

(1)程序要求在文本框text中输入的内容是什么?

(2)辅助文本区showArea组件的作用是什么?

(3)如何使程序开始下载网络文本文件?

(4)程序采用什么输入方式下载网络文件?

import.*;importjava.awt.*;

importjava.awt.event.*;import,java.io.*;importjavax.swing.*;

publicclassClass1{

publicstaticvoidmain(Stringargs[]).

{newConnectNet("读取网络文本文件示意程序");}

}

classConnectNetextendsJFrameimplementsActionListener{

JTextFieldtext=newJTextField(30);

JTextAreashowArea=newJTextArea();

JButtonb=newJButton("下载");JPanelp=newJPanel();

ConnectNet(Strings){

super(s);Containercon=this.getContentPane();

p.add(text);p.add(b);

JScrollPanejsp=newJScrollPane(showArea);

b.addActionListener(this);

con.add(p,"North");con.add(jsp,"Center");

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

setSize(500,400);setVisible(true);

}

publicvoidactionPerformed(ActionEvente){

StringurlName=text.getText();

try{URLurl=newURL(urlName);//由网址创建URL对象

URLConnectiontc=url.openConnection();//获得URLConnection对象

tc.connect();//设置网络连接

InputStreamReaderin=newInputStreamReader(tc.getInputStream());

BufferedReaderdis=newBufferedReader(in);StringinLine;

while((inLine=dis.readLine())!

=null){showArea.append(inLine+"\n");}

dis.close();

}catch(MalformedURLExceptione2){e2.printStackTrace();}

catch(IOExceptione3){e3.printStackTrace();}

}

}

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

importjava.applet.*;importjava.awt.*;

publicclassClass1extendsjava.applet.AppletimplementsRunnable{

ThreadmyThread=null;

publicvoidstart(){

setSize(500,400);

if(myThread==null){

myThread=

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

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1