Java语言程序设计 自考及答案.docx

上传人:b****8 文档编号:10624819 上传时间:2023-02-21 格式:DOCX 页数:166 大小:315.96KB
下载 相关 举报
Java语言程序设计 自考及答案.docx_第1页
第1页 / 共166页
Java语言程序设计 自考及答案.docx_第2页
第2页 / 共166页
Java语言程序设计 自考及答案.docx_第3页
第3页 / 共166页
Java语言程序设计 自考及答案.docx_第4页
第4页 / 共166页
Java语言程序设计 自考及答案.docx_第5页
第5页 / 共166页
点击查看更多>>
下载资源
资源描述

Java语言程序设计 自考及答案.docx

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

Java语言程序设计 自考及答案.docx

Java语言程序设计自考及答案

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

(一)真题及答案

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

1:

参考答案:

D

参考解析:

(P8)本题考核知识点是Java语言标识符命名规则。

Java语言标识符可以按以下规则任意命名:

①由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成。

②限定标识符的第一个字符不能是数字字符。

选项D答案第一个字符是数字字符。

试题内容:

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

A:

Aa12

B:

大x

C:

y小

D:

5x

2:

参考答案:

A

参考解析:

(P14)本题考核知识点是Java算术运算符——“/”。

“/”为除法运算符,当除数和被除数均为整数类型数据时,则结果也是整数类型数据。

所以当x=53时,x/2=26。

试题内容:

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

intx=53;

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

A:

27.0

B:

27.5

C:

1.026

D:

1.026.5

3:

参考答案:

B

参考解析:

(P46)本题考核知识点是实例变量、类变量、局部变量。

类的成员变量分为实例变量和类变量。

在定义成员变量时,用关键字static修饰的是类变量,定义时未用static修饰的是实例变量。

类变量是类的所有对象共享的成员变量,一个类变量在类中只有一个,它属于整个类,而不属于类的某个对象。

引用类变量的途径有两条,或通过类,或通过对象。

类的方法体中定义的变量称为局部变量,方法参数也属于局部变量。

试题内容:

A:

x、y和s都是成员变量

B:

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

C:

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

D:

x、y和s都是实例变量

4:

参考答案:

C

参考解析:

(P77)本题考核知识点是StringTokenizer类。

java.util包中的类StringTokenizer用于语言符号(单词)的分析,分析出字符串中的单词。

另外还有命名的习惯约定(行业习惯,不是规定):

一般变量名、方法名用小写英文字母开头,类名首字母用大写字母,若命名由若干个单词组成,后面的每个单词用大写开头;文字和常数全用大写字母命名;包名全部用小写字母。

试题内容:

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

A:

String

B:

StringBuffer

C:

StringTokenizer

D:

stringTokenizer

5:

参考答案:

D

参考解析:

(P91)本题考核知识点是JFrame类和关键字super。

在用Swing编写GUI程序时,通常不直接用JFrame创建窗口对象,而用JFrame派生的子类创建窗口对象,在子类中可以加入窗口的特定要求和特别的内容,这时可以使用超类的构造方法完成窗口的标题设置即super(s)。

选项C完整的使用形式可以这样:

JFramemyWin=newJFrame(s)//创建JFrame窗口对象myWin,标题是s

但这样不符合本题题干“为程序的子窗口设定标题”的要求。

试题内容:

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

A:

JFrame(s)

B:

window(s)

C:

newJFrame(s)

D:

super(s)

6:

参考答案:

A

参考解析:

(P118)

试题内容:

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

A:

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

B:

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

C:

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

D:

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

7:

参考答案:

B

参考解析:

(P137)本题考核知识点是字型要素。

Java的文字字型有三个要素:

字体、风格和字号。

常用的字体有TimesNewRoman、Symbol、宋体和楷体等。

常用的风格有正常、粗体和斜体,分别用三个常量表示:

Font.PLAIN、Font.BOLD和Font.ITALIC,风格可以组合使用。

字号是字的大小,单位是磅。

试题内容:

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

A:

字体、字形和大小

B:

字体、风格和字号

C:

字形、风格和字号

D:

字形、颜色和字号

8:

参考答案:

D

参考解析:

(P162)本题考核知识点是多线程。

在Java中实现多线程一般情况下是先声明Thread类的子类,在子类中重载run()方法,然后创建这个子类的实例,让线程调用start()方法。

试题内容:

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

A:

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

B:

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

C:

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

D:

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

9:

参考答案:

C

参考解析:

(P175)本题考核知识点是输入输出流。

为Java的8位字节流数据的读和写操作提供支持的类分别是FileInputStream类和FileOutputStream类,它们分别是InputStream类和OutputStream类的子类;为Java的16位Unicode字符流数据的读和写操作提供支持的类分别是FileReader类和FileWriter类,它们分别是Reader类和Writer类的子类。

试题内容:

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

A:

FileInputStream类和FileOutputStream类

B:

InputStream类和OutputStream类

C:

FileReader类和FileWriter类

D:

File_Reader类和File_Writer类

10:

参考答案:

A

参考解析:

(P191)本题考核知识点是Java网络编程。

要接收和发送信息需用URLConnection类,程序获得一个URLConnection对象,相当于完成对指定URL的一个HTTP连接。

程序有了URLConnection对象后,就可使用URLConnection类提供的方法获得流对象和实现网络连接。

试题内容:

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

A:

URLConnection对象

B:

URL对象

C:

InetAddress对象

D:

TCP/IP对象

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

错填、不填均无分。

1:

参考答案:

(P5)Applet(JApplet)类的子类

[解析]本题考核知识点是小应用程序。

一个小应用程序必须定义成一个Applet类的子类或JApplet类的子类。

试题内容:

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

2:

参考答案:

[解析](P16)

试题内容:

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

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

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

"。

这个表达式是_____。

3:

参考答案:

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

[解析]本题考核知识点是类的概念。

类的每个对象都有自己的标识,但它们具有相同的一组属性和提供相同的一组方法。

试题内容:

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

_____。

4:

参考答案:

(P45)回收内存

[解析]本题考核知识点是数组。

Java语言根据相应类型变量采用直接访问还是间接访问,把类型分成基本类型和引用类型,数组类型和类类型是引用类型。

数组进行整体赋值,其实是数组首地址的赋值,原来地址空间会自动释放。

试题内容:

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

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

……

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

5:

参考答案:

(P100)CardLayout

[解析]本题考核知识点是布局设计。

常用的布局类:

FlowLayout为依次放置组件;BorderLayout将组件放置在边界上;CardLayout将组件像扑克牌一样叠放,而每次只能显示其中的一个组件;GridLayout将显示区域按行、列划分成一个个大小相等的格子,组件依次放入这些格子中;GridBagLayout能进行更精细的位置控制。

试题内容:

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

6:

参考答案:

(P127)MouseListener

试题内容:

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

_____接口和MouseMotionListener接口。

7:

参考答案:

(P140)黄色

[解析]本题考核知识点是绘图模式。

当绘图模式设置为异或模式时,用背景色绘图出现的是异或的颜色,重画一个图形将清除图形。

试题内容:

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

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

8:

参考答案:

(P161)run()

[解析]本题考核知识点是多线程。

Java程序实现多线程应用有两种途径:

一是继承Thread类声明Thread子类,用Thread子类创建线程对象。

二是在类中实现Runnable接口,在类中提供Runnable接口的run()方法。

无论用哪种方法,都需要Java基础类库中的Thread类及其方法的支持。

程序员能控制的关键性工作只有两个方面,一是编写线程的run()方法;二是建立线程实例。

试题内容:

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

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

9:

参考答案:

(P179)FileWriter

[解析]本题考核知识点是缓冲式输出。

实现缓冲式输出,需要将FileWriter对象接到BufferedWriter对象上,对BufferedWriter对象使用write()方法就能实现缓冲式输出。

试题内容:

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

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

10:

参考答案:

(P193)Socket

[解析]本题考核知识点是Java网络编程。

Java语言在实现C/S模式中,套接字分为两类,在Server端使用ServerSocker类,在Client端使用Socket类。

试题内容:

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

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

1:

参考答案:

(P15)(x=2)!

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

=3)||(x!

=2&&y!

=3)

试题内容:

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

2:

参考答案:

(P57)Students1=newPerson();

Undergraduateug1=newPerson();

Undergraduateug2=newStudent();

[解析]本题考核知识点是类之间的is-a关系。

在两个相关的类之间,可能会有is-a和has-a关系。

若类A是继承扩展类B,则子类A和超类B之间是is-a关系,即类A是一个类B。

这种情况下,A类对象一定可以是B类类型,因为B类的所有成员A类也有。

也就是子类对象可以是超类类型。

语句Bb=newA()是正确的,Aa=newB()是错误的。

试题内容:

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

Personp1=newStudent();

Personp2=newUndergraduate();

Students1=newPerson();

Students2=newUndergraduate();

Undergraduateug1=newPerson();

Undergraduateug2=newStudent();

Objectob=newStudent();

3:

参考答案:

(P102)为对象添加监视器的方法是addActionListener;类必须实现的方法是publicvoidactionPerformed(ActionEvente)。

[解析]本题考核知识点是文本框输入结束动作事件(回车)。

文本框输入结束动作事件相应的监视器接口为ActionListener,要实现的接口方法是actionPerformed(),添加监视器的方法是addActoinListener()。

试题内容:

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

4:

参考答案:

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

[解析]本题考核知识点是画线段。

方法中有四个参数分别表示线段的两个端点坐标,当两个端点坐标相同时,将画出一个点,而不再是线段。

试题内容:

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

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

5:

参考答案:

(P175)importjava.io.*;

[解析]本题考核知识点是文件输入输出流。

实现输入输出操作的类库在java.io包中。

包中有一组支持打开流、向流写数据、从流读取数据和关闭流等操作的类,要使用这些类,程序必须导入java.io包。

试题内容:

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

6:

参考答案:

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

[解析]本题考核知识点是java数据库编程基础。

Java数据库连接JDBC由一组用Java语言编写的类和接口组成,JDBC是Java程序与数据库连接的API。

它可以做三件事情。

试题内容:

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

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

1:

参考答案:

n%10

returnc

[解析]本题考核知识点是%运算符和return语句。

方法中d为循环分离出整数n的每一位数字(每次取n的个位数字,n也在变化:

n/=10),在找出最大的数字后存入了变量c中,因方法有返回值类型为int,所以必须有return语句,要返回最大数字。

试题内容:

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

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

staticintmaxDingit(intn){

intc=0,d;

while(n>0){

d=_____;

if(d>c)c=d;

n/=10;

}

_____;

}

2:

参考答案:

getText()

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

[解析]本题考核知识点是图形界面设计中按钮事件方法的编写。

获取文本框中的内容使用的方法是getText(),方法名首字母均小写,后面单词首字母大写。

获取整数序列后,使用单词分析器分解出每个整数(有类型转换过程)存入数组a中,然后对所有整数进行求和。

试题内容:

某程序的界面包含一个文本区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);//刷新显示。

}

}

3:

参考答案:

JMenuItem

getActionCommand

[解析]本题考核知识点是菜单。

生成菜单条是用类JMenuBar的构造方法JMenuBar(),把菜单条放入JFrame窗口中用setJMenuBar()方法;生成菜单用类JMenu的构造方法JMenu()或JMenu(Strings);生成菜单项用类JMenuItem的构造方法JMenuItem()或JMenuItem(Strings)。

在菜单事件中获得事件源的方法是getSource(),获得事件源文字信息的方法是getActionCommand()。

试题内容:

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

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

"的字样。

……

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

……

publicvoidactionPerformed(ActionEvente){

if(egetSource()=singingItem)

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

”);

}

4:

参考答案:

Graphics

repaint()或update()

[解析]本题考核知识点是小应用程序中paint()和repaint()方法的使用。

paint()方法需要Graphics类型参数,当单击鼠标时,要在paint()方法中再次显示图片,可以调用repaint()方法,使程序先清除paint()运行的结果,再运行paint();也可以调用update()方法,该方法会使系统自动调用repaint()方法。

试题内容:

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

小应用程序的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;//循环逐张显示

_____;

}

5:

参考答案:

synchronized

notify()

[解析]本题考核知识点是线程的互斥和同步。

在Java语言中,使用关键字synchronized定义临界段,能对共享对象的操作上锁,使得某一时刻只允许一个线程使用这个共享对象。

但是为了同步,可在临界段中使用wait()、notify()和notifyAll()方法。

wait()让线程一直等待,notify()方法通知第一个处于等待的线程结束等待。

notifyAll()方法使所有处于等待的线程都结束等待,重新竞争CPU。

试题内容:

以下定义的类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;}

}

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

1:

参考答案:

yuanCircle62.8(2分)

yuanArea314.0(2分)

试题内容:

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

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);

}

}

2:

参考答案:

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

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

当前位置:首页 > IT计算机 > 计算机硬件及网络

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

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