admin 管理员组

文章数量: 1184232


2024年3月13日发(作者:swiper跳转指定swiper)

2015年4月全国自考Java语言程序设计

2015年4月全国自考Java语言程序设计(一)考前密卷04747(含答案)

一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一

个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

第1题 Java语言约定,显示屏上一个长方形区域为程序绘图区域,坐标原点(0,0)位于整个区域

的()

A. 中心

B. 左上角

C. 右上角

D. 自由设定

【正确答案】 B

【你的答案】

本题分数 1 分

第2题 当用户在文件对话框中选择了文件并按下了“打开/保存”按钮后,程序可利用一个方法取得

文件对象,并针对这个对象使用getName()取得文件名,使用getPath()取得文件的路径,则这个方法

是()

A. getFile()

B. getSelectFile()

C. getSelectedFile()

D. getDescription()

【正确答案】 C

【你的答案】

本题分数 1 分

第3题 在Java语言的包中,用于语言符号(单词)分析的类是()

A. stringTokenizer

B. StringTokenizer

C. ToKenizer

D. tokenizer

【正确答案】 B

【你的答案】

本题分数 1 分

2015年4月全国自考Java语言程序设计

第4题 在Java语言中,一般不作为容器使用的是()

A. JDialog

B. JFrame

C. JTextArea

D. JPanel

【正确答案】 C

【你的答案】

本题分数 1 分

第5题 为8位字节流数据提供读操作支持的类是()

A. FileInputStream

B. FileOutputStrem

C. FileReader

D. FileWriter

【正确答案】 A

【你的答案】

本题分数 1 分

第6题 下列代码中,错误的Java整型常量是()

A. 007

B. 008

C. 0x3AA

D. 0x3AB

【正确答案】 B

【你的答案】

本题分数 1 分

第7题 下列有关事件监视器的说法正确的是()

A. 一个组件上不可以注册多个事件监视器

B. 一个事件监视器可以被注册到多个组件上

C. 一个组件上注册多个事件监视器会发生冲突,不会起作用

D. 一个组件上注册多个事件监视器,只有最后一个事件监视器会起作用

【正确答案】 B

2015年4月全国自考Java语言程序设计

【你的答案】

本题分数 1 分

第8题 一个实现Runnabel接口的类必须要实现的方法是()

A. start()

B. run()

C. sleep()

D. init()

【正确答案】 B

【你的答案】

本题分数 1 分

第9题 当线程A使用某个对象,而此对象又需要线程B修改后才能符合A线程的需要,这时线程A

就要等待线程B完成修改工作,这种现象称为()

A. 线程的同步

B. 线程的互斥

C. 线程的调度

D. 线程的就绪

【正确答案】 A

【你的答案】

本题分数 1 分

第10题 在Java语言中,支持网络通信的软件所在的包是()

A.

B.

C.

D. et

【正确答案】 B

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

不填均无分。

第1题 在 Java 中所有实现的多维数组,实际上是由一维数组构成的___。

2015年4月全国自考Java语言程序设计

【正确答案】 (P71)数组的数组

【你的答案】

本题分数 2 分

你的得分

第2题 题中横线处答案为:___

修改分数

【正确答案】 (P70)5

【你的答案】

本题分数 2 分

你的得分

修改分数

第3题 流使用结束后,关闭流并且释放与该流相关的资源,用___方法。

【正确答案】 (P177)close()

【你的答案】

本题分数 2 分

你的得分

修改分数

第4题 Java语言提供一个Graphics2D类,这个类定义了几种方法用于添加或改变图形的状态属性,

其中___属性控制线条的宽度、笔形样式、线段连接方式或短划线图案。

【正确答案】 (P145)stroke

【你的答案】

2015年4月全国自考Java语言程序设计

本题分数 2 分

你的得分

修改分数

第5题 在Java语言中,整型常量有十进制、八进制和十六进制三种写法,其中八进制是以数字字符

0开头,十六进制是以___开头。

【正确答案】 (P10)0x

【你的答案】

本题分数 2 分

你的得分

第6题 以下代码的输出结果是___。

n(5>4||3<4);

修改分数

【正确答案】 (P15)true

【你的答案】

本题分数 2 分

你的得分

修改分数

第7题 采用___布局的容器中多个组件拥有同一个显示空间,某一时刻只能显示一个组件。

【正确答案】 (P100)CardLayout

【你的答案】

本题分数 2 分

你的得分

修改分数

第8题 Java小程序要播放一个与程序文件在一起的名为的音乐文件,小程序中应用先创

建AudioClip对象,若对象名为myClip,则创建对象myClip的代码为___。

2015年4月全国自考Java语言程序设计

【正确答案】

(P154)AudioClip myClip=getAudioClip(getCodeBase(),"");

【你的答案】

本题分数

2 分

你的得分

第9题 ___将显示区域按行、列划分成一个个大小相等的格子,组件依次放入这些格子中。

【正确答案】 (P98)GridLayout

[解析]常用的布局类:FlowLayout为依次放置组件;BorderLayout将组件放置在边界

修改

分数

上; CardLayout将组件像扑克 牌一样叠放,而每次只能显示其中的一个组件;GridLayout

将显示区域按行、列划分成一个个大小相等的格子,组件依次放入这些格子 中;

GridBagLayout能进行更精细的位置控制。

【你的答案】

本题

分数

2 分

你的得分

第10题 Java小应用程序中,为了在Java页面上显示动态效果,需要使用___方法,该方法先清除

paint()方法以前所画的内容,然后再调用paint()方法。

【正确答案】 (P63)repaint()

【你的答案】

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

第1题 下面小应用程序启动后自动播放一个声音文件“”。

import .*;

public class Class3001 extends Applet

2015年4月全国自考Java语言程序设计

{

public void start()

{

___=getAudioClip(getCodeBase(),"");

clip.___;

}

}

【正确答案】 AudioClip clip

play()

【你的答案】

本题分数 2 分

你的得分

修改分数

第2题 下列应用程序,产生两个组合框,一个可以选择月份,一个可以选择2000~2009年之间的年份。

import .*;

public class Class31002 extends JFrame

{

JComboBox monthBox=new JComboBox();

___

public Class31002()

{

super("Expiration Date");

setSize(240,90);

setDefaultCloseOperation(_ON_CLOSE);

JPanel pane=new JPanel();

JLabel exp=new JLabel("Expiration Date:");

for (int i=0;i<13;i++) m(" "+i);

for(int i=2000;i<2010;i++) m(" "+i);

(exp);

(monthBox);

___

setContentPane(pane);

}

public static void main(String[]arg)

{

new Class31002().setVisible(true);

}

}

2015年4月全国自考Java语言程序设计

【正确答案】 JComboBox yearBox=new JComboBox();

(yearBox)

【你的答案】

本题分数 2 分

你的得分

第3题 以下小应用程序运行后显示一幅图片。

import .*;

import .*;

public class Class3005 extends Applet

{

Image myImg;

public void start()

{

myImg=___(getCodeBase(),"");

}

public void paint(Graphics g)

{

g.___(myImg,0,0,this);

}

}

【正确答案】 getImage

drawImage

【你的答案】

本题分数 2 分 修改分数

你的得分

第4题 方法f2702(int n)返回2~n之间的所有质数的个数。

int f2702(int n)

{

int i,j,count=0;

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

{

修改分数

2015年4月全国自考Java语言程序设计

for(j=2;j

if (i%j==0)___

if(j==i)___;

}

return count;

}

【正确答案】 break;

count++

【你的答案】

本题分数 2 分

你的得分

修改分数

第5题 下面程序运行后,连续输出20个相同的单词。请完成程序。

public class C3102

{

public static void main(String args[])

{

___

();

}

}

class Hello implements Runnable

{

int i=0;

public void run()

{

while(___)

{

(i+":Hello");

}

}

}

【正确答案】 Thread t=new Thread(new Hello());

i++<20

【你的答案】

2015年4月全国自考Java语言程序设计

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

第1题 写出下面程序的运行结果。

public class Class34ThreadTest

{

public static void main(String args[])

{

Hello h=new Hello();

Thread t=new Thread(h);

();

}

}

class Hello implements Runnable

{

int i;

public void run()

{

while(true)

{

n("Hello"+i++);

if(i==5) break;

}

}

}

【正确答案】 输出结果为:

Hello0

Hello1

Hello2

Hello3

Hello4

【你的答案】

本题分数 4 分

你的得分

修改分数

2015年4月全国自考Java语言程序设计

第2题 阅读程序,画出程序运行后的界面并写出程序的功能。

import .*;

import .*;

import .*;

public class Class3601 implements AdjustmentListener

{

JScrollBar myBar;

JLabel label;

public Class3601(String s)

{

JFrame myWin=new JFrame(s);

Container con=tentPane();

out(new GridLayout(2,1));

myBar=new JScrollBar(NTAL,5,20,0,300);

label=new JLabel(""+ue(),);

ustmentListener(this);

(label);

(myBar);

e(300,100);

ible(true);

}

public void adjustmentValueChanged(AdjustmentEvent e)

{

t(""+ustable().getValue());

}

public static void main(String[] args)

{

new Class3601("Class3601");

}

}

【正确答案】 程序运行后的界面如下:

程序的功能是:拖动滑块,在上面的标签中间显示滑块的当前值,范围为0~280。

【你的答案】

2015年4月全国自考Java语言程序设计

本题分

数 4 分

你的得分

第3题 阅读下面程序,写出程序功能。

import .*;import .*;

public class Class3602 extends Applet implements Runnable

{

Thread redBall,blueBall;Graphics redPen,bluePen;

int blueSeta=0,redSeta=0;

public void init()

{

setSize(250,200);

redBall=new Thread(this);blueBall=new Thread(this);

redPen=getGraphics();bluePen=getGraphics();

or();or();

setBackground();

}

public void start()

{

();();

}

public void run()

{

int x,y;

while(true)

{

if(tThread()==redBall)

{

x=(int)(80.0*(3.1415926/180.0*redSeta));

y=(int)(80.0*(3.1415926/180.0*redSeta));

or();

al(100+x,100+y,10,10);

redSeta +=3;

if(redSeta>=360) redSeta=0;

x=(int)(80.0*(3.1415926/180.0*redSeta));

y=(int)(80.0*(3.1415926/180.0*redSeta));

or();

al(100+x,100+y,10,10);

try {(20);}

catch(InterruptedException e){}

}

else if (tThread()==blueBall)

{

x=(int)(80.0*(3.1415926/180.0*blueSeta));

修改

分数

2015年4月全国自考Java语言程序设计

y=(int)(80.0*(3.1415926/180.0*blueSeta));

or();

al(150+x,100+y,10,10);

blueSeta-=3;

if(blueSeta<=-360) blueSeta=0;

x=(int)(80.0*(3.1415926/180.0*blueSeta));

y=(int)(80.0*(3.1415926/180.0*blueSeta));

or();

al(150+x,100+y,10,10);

try {(40);}

catch(InterruptedException e){}

}

}

}

}

【正确答案】 程序功能:小应程序创建两个线程,一个顺时针画圆,一个逆时

针画圆。

【你的答案】

本题分数 4

你的得分

第4题 阅读下面程序,写出程序运行结果。

class printer

{

synchronized void printchar(char ch)

{

for (int i=1;i<=3;i++)(ch);

n();

}

}

class printerThread extends Thread

{

printer ptr;

char ch;

printerThread(printer ptr,char ch)

{

=ptr;

=ch;

}

修改分

2015年4月全国自考Java语言程序设计

public void run()

{

for (int i=1; i<=3;i++)har(ch);

}

}

public class Class3605

{

public static void main(String[] args)

{

printer ptr=new printer();

printerThread pt1=new printerThread(ptr,?A?);

printerThread pt2=new printerThread(ptr,?B?);

();

();

}

}

【正确答案】 程序运行结果:

AAA

AAA

AAA

BBB

BBB

BBB

[解析]本程序当两个循环次数改为30时,输出结果将不再是先所有行都是A,然

后所有行都是B,会出现若干行A,若干

行B,再若干行A,若干行B的情况,那是因为两个线程在同时运行且运行次数比较

多,CPU在分时为它们服务,循环次数

少分时体现不出来,CPU的一个时间单位一个线程就已经完成了。即使是循环30次,

但也不会出现一行中既有A又有B的情

况,这是因为输出字符的方法printchar()被synchronized修饰,任何时刻都只能

有一个线程使用printchar(),在一行

中不会输出一部分A一部分B,如果把synchronized去掉,则会出现这种情况。

【你的答案】

2015年4月全国自考Java语言程序设计

本题分数

4 分

你的得分

第5题 阅读下列程序,写出程序运行结果。

import .*;

import .*;

public class C3502 implements MouseMotionListener

{

JTextField text=new JTextField(30);

C3502()

{

JFrame myWin=new JFrame("Ex0611");

aultCloseOperation(_ON_CLOSE);

nds(100,100,300,100);

tentPane().add(text,"North");

seMotionListener(this);

ible(true);

}

public void mouseDragged(MouseEvent e)

{

int x=(),y=();

t("拖动鼠标,鼠标坐标为:"+x+","+y);

}

public void mouseMoved(MouseEvent e)

{

int x=(),y=();

t("移动鼠标,鼠标坐标为:"+x+","+y);

}

public static void main(String[] args)

{

new C3502();

}

}

修改

分数

【正确答案】 程序功能:这是一个演示鼠标拖动和移动的程序。界面有一个文本框,当鼠标拖动或

移动时,在文本区中输出鼠标是鼠标拖动还是鼠标移动,及鼠标位置坐标。

【你的答案】

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

2015年4月全国自考Java语言程序设计

第1题 编写一个方法hex3704(),要求将一个十进制正整数n转换成十六进制数,其中n为方法参数,

十六进制数以字符串(如有字母用大写)的形式返回。

while(--i>=0)

{

str=str+(c[i]<10?c[i]:s[c[i]-10]);

}

return str;

}

[解析]完整的程序如下:

public class Class3704

{

static String hex3704(int n)

{

int c[]=new int[8];//整型n转换成十六进制最多8位

int i=0;

while(n>0)

{

c[i++]=n%16;//余数按顺序放入c数组

n=n/16;

}

String s[]={"A","B","C","D","E","F"},str="";

while(--i>=0)//逆序取c中数据,9以上转化为大写字母

{

str=str+(c[i]<10?c[i]:s[c[i]-10]);

}

return str;

}

public static void main(String[] args)

{

n(hex3704(269));

}

}

输出结果:10D" />

【正确答案】 String hex3704(int n)

{

int c[]=new int[8];

int i=0;

while(n>0)

{

c[i++]=n%16;

2015年4月全国自考Java语言程序设计

n=n/16;

}

String s[]={"A","B","C","D","E","F"},str="";

while(--i>=0)

{

str=str+(c[i]<10?c[i]:s[c[i]-10]);

}

return str;

}

[解析]完整的程序如下:

public class Class3704

{

static String hex3704(int n)

{

int c[]=new int[8];//整型n转换成十六进制最多8位

int i=0;

while(n>0)

{

c[i++]=n%16;//余数按顺序放入c数组

n=n/16;

}

String s[]={"A","B","C","D","E","F"},str="";

while(--i>=0)//逆序取c中数据,9以上转化为大写字母

{

str=str+(c[i]<10?c[i]:s[c[i]-10]);

}

return str;

}

public static void main(String[] args)

{

2015年4月全国自考Java语言程序设计

n(hex3704(269));

}

}

输出结果:10D

【你的答案】

本题分数 6 分

你的得分

修改分数

第2题 设计一个应用程序,原始数据从程序界面的一个文本区输入,用户点击按钮后,在另一个文本

区上输出排序后的数据,并将排序后的数据输出到文件中。已给出部分代码,请完成程序。

import .*;

import .*;

import .*;

import .*;

import .*;

public class Class3805 implements ActionListener

{

JTextArea ta1=new JTextArea(10,20);

JTextArea ta2=new JTextArea(10,20);

JButton butt=new JButton("SortAndSave");

public static void main(String[] args)

{

new Class3805();

}

public Class3805()

{

JFrame myWin=new JFrame("Class3805");

aultCloseOperation(_ON_CLOSE);

Container con=tentPane();

out(new FlowLayout());

kground();

(ta1);(butt);(ta2);

nds(200,200,600,300);

ionListener(this);

ible(true);

}

public void actionPerformed(ActionEvent e)

{

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

}

}

2015年4月全国自考Java语言程序设计

int n=okens();

int a[]=new int[n];

int i=-1,j;

while(++i

{

a[i]=nt(ken());

}

for(i=0;i

for(j=i+1;j

{

if(a[i]>a[j])

{int t=a[i];a[i]=a[j];a[j]=t;}

}

for(i=0;i

{

(a[i]+" ");

}

RandomAccessFile out=null;

try

{

out=new RandomAccessFile("","rw");

ytes(t());

}

catch(FileNotFoundException e1){}

catch(IOException e2){}" />

【正确答案】 String s=t();

StringTokenizer str=new StringTokenizer(s,"nt ");

int n=okens();

int a[]=new int[n];

int i=-1,j;

while(++i

{

a[i]=nt(ken());

}

for(i=0;i

for(j=i+1;j

{

2015年4月全国自考Java语言程序设计

if(a[i]>a[j])

{int t=a[i];a[i]=a[j];a[j]=t;}

}

for(i=0;i

{

(a[i]+" ");

}

RandomAccessFile out=null;

try

{

out=new RandomAccessFile("","rw");

ytes(t());

}

catch(FileNotFoundException e1){}

catch(IOException e2){}

【你的答案】

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

第1题 请解释clipRect(int x,int y,int w,int h)方法的功能及参数含义。

【正确答案】 (P143)方法的功能是:限制图形在指定区域内显示,超出区域的图形

不显示。当多个限制区域有重叠时,得到限制区

域的交集区域。

参数含义:x和y是指定区域的左上角坐标(x,y),w和h是指定区域的宽和高。

【你的答案】

本题分数

3 分

你的得分

修改

分数

2015年4月全国自考Java语言程序设计

第2题 CardLayout布局的容器可容纳多个组件,但是多个组件拥有一个显示空间。如何设置

CardLayout布局及显示某一组件?

【正确答案】 (P100)设置CardLayout布局:先创建CardLayout布局对象,然后使

用setLayout()方法为容器设置CardLayout布局,

最后调用容器的add()方法将组件加入容器。

显示容器中的某一组件有如下两种方式:

①使用show(容器名,组件代号),指定某个容器中的某个组件显示。

②按组件加入容器的顺序显示组件。first(容器)、last(容器)、previous(容器)、

next(容器)。

【你的答案】

本题分数

3 分

你的得分

修改

分数

第3题 阅读下面程序,如果在横线上分别填写①i=m②i=b③i=p.a④i=(100)四个赋值语句,

有哪些不合法?请写出原因。

class Class2201

{

private int a;

public int change(int m){return m;}

}

public class Class22 extends Person

{

public int b;

public static void main(String[]args)

{

Class2201 p=new Class2201();

Class22 t=new Class22();

int i;

___;

}

}

【正确答案】 (P48)

①不合法:m在Class22中没有声明过,不能使用。

2015年4月全国自考Java语言程序设计

②不合法:b是非静态成员,不能在静态方法main()中使用。

③不合法:a是Class2201类的private成员,不能在Class2201类外直接访

问。

④合法。

【你的答案】

本题分数 3

你的得分

修改分

第4题 文本框(JTextField)是界面中用于输入和输出一行文本的区域。文本框处理程序的基本内容有

哪五个方面?

【正确答案】 (P102)

①声明一个文本框名。

②建立一个文本框对象。

③将文本框对象加入到某个容器。

④对需要控制的文本框对象注册监视器,监听文本框的输入结束事件(即输入

回车键)。

⑤一个处理文本框事件的方法,完成结截获事件进行判断和处理。

【你的答案】

本题分数 3

你的得分

修改分

第5题 请写出RandomAccessFile类中read(byte b[],int s,int n)方法的功能及参数含义。

【正确答案】 (P180)从文件中读出若干字节存入到数组中。参数b为要存入的数组,

s为存入b数组的起始位置,n为读取的字节数或

者直到相应流的结尾,并且返回实际已经读取的字节数。

【你的答案】

2015年4月全国自考Java语言程序设计

本题分数

3 分

你的得分

第6题 控制声音的播放有哪3个方法?

修改

分数

【正确答案】 (P154)play()播放声音,loop()循环播放和stop()停止播放。

【你的答案】


本文标签: 程序 组件 方法 显示 线程