2023年6月20日发(作者:)
(/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
2008年10月全国自考Java语言程序设计(一)真题及答案
一、单项选择题(本大题共10小题,每小题1分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.下述字符组合不能作为Java程序标识符的是( )
A.Aa12 B.大x C.y小 D.5x
2.以下程序代码的输出的结果是( )
int x=53; System. out. println(1.0+x/2);
A.27.0 B.27.5 C.1.026 D.1.026.5
3.参照以下Java代码,以下四个叙述中最确切的是( )
class A{ int x; static int y;
void fac(String s){Syatem. out. println("字符串:"+s);}
}
A.x、y和s都是成员变量 B.x是实例变量、y是类变量、s是局部变量
C.x和y是实例变量、s是参数 D.x、y和s都是实例变量
4.需要分析字符串,并将字符串分解成可被独立使用的单词,可使用java. util包中的类是
( )
A.String B.StringBuffer C.StringTokenizer D.stringTokenizer
5.要为程序的子窗口设定一个由字符串s指定的名字,可以采用的代码是( )
A.JFrame(s) B.window(s) C.new JFrame(s) D.super(s)
6.以下关于菜单的叙述中,正确的是( )
A.菜单分三级定义,最高一级的是菜单条,菜单条中放菜单,菜单中放菜单项
B.菜单分三级定义,最高一级的是菜单,菜单中放菜单条,菜单条中放菜单项
C.菜单分两级定义,最高一级的是菜单,菜单中放菜单项
D.菜单分两级定义,最高一级的是菜单条,菜单条中放菜单项
7.以下所述内容全部是字型要素的是( )
A.字体、字形和大小 B.字体、风格和字号 C.字形、风格和字号 D.字形、颜色和字号
8.用Thread子类实现多线程的步骤顺序是( )
A.声明Thread类的子类,创建Thread子类的实例,让线程调用start()方法
B.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例
C.创建Thread子类的实例,让线程调用start()方法
D.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例,让线程调用start()方法
9.为16位Unicode字符流提供读和写操作支持的类分别是( )
A.FileInputStream类和FileOutputStream类 B.InputStream类和OutputStream类
C.FileReader类和FileWriter类 D.File_Reader类和File_Writer类
10.能利用对象提供的方法获得流对象和实现网络连接的是( )
A.URLConnection对象 B.URL对象 C.InetAddress对象 D.TCP/IP对象
二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。
11.一个小应用程序必须定义成一个_________。
12.用条件运算符构造一个表达式:goal等于10时,表达式的值为“对了!”,否则,表达式的值为“错了!”。这个表达式是_________。
13.类是对一组相同对象的描述,类概括了同类对象的共有性质:_________。
14.设有数组a和b的定义如下:
int[]a={1,2,3};int[]b={4,5,6}
……
执行以下代码“a=b;”,除了完成赋值操作之外,引起系统额外要做的工作是_________。
15. _________布局使容器的多个组件拥有同一个显示空间,某一时刻只能显示一个组件。
语言为处理鼠标事件提供两个接口:_________接口和MouseMotionListener接口。
17.某个绘图方法设置成“异或模式”绘图,并用黄色作为异或模式设定的绘图颜色。如果当时背景色为红色,并用红色绘制线段,则线段的实际颜色是_________。
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
18.程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_________方法;二是建立线程实例。
edWriter类是提供缓冲式输出的类。程序需要先创建_________对象,再利用这个对象创建BufferedWriter对象。
20.在Java语言中,客户端使用的套接字类是_________。
三、简答题(本大题共6小题,每小题3分,共18分)
21.请写出表示条件“x=2与y=3有且只有一个成立”的Java表达式”。
22.如果类Student是类Person的子类,类Undergraduate是类Student的子类,请指出以下代码行中哪些是不合法的。
Person p1=new Student();
Person p2=new Undergraduate();
Student s1=new Person();
Student s2=new Undergraduate();
Undergraduate ug1=new Person();
Undergraduate ug2=new Student();
Object ob=new Student();
23.请写出程序处理文本框输入结束事件(回车)添加监视器的方法,以及监视器类必须实现的接口方法。
24.请写出一条语句,能够绘制一条从点(20,30)开始,长为100像素的水平线段。设调用的对象是类型为Graphics的g。
25.某Java程序要使用文件输入输出流,请写出该程序所需要的import语句。
是Java程序与数据库连接的API,请写出JDBC能做的三件事情。
四、程序填空题(本大题共5小题,每空2分,共20分)
27.方法int maxDigit(int n)的功能是找出十进制整数n各位中最大的一位数字。例如,n=23765,该方法的返回值是7。
static int maxDigit(int n){
int c=0,d;
while(n>0){
d=_______;
if(d>c) c=d;
n/=10;
}
________;
}
28.某程序的界面包含一个文本区text1、一个文本框text2和一个按钮button。实现在文本区中输入整数序列后,点击按钮,程序响应按钮事件,累计文本区输入的整数序列,并将总和输出在文本框中。这里给出的是其中相应按钮事件的方法。
public void actionPerformed(ActionEvent e){
int sum;
if(rce()==button){
String s=text1.________;//获取text1中的信息
StringTokenizer fenxi=new StringTokenizer(s,",,,n");
int n=okens();
double a[]=new double[n];
for(int i=0;i<n;i++){
String temp=ken();
a[i]=f(temp).doubleValue();
}
sum=0;
for(int i=0;i<n;i++){
__________;
}
t(""+sum);//刷新显示。}
}
29.以下是生成菜单项对象,以及菜单项选择事件处理方法的部分代码。要求当菜单项singingItem被选中时,在文本框text中输出“唱歌菜单项被选中!”的字样。
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
……
singingItem=new________("唱歌");//生成菜单项对象
……
public void actionPerformed(ActionEvent e){
if(rce()==singingItem)
t(e.________()+ "菜单项被选中!");
}
30.某小应用程序实现幻灯片放映。小应用程序的init()方法将幻灯片读入数组中存储和注册鼠标监视器。程序运行时,单击鼠标,就顺序变换放映幻灯片的序号。这里给出的是其中的paint()方法和mousePressed()方法。
final int number=30;//假定幻灯片有30张
int count=0;
Image[]pic=new Image[number];
public void paint(______gc){
if((pic[count])!=null)
age(pic[count],10,10,pic[count].getWidth(this),
pic[count].getHeight(this),this);
}
public void mousePressed(MouseEvent e){
count=(count+1)% number;//循环逐张显示
__________;
}
31.以下定义的类shareDataManager用于管理多个线程共享数据data。一些线程要减少data,另一些线程要增加data。由于data不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。类提供一个方法modiData()供修改data的线程调用,该方法在data修改结束后,应通知其它等待进入这个方法的线程。
class ShareDataManager{
int data=0;
________void modiData(int delta){
if(delta>=0){
data+=delta;
}else {
while(data <delta){
try{n("发生等待!");
wait();
}catch(InterruptedException e){ }
}
data-=delta;
}
_________;
}
ShareDataManager(int ititData){data=initData;}
}
五、程序分析题(本大题共5小题,每小题4分,共20分)
32.阅读下列程序,请写出该程序的输出结果。
import .*;import .*;
class Point{
int x,y;
Point(int xx,int yy){ x=xx;y=yy;}
Point(Point p){x=p.x;y=p.y; }
void m(int dx,int dy){x+=dx;y+=dy;}
}
class Circle extends Point{
int r;
Circle(Point p, int rr){ super(p); r=rr; }
float c(){ return 3.14f*2.0f*r; }
float a(){ return 3.14f*r*r;}
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
}
public class sample extends Applet{
Circle yuan; Point d;
public void init() {d=new Point(2,5);yuan=new Circle(d,10);}
public void paint(Graphics g){
ring("yuan Circle"+(int)(yuan.c()*100.0)/100.0,5,20);
ring("yuan Area"+(int)(yuan.a()*100.0)/100.0,5,40);
}
}
33.阅读下列程序,请写出该程序的功能。
import java. util.*;
public class Class1{
public static void main(Srting args[]){
Date date1=new Date();
System. out. println (datel);
String t=ng();
int endPos=f(`C');
t=ing(11,endPos);
System. out println(t);
}
}
34.阅读下列程序,请写出该程序的功能。
import .*;import .*;import .*;
public class Class l extends Applet implements ActionListener{
JTextField text1,text2;
public void init(){
text1=new JTextField(10); text2=new JTextField(10);
setSize(200,100); add(text1); add(text2);
ionListener(this);
}
public void actionPerformed(Action Event e){
long n;
if(rce()==text1){
n=ong(t());
t(f(n*n));
}
}
}
35.阅读以下程序,请写出该程序的功能。
import .*; import .*;import .*;
class MyScrollBar extends JscrollBar{
public MyScrollBar(int init, int len, int low, int high){
super(JScrollBar. HORIZONTAL, init,len,low,high);
}
}
class MyWindow extends JFrame implements AdjustmentListener{
private JTextField text;
MyWindow(String s){
super(s);
MyScrollBar myBar=new MyScrollBar(10,10,0,255);
Container con=this. getContentPane();
con. setLayout(new GridLayout(2,1));
this. setSize(200,100);
this. setLocation(100,100);
ustmentListener(this);
text=new JTextField("",20);
con. add(text);(myBar);
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
ible(true);
}
public void adjustmentValueChanged(AdjustmentEvent e){
MyScrollBar myBar=(MyScrollBar)ustable();
t(""+ue());
}
}
public class Class1{
public static void main(String[]args){
MyWindow myWindow=new MyWindow("text5_4");
}
}
36.小应用程序创建一个线程。例子使用容器类方法getGraphics()获得Graphics对象,给线程作为画笔使用。请写出该程序中这个线程的工作内容。
import .*;import .*;
public class Class1 extends implements Runnable{
Thread redBall;Graphics redPen;
int rx=0,ry=0;
public void init(){
setSize(250,200);
redBall =new Thread(this);
redPen=getGraphics();
redPen. setColor();
setBackground();
}
public void start(){ (); }
public void run(){
while(true){
if(tThread()==redBall){
rx=(int)(80*());
ry=(int)(80*());
red or();
red al(100+rx,100+ry,10,10);
try{(500);}
catch(InterruptedException e){}
or();
al(100+rx,100+ry,10,10);
}
}
}
}
六、程序设计题(本大题共2小题,每小题6分,共12分)
37.编写一个方法halfArray(),要求该方法有一个元素类型为int的数组参数,方法返回一个新数组,新数组的长度与参数数组的长度相同,而新数组元素的值是参数数组各元素的一半。
38.一个Java小应用程序,界面有三个文本框和两个按钮,前两个文本框用于输入整数,第三个文本框用于输出结果。两个按钮分别表示加和减运算。当前两个文本框输入整数后,点击相应按钮,程序就将计算结果输出在第三个文本框中。以下是程序的大部分,其中监视按钮事件的方法未给出,试编写处理按钮事件的方法。
注:这里是给定部分的程序,你要编写的是actionPerformed(ActionEvent e)方法。
import .*;import .*;
import .*; import .*;
class Panel1 extends JPanel{
JTextField text1, text2, text3;JButton addButton,subButton;
Panel1(){
text1=new JTextField(10);text2=new JTextField(10);
text3=new JTextField(10);setLayout(new GridLayout(5,1));
addButton=new JButton("加");subButton=new JButton("减");
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
add(text1); add(text2);
add(text3); add(addButton); add(subButton);
}
}
public class Classl extends Applet implements ActionListener{
Pane1 panel;
public void init(){
setSize(100,200); panel=new Panel1();add(panel);
(ton).addActionListener(this);
(ton). addActionListener(this);
}
public void actionPerformed(ActionEvent e){//这里是你要编写的代码
2008年10月全国自考Java语言程序设计(一)真题答案
一、单项选择题
1:参考答案:D
参考解析:(P8)本题考核知识点是Java语言标识符命名规则。
Java语言标识符可以按以下规则任意命名: ①由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成。 ②限定标识符的第一个字符不能是数字字符。 选项D答案第一个字符是数字字符。
2:参考答案:A
参考解析:(P14)本题考核知识点是Java算术运算符 ——“/”。
“/”为除法运算符,当除数和被除数均为整数类型数据时,则结果也是整数类型数据。所以当x=53时,x/2=26。
3:参考答案:B
参考解析:(P46)本题考核知识点是实例变量、类变量、局部变量。
类的成员变量分为实例变量和类变量。在定义成员变量时,用关键字static修饰的是类变量,定义时未用static修饰的是实例变量。类变量是类的所有对象共享的成员变量,一个类变量在类中只有一个,它属于整个类,而不属于类的某个对象。引用类变量的途径有两条,或通过类,或通过对象。类的方法体中定义的变量称为局部变量,方法参数也属于局部变量。
4:参考答案:C
参考解析:(P77)本题考核知识点是StringTokenizer类。
包中的类StringTokenizer用于语言符号(单词)的分析,分析出字符串中的单词。另外还有命名的习惯约定(行业习惯,不是规定):一般变量名、方法名用小写英文字母开头,类名首字母用大写字母,若命名由若干个单词组成,后面的每个单词用大写开头;文字和常数全用大写字母命名;包名全部用小写字母。
5:参考答案:D
参考解析:(P91)本题考核知识点是JFrame类和关键字super。 在用Swing编写GUI程序时,通常不直接用JFrame创建窗口对象,而用JFrame派生的子类创建窗口对象,在子类中可以加入窗口的特定要求和特别的内容,这时可以使用超类的构造方法完成窗口的标题设置即super(s)。选项C完整的使用形式可以这样:
JFrame myWin=new JFrame(s)//创建JFrame窗口对象myWin,标题是s 但这样不符合本题题干“为程序的子窗口设定标题”的要求。
6:参考答案:A
参考解析:(P118)
7:参考答案:B
参考解析:(P137)本题考核知识点是字型要素。
Java的文字字型有三个要素:字体、风格和字号。常用的字体有Times New
Roman、Symbol、宋体和楷体等。常用的风格有正常、粗体和斜体,分别用三个常量表示:、和,风格可以组合使用。字号是字的大小,单位是磅。
8:参考答案:D
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
参考解析:(P162)本题考核知识点是多线程。
在Java中实现多线程一般情况下是先声明Thread类的子类,在子类中重载run()方法,然后创建这个子类的实例,让线程调用start()方法。
9:参考答案:C
参考解析:(P175)本题考核知识点是输入输出流。 为Java的8位字节流数据的读和写操作提供支持的类分别是FileInputStream类和FileOutputStream类,它们分别是InputStream类和OutputStream类的子类;为Java的16位Unicode字符流数据的读和写操作提供支持的类分别是FileReader类和FileWriter类,它们分别是Reader类和Writer类的子类。
10:参考答案:A
参考解析:(P191)本题考核知识点是Java网络编程。
要接收和发送信息需用URLConnection类,程序获得一个URLConnection对象,相当于完成对指定URL的一个HTTP连接。程序有了URLConnection对象后,就可使用URLConnection类提供的方法获得流对象和实现网络连接。
二、填空题
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)黄色
[解析]本题考核知识点是绘图模式。
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
当绘图模式设置为异或模式时,用背景色绘图出现的是异或的颜色,重画一个图形将清除图形。
试题内容:某个绘图方法设置成"异或模式"绘图,并用黄色作为异或模式设定的绘图颜色。如果当时背景色为红色,并用红色绘制线段,则线段的实际颜色是_____。
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)我的答案:
2:参考答案:(P57)Student s1=new Person();
Undergraduate ug1=new Person();
Undergraduate ug2=new Student();
[解析]本题考核知识点是类之间的is-a关系。在两个相关的类之间,可能会有is-a和has-a关系。若类A是继承扩展类B,则子类A和超类B之间是is-a关系,即类A是一个类B。这种情况下,A类对象一定可以是B类类型,因为B类的所有成员A类也有。也就是子类对象可以是超类类型。语句B
b=new A()是正确的,A a=new B()是错误的。
3:参考答案:(P102)为对象添加监视器的方法是addActionListener;类必须实现的方法是public void
actionPerformed(ActionEvent e)。
[解析]本题考核知识点是文本框输入结束动作事件(回车)。
文本框输入结束动作事件相应的监视器接口为ActionListener,要实现的接口方法是actionPerformed(),添加监视器的方法是addActoinListener()。
4:参考答案:(P140)ne(20,30,120,30);或ne(120,30,20,30);
[解析]本题考核知识点是画线段。
方法中有四个参数分别表示线段的两个端点坐标,当两个端点坐标相同时,将画出一个点,而不再是线段。
5:参考答案:(P175)import .*;
[解析]本题考核知识点是文件输入输出流。
实现输入输出操作的类库在包中。包中有一组支持打开流、向流写数据、从流读取数据和关闭流等操作的类,要使用这些类,程序必须导入包。
6:参考答案:(P199)与某个数据库建立连接;向数据库发送SQL语句;处理数据库返回的结果。
[解析]本题考核知识点是java数据库编程基础。
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
Java数据库连接JDBC由一组用Java语言编写的类和接口组成,JDBC是Java程序与数据库连接的API。它可以做三件事情。
四、程序填空题
(本大题共5小题,每空2分,共20分)
1:参考答案:n%10
return c
[解析]本题考核知识点是%运算符和return语句。
方法中d为循环分离出整数n的每一位数字(每次取n的个位数字,n也在变化:n/=10),在找出最大的数字后存入了变量c中,因方法有返回值类型为int,所以必须有return语句,要返回最大数字。,
2:参考答案:getText()
sum+=a[i]或sum=sum+a[i]
[解析]本题考核知识点是图形界面设计中按钮事件方法的编写。
获取文本框中的内容使用的方法是getText(),方法名首字母均小写,后面单词首字母大写。获取整数序列后,使用单词分析器分解出每个整数(有类型转换过程)存入数组a中,然后对所有整数进行求和。,
3:参考答案:JMenuItem
getActionCommand
[解析]本题考核知识点是菜单。
生成菜单条是用类JMenuBar的构造方法JMenuBar(),把菜单条放入JFrame窗口中用setJMenuBar()方法;生成菜单用类JMenu的构造方法JMenu()或JMenu(String
s);生成菜单项用类JMenuItem的构造方法JMenuItem()或JMenuItem(String s)。在菜单事件中获得事件源的方法是getSource(),获得事件源文字信息的方法是getActionCommand()。
4:参考答案:Graphics
repaint()或update()
[解析]本题考核知识点是小应用程序中paint()和repaint()方法的使用。
paint()方法需要Graphics类型参数,当单击鼠标时,要在paint()方法中再次显示图片,可以调用repaint()方法,使程序先清除paint()运行的结果,再运行paint();也可以调用update()方法,该方法会使系统自动调用repaint()方法。
5:参考答案:synchronized
notify()
[解析]本题考核知识点是线程的互斥和同步。
在Java语言中,使用关键字synchronized定义临界段,能对共享对象的操作上锁,使得某一时刻只允许一个线程使用这个共享对象。但是为了同步,可在临界段中使用wait()、notify()和notifyAll()方法。wait()让线程一直等待,notify()方法通知第一个处于等待的线程结束等待。notifyAll()方法使所有处于等待的线程都结束等待,重新竞争CPU。
五、程序分析题 (本大题共5小题,每小题4分,共20分)
1:参考答案:yuan Circle 62.8(2分)
yuan Area 314.0(2分)我的答案:
2:参考答案:程序获得当前日期,将日期的字符串表示输出;(2分)截取日期字符串中从第11位开始到字母‘C’之前的部分字符串,并输出。(2分)
3:参考答案:
在第一个文本框输入数据,输入结束(回车)后,(2分)在第二个文本框输出该整数的平方。(2分)
4:参考答案:
滑动滚动条的滑块,在文本框显示块位置对应的数值。
5:参考答案:随机位置显示一个小圆,程序采用背景色重画的办法,清除前一次显示的小圆。
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
[解析]本题考核知识点是图形绘制和线程综合应用。
在run()方法中随机产生一个坐标点,以此为左上角坐标,红色填充一个小圆形区域,500毫秒后,用背景色填充同一个小圆形区域,使红色小圆形区域消失,马上又随机产生一个坐标点,再红色填充,再消失,循环不止。我的答案:
六、程序设计题 (本大题共2小题,每小题6分,共12分)
1:参考答案:int [] halfArray(int [] a){(1分)
int [] b=new int[];(2分)
for(int k=0;k<;k++){(2分)
b[k]=a[k]/2;
}
return b;(1分)
}
[解析]本题考核知识点是面向对象程序设计中的方法设计。
编写方法,需要确定方法名,已给出halfArray;再确定参数个数及类型,要求是一个int型数组参数即halfArray(int
[]);再就是确定方法返回值类型,要求返回一个新数组,新数组元素类型要确定下来,根据题意,新数组元素是参数数组相应元素的一半,这一半应该可能是小数,所以方法头应该为float[]halfArray(int
[])而不应该是int [] halfAray(int
[]),方法体中的一半也应该是除以2.0。并转换成float类型,方法体定义的数组b也应该是float类型。或者返回值类型和数组b的类型都定义成double类型。
2:参考答案:long n1,n2;(1分)
if(rce()=(ton)){(3分)
n1=ong(t());
n2=ong(t());
t(f(n1+n2));
}
else if(rce()=(ton)){(2分)
n1=ong(t());
n2=ong(t());
t(f(n1-n2));
}
注:将1写成text1,2写成text2整体扣1分。
[解析]本题考核知识点是图形界面设计、JPanel、JTextField、JButton及其事件的处理。
在方法体中的代码类似于34小题。容器的嵌套不要忽略了。
全国2009年1月Java语言程序设计(一)试题
课程代码:04747
一、单项选择题(本大题共10小题,每小题1分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.下列字符组合不能作为Java整型常量的是( )
A.078 B.0x3ACB
C.5000 D.0x3ABC
2.以下程序代码的输出结果是( )
int x = 10;
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
while (x > 7){
("*");
x--;
}
A.** B.***
C.* D.****
3.设类U声明,及对象u和v的定义如下:
class U{
int x, int y;
U(int a, int b){x= a; y = b;}
void copy(U a){ x = a.x; y = a.y;}
}
U u = new U(1, 2), v = new U(2, 3);
在以下供选择的代码中,可能引起系统回收内存的是( )
A.u.x=v.y;u.y=v.x; B.u=v;
(v); (u);
4.设有以下代码:
String s l="123";
String s2="123";
String s3=new String("123");
则表达式s1==s2和s1==s3的值分别是( )
,true ,false
,false ,true
5.以下关于AWT与Swing之间关系的叙述,正确的是( )
是AWT的提高和扩展
B.在写GUI程序时,AWT和Swing不能同时使用
和Swing在不同的平台上都有相同的表示
中的类是从Swing继承的
6.在以下Swing组件中,能为它指定布局管理器的是( )
lBar对象 ar对象
Box对象 g对象
7.一般的绘图程序要定义一个JPanel子类。在JPanel子类中还要重定义一个方法,在这个方法中调用绘图方法,绘制各种图形。要重定义的方法是( )
() omponent()
t() ()
8.用Runnable接口实现多线程的主要工作是( )
A.声明实现Runnable接口的类,在类内实现run()方法,让线程调用start()方法。
B.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在init()方法中创建新线程,启动新线程。
C.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在Init()方法或start()方法中创建新线程,在start()方法中启动新线程。
D.声明实现Runnable接口的类,在类内实现run()方法,在init()方法中创建新线程,在start()方法中启动新线程。
9.程序如果要按行输入输出文件的字符流,最合理的方法是采用( )
edReader类和BufferedWriter类
tream类和OutputStream类
ader类和FileWriter类
_Reader类和File_Writer类
10.在编写访问数据库的Java程序中,要用到DriverManager类。该类的作用是( )
A.存储查询结果
B.处理与数据库的连接
C.在指定的连接中处理SQL语句
D.处理驱动程序的加载和建立数据库连接
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。错填、不填均无分。
程序的字节码文件的扩展名是_________。 class
12.构造一个Java表达式:y/x>5,并且x!=0。这个表达式是_________。y/x>5 && x!=0
13.在类声明之前用_________修饰,声明类是不能被再继承的类,即它不能再有子类。final
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
14.设有字符串定义:
String s="ABCDABCD";
则表达式f("B")的值是_________。 1
15.在实现接口ActionListener的方法actionPerformed()中,常用的有两个获得事件源的方法,它们是getActionCommand()和_________。getSource()
16.使用单选按钮的方法是将一些单选按钮用_________对象分组,使同一组内的单选按钮只允许一个被选中。
ButtonGroup
17.在Java语言中,用类Font对象设置字型。如果要设置的字型是:细明体、正常风格(),12磅字号,构造这样要求的Font对象fnA的代码是_________。Font fnA=new Font(“细明体”,.12)
18.线程从阻塞状态恢复到就绪状态,有三种途径:自动恢复、用resume()方法恢复和用_________方法恢复。notify()或notifyAll()
19.为普通的8位字节流文件读和写操作提供支持的类是_________。InputStream OutputStream
tion类是包中用于处理与数据库连接的类。Connection对象是用来表示_________的对象,Java程序对数据库的操作都在这种对象上进行。数据库连接
三、简答题(本大题共6小题,每小题3分,共18分)
21.请写出表示year年是闰年的Java表达式。闰年的条件是:每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。(year%4= =0) && (year%4!=0)||(year%400= =0)
22.请写出在类的方法的定义之前,加上修饰字public、private的区别。
Public修饰的方法为公用方法,任何类的方法都可以访问他
Private修饰的方法,本类内部可以访问
23.请写出将文本区text放置于滚动面板jsp,并将滚动面板jsp添加到JFrame窗口myFrame的Java语句。
TextArea text=new TextArea();
JScrollPane jsp=new JScrollPane(text);
tentPane().add(jsp);
24.要用Graphics2D类的方法画一个图形,首先要把参数对象g强制转换成Graphics2D对象;然后,用图形类提供的静态方法Double()创建一个图形对象;最后,以图形对象为参数调用Graphics2D对象的draw()方法绘制这个图形。请写出用这样的方法绘制一条线段的程序段,线段的两个端点分别是(10.0,10.0)和(30.0,30.0)。
Graphics2D g2d=( Graphics2D) g;
Line2D line=new (10,20,30,40);
(line)
25.请写出字符流数据与字节流数据的区别。(P.175)
26.请写出URLConnection类在编写Java网络应用程序中的作用。
URLConnection类完成流对象和实现网络连接
四、程序填空题(本大题共5小题,每小题4分,共20分)
27.方法int sigmaDigit(int n)的功能是求出十进制整数n的各位数字之和。例如,n=1234,该方法的返回值是10。
static int sigmaDigit( int n )
{ int sum = 0, d;
while( n > 0 ){
d=n% 10;
_________; sum+=d
n/= 10;
}
_________; return sum
}
28.以下小应用程序能响应鼠标按动的事件,当鼠标在正文区的某个位置被点击时,就在该位置显示一个记号“×”,程序限制最多保留最新20个位置。
import .*; import .*;
import .*; import .*;
class MyPanel extends JPanel {
public void print(Graphics g, int x, int y)(
or();
ne(x-5, y-5, x+5, y+5);
ne(x+5, y-5, x-5, y+5);
}
}
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
class MyWindow extends JFrame implements MouseListener{
final int MaxMarks = 20;
int currentMarks = 0, markCount = 0;
Point marks[] = new Point[MaxMarks];
MyPanel panel;
MyWindow(){
ation(100, 100);
e(300, 300);
Container con = tentPane();
panel = new MyPanel(); (panel);
_________(this); addMouseListener
ible(true);
}
public void paint(Graphics g){
int i;
ect(0,0, th(), ght());
for(i =0;i < markCount; i++) {
_________(g, marks[i].x, marks[i].y); print
}
}
public void mousePressed(MouseEvent e){ }
public void mouseReleased(MouseEvent e){ }
public void mouseEntered(MouseEvent e){ }
public void mouseExited(MouseEvent e){ }
public void mouseClicked(MouseEvent e){
marks[currentMarks] = new Point((), ());
if(markCount < MaxMarks)markCount++;
currentMarks = (currentMarks+ 1)%MaxMarks;
repaint();
}
}
public class Class1 extends Applet {
public void init(){
MyWindow myWndow = new MyWindow();
}
}
29.这是一个处理选择项目事件的子窗口类。窗口中有2个选择框,当选中某个选择框时,文本框将显示选择框对应的信息。
class MyWindow extends JFrame implements ItemListener {
JTextField text;
JCheckBox boxl, box2;
MyWindow(String s) {
_________; super(s)
Container con = tentPane();
ation(100, 100); e(400, 200);
text = new JTextField(10);
box1 = new JCheckBox("A计算机", false);
box2 = new JCheckBox("B计算机", false);
out(new GridLayout(3, 2));
( new JLabel("计算机产品介绍", ));
add(new JLabel("计算机2选1", ));
(box1); (box2); (text);
box1 .addItemListener(this);
mListener(this);
ible(true); ();
}
public void itemStateChanged( _________e){ ItemEvent
if(mSelectable() == box1) {
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
text. setText("A公司生产");
} else if(mSelectable() == box2) {
text. setText("B公司生产");
}
}
}
30.这是一个播放幻灯片的小应用程序中的paint()方法。设幻灯片已由小应用程序的init()方法装入内存,并存放于myImage数组中,幻灯片的张数放于变量num中,paint()方法要播放的幻灯片号是int currentImage = 0;
final int num = 30;
Image [ ] myImage = new _________ [num]; Image
……
public void paint(Graphics g) {
if ((mylmage[currentImage]) != null)
g. _________ (myImage[currentImage], 10, 10, drawImage
myImage [currentImage].getWidth(this),
myImage [currentImage].getHeight(this), this);
}
31.以下定义的类ShareData用于管理多个线程共享数据val。为了保证对共享数据val修改的完整性,线程对val的操作需要互斥,类ShareData中定义的方法modiData()就是供共享val的线程修改val的方法。程序共有20个线程共享val,有些减少val,有些增加val。
public class Class1 {
public static void main(String args[]){
ShareData mrc = new ShareData(50);
Thread[] aThreadArray = new Thread[20];
n("t刚开始的值是:"+());
n("t多个线程正在工作,请稍等!");
for(int i = 0; i < 20; i++) {
int d = i % 2 == 0 ? 50 : -30;
aThreadArray[i] = new Thread(new MyMultiThreadClass(mrc, d));
aThreadArray[i].start();
}
WhileLoop ://等待所有线程结束
while(true){
for(int i = 0; i < 20; i++)
if(aThreadArray[i]. _________ ())continue WhileLoop; isAlive()
break;
}
n("t最后的结果是: "+());
}
}
class MyMultiThreadClass implements Runnable {
ShareData UseInteger; int delta;
MyMultiThreadClass(ShareData mrc, int d) {
UseInteger = mrc; delta = d;
}
public void run() {
for(int i = 0; i < 1000; i++) {
ta(delta);
try {(10) ;//做一些其他的处理
}catch(InterruptedException e){ }
}
}
}
class ShareData {
int val;
ShareData(int initValue){val = initValue; }
int getVal(){return val;}
private void putVal(int v){val = v;}
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
_________ void modiData(int d){ synchronized
putVal(getVal() + d);
}
}
五、程序分析题(本大题共5小题,每小题4分,共20分)
32.阅读下列程序,请写出该程序的输出结果。
class A {
int x, y;
A(int a, int b) {
x= a; y= b;
}
}
public class sample {
public static void main(String args[]) {
A pl, p2;
p2 = new A(12, 15);
p1 = p2; p2.x++;
n("p1.x=" + p1 .x);
}
}
p1.x=13
33.阅读下列程序,请写出调用pascal(4)的输出结果。
static void pascal(int n) {
int pas[];
pas = new int[n];
pas[0] = 1;
n(pas[0]);
for (int i = 2; i <= n; i++) {
/* 由存储在pas中的原来内容生成新内容*/
pas[i - l] =1;
for (int j = i- 2;j > 0; j--)
pas[j] = pas[j] + pas[j - 1 ];
for (int j = 0; j < i; j++)
(pas[j] +" ");
n();
}
}
1
1 1
1 2 1
1 3 3 1
34.阅读下列程序,请用示意图画出程序运行时呈现的界面。
import .*;
import *;
import .*;
class MyPanel extends JPanel {
JButton button; JLabel label;
MyPanel(String s1, String s2) {
out(new GridLayout(2, 2));
button = new JButton(s1);
label = new JLabel(s2, );
add(button); add(label); add(new JLabel());
}
}
public class Class1 {
public static void main(String args[]) {
JFrame mw = new JFrame("一个示意窗口");
e(400, 250);
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
Container con = tentPane();
out(new BorderLayout());
MyPanel panel1, panel2;
panel1 = new MyPanel("按钮1" ,"标签1");
panel2 = new MyPanel("按钮2", "标签2");
JButton button = new JButton("开始按钮");
(panel1, "North");(panel2, "South");
(button, "Center");
ible(true);
}
}
35.阅读下列程序,请回答以下问题:
(1)程序要求在文本框text中输入的内容是什么? 需要读取的文件URL地址
(2)辅助文本区showArea组件的作用是什么? 显示读取的文件内容
(3)如何使程序开始下载网络文本文件? 点击下载按钮
(4)程序采用什么输入方式下载网络文件? 使用字节流完成下载
import .*; import .*;
import .*; import,.*; import .*;
public class Class1{
public static void main(String args[]) .
{ new ConnectNet("读取网络文本文件示意程序");}
}
class ConnectNet extends JFrame implements ActionListener{
JTextField text=new JTextField(30);
JTextArea showArea=new JTextArea();
JButton b=new JButton("下载");JPanel p=new JPanel();
ConnectNet(String s){
super(s);Container con=tentPane();
(text);(b);
JScrollPane jsp=new JScrollPane(showArea);
ionListener(this);
(p,"North"); (jsp,"Center");
setDefaultCloseOperation(_ON_CLOSE);
setSize(500,400);setVisible(true);
}
public void actionPerformed(ActionEvent e){
String urlName=t();
try{ URL url=new URL(urlName);//由网址创建URL对象
URLConnection tc=nnection();//获得URLConnection对象
t();//设置网络连接
InputStreamReader in=new InputStreamReader(utStream());
BufferedReader dis=new BufferedReader(in); String inLine;
while((inLine=ne())!=null){(inLine+"\n");}
();
}catch(MalformedURLException e2){tackTrace();}
catch(IOException e3){ tackTrace();}
}
}
36..阅读下列程序,请写出该程序的功能。
import .*; import .*;
public class Class1 extends implements Runnable {
Thread myThread = null;
public void start() {
setSize(500, 400);
if (myThread == null) {
myThread = new Thread(this); ();
自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园....
5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你.........
}
}
public void run() {
while (myThread != null) {
try { (500);
} catch (InterruptedException e) { }
repaint();
}
}
public void paint(Graphics g) {
int x = (int)(400*());
int y = (int)(300*());
or(); al(x,y, 10, 10);
}
}
随机绘制外切矩形为10红色的圆
六、程序设计题(本大题共2小题,每小题6分,共12分)
37.编写数组复制方法。该方法从已知平衡的两维数组的左下角复制出一个非平衡的三角二维数组。设复制数组方法的模型为:
public static double[][] leftDownConer(double[][]anArray)
public static double[][] leftDownConer(double[][]anArray){
int l1= ;
int l2=anArray[0].length;
double temp[][];
if(l1<=l2){
temp=new double[l1][];
for(int i=0;i temp[i]=new double[i+1]; for(int j=0;j temp[i][j]=anArray[i][j]; } return temp; }else{ temp=new double[l2][]; for(int i=0;i temp[i]=new double[i+1]; for(int j=0;j temp[i][j]=anArray[l1-l2+i][j]; } return temp; } } 38.设计实现以下形式布局的Java小应用程序。 注1:其中空白格是文本框,用于输入对应的内容。 注2:这里给出的是程序的一部分,你要编写的是方法MyWindow(String s)。 import .*; import .*; import .*; class MyWindow extends JFrame{ JTextField textl,text2,text3,text4; public MyWindow(String s){//这个方法是你要编写的 super(s); Container con=getContentPane(); out(new GridLayout(2,4)); JLabel label1=new JLabel("学 号"); JLabel label2=new JLabel("姓 名"); JLabel label3=new JLabel("考试成绩"); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... JLabel label4=new JLabel("平时成绩"); text1=new JTextField(); text2=new JTextField(); text3=new JTextField(); text4=new JTextField(); (label1); (text1); (label2); (text2); (label3); (text3); (label4); (text4); ible(true); } } public class Class1 extends Applet{ MyWindow myWindow; public void init(){ myWindow=new MyWindow("一个小应用程序"); } } 2009年10月全国自考Java语言程序设计(一)真题及答案 一、单项选择题 (本大题共10小题,每小题1分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1:参考答案:C 参考解析:暂无解析 试题内容: 下面供选字符序列中,不属于Java语言关键字的是() A:goto B:null C:false D:native 2:参考答案:A 参考解析:暂无解析 试题内容: 以下程序代码的输出结果是() int x=73;n(x>>1); A:36 B:36.5 C:37 D:true 3:参考答案:A 参考解析:暂无解析 试题内容: Java语言中,在类定义时用final关键字修饰,是指这个类() A:不能被继承 B:在子类的方法中不能被调用 C:能被别的程序自由调用 D:不能被子类的方法覆盖 4:参考答案:D 参考解析:暂无解析 试题内容: 以下是关于字符串运算的代码,执行该代码段的输出结果是() String s=″″,s1,s2; s1=ing(2);s2=ing(2,5);n(s1+s2); A:0122345 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... B:234567892345 C:012234 D:23456789234 5:参考答案:B 参考解析:暂无解析 试题内容: 以下是关于FlowLayout布局组件排列顺序的叙述,正确的是() A:从上到下排列 B:从左到右排列 C:从下到上排列 D:从右到左排列 6:参考答案:B 参考解析:暂无解析 试题内容: 程序执行方法showOpenDialog(),能打开“打开文件对话框”,如果该方法的返回值是E_OPTION,则用户执行的动作是() A:对话框非正常关闭 B:按下“打开/保存”按钮 C:按下“撤销”按钮 D:重新输入了一个文件名 7:参考答案:A 参考解析:暂无解析 试题内容: 设已经有Graphics2D对象g2d,Rectangle2D对象r,绘制对象r的代码是() A:(r) B:ct(r) C:() D:ct() 8:参考答案:C 参考解析:暂无解析 试题内容: 在以下供选择的方法中,能让线程从阻塞状态恢复到就绪状态的方法是() A:start() B:init() C:resume() D:run() 9:参考答案:C 参考解析:暂无解析 试题内容: 在以下供选择的方法中,不能用于文件随机访问的方法是() A:readChar() B:readLong() C:readInteger() D:writeChars() 10:参考答案:D 参考解析:暂无解析 试题内容: 某程序利用网址参数创建URL对象url,接着希望利用对象url获得URLConnection对象,则这个url对象要调用的方法是() A:connection() B:URLConnection() C:getConnection() D:openConnection() 1:参考答案:main() 试题内容: 二、填空题 (本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。 一个应用程序必须在某个类中定义的方法是_____。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 2:参考答案:import包名.类名; 试题内容: import语句的格式是_____。 3:参考答案:相互发送消息 试题内容: 在面向对象语言中,对象之间的交互通过_____实现。 4:参考答案:是否引用同一个对象 试题内容: 设有两个字符串对象str1和str2,则表达式“str1==str2”的意义是判别字符串str1和str2_____。 5:参考答案:外观与风格 试题内容: 一个基于Swing的应用程序可能在任何平台上都会有相同的_____。 6:参考答案:KeyListener 试题内容: 处理键盘事件的Java程序,要实现的接口是_____。 7:参考答案:左上角 试题内容: Java语言约定,坐标原点位于绘图区域的_____。 8:参考答案:wait() 试题内容: Java程序中,在临界段中使用_____方法,使执行该方法的线程等待。 9:参考答案:readLine() 试题内容: BufferedWriter类对象能按行输入文件的内容,按行输入的方法是_____。 10:参考答案:IP地址和域名 试题内容: 在包中有InetAddress类的定义,Java程序中的InetAddress类对象存储的内容是_____。 三、简答题 (本大题共6小题,每小题3分,共18分) 1:参考答案:if(x>=0)y=x; elsey=-x; 试题内容: 请写出实现计算y=|x|的if语句。 2:参考答案:4,5,6行错误 试题内容: 以下代码定义了一个类,请指出其中三条不合法的代码行(行号参见注释)。 class Test22{//1 float u;static float v;//2 static void setUV(boolean f){//3 u=fac1(f);//4 v=fac2(!f);}//5 static float fac1(boolean f){return f ?u:v;}//6 float fac2(boolean f){return f ?v:u;}//7 }//8 3:参考答案:源对象、监视器对象、事件对象 试题内容: 在中,用来检测并对事件做出反应的模型涉及三种对象。请写出这三种对象。 4:参考答案:Font fn=new Font("Courier",,18); t(fn); 试题内容: 写出设置Font对象fn的Java语句,要求Courier字体,BOLD风格,18磅字号,设调用对象的类型为Graphics的g。 5:参考答案:FileInputStream(String name) FileInputStream(File filename) FileOutputStream(String name) FileOutputStream(File filename) 试题内容: 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 通过流的构造方法建立文件流对象,请写出创建输入输出文件流对象的两种常用构造方法。 6:参考答案:流式socket和数据报式socket 试题内容: 当Client程序和Server程序需要通信时,可以用Socket类建立套接字连接,请写出双方实现通信的两种方式。 四、程序填空题 (本大题共5小题,每空2分,共20分) 1:参考答案:i< a[i]%2==0 方法int sigmaEvenNum(int[]a)的功能是求已知数组中偶数的个数。 static int sigmaEvenNum(int []a){ int s =0; for ( int i=0;_____;i++ ) { if(_____) s++; } return s; } 2:参考答案:getActionCommand() append 某小应用程序窗口包含有文本区dispArea,以及一个带文字“追加”的按钮。当点击这个按钮时,程序弹出一个输入信息的对话框,并将对话框中输入的内容追加到文本区中。以下是其中相应“追加”按钮事件的方法。 public void actionPerformed(ActionEvent e){ if(e._____.equals("追加")){ String result=(String)putDialog(null,"请输入信息", "输入对话框",_MESSAGE, null, null,null); dispArea._____(result + " "); } } 3:参考答案:radioNameList[i] isSelected() 以下程序段是选择项目事件处理程序的样例,一个由3个单选按钮组成的选择组被定义为一个面板子类Panel,当某个按钮被选中时,按钮监视程序在类MyWindow的一个文本框中输出某个按钮被选中的字样。以下是类Panel的定义。 class Panel extends JPanel implements ItemListener{ static JRadioButton box[]; ButtonGroup g; Panel(String radioNameList[]) { box=new JRadioButton[]; setLayout(new GridLayout(1, )); g=new ButtonGroup(); for(int i=0;i<; i++){ box[i] = new JRadioButton(_____,false); (box[i]);add(box[i]);box[i].addItemListener(this); } } public void itemStateChanged(ItemEvent e){ for(int i = 0; i < ; i++){ if(box[i]._____) { t(box[i].getLabel()+"被选中!"); } } } } 4:参考答案:getDocumentBase() this 用getImage()方法和drawImage()方法能加载和显示图像。以下程序加载的是文件,并假定该文件与包含这个小应用程序的HTML文件在同一个目录下。 import .*; import .*; public class SimpleImageLoad extends Applet{ 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... Image img; public void init() { img = getImage(_____,""); } public void paint(Graphics g) { age(img, 0, 0, _____); } } 5:参考答案:getData()+delta notify() 以下程序段定义的类ShareDataManager用于管理多个线程共享数据data。为了对data的取、存和修改操作保持完整,多线程在data上的操作有互斥要求;另外,限制线程对data的修改不能让data为负数,所以多线程在data上的操作还有同步要求。为此,程序为管理data上的操作定义成类,以下是管理共享数据data的类ShareDataManager的代码。 class ShareDataManager { int data; ShareDataManager(int init){data = init; } public int getData(){ return data;} private void putData(int newValue){ data = newValue;} synchronized void modiData(int delta){ if (delta >= 0) {putData(getData()+ delta); } else { while (_____<0) { try {wait(); } catch (InterruptedException e) { } } putData(getData()+ delta); } _____; } } 五、程序分析题 (本大题共5小题,每小题4分,共20分) 1:参考答案:fOb: Name:May Flower Birth Year:1980 Flower:true(2分) sOb: Name:Pine Birth Year:2000 Flower:false Coniferous:true(2分) 阅读下列程序,请写出该程序的输出结果。 class Tree { private String name;public boolean flower; public int birthYear; Tree(String n, boolean f, int y){ name = n; flower = f; birthYear = y; } public void setName(String n){name = n;} public String getName(){return name; } public void printTree(String str){ n(str);n("Name:"+name); n("Birth Year:"+birthYear); n("Flower:"+flower); } } class PineTree extends Tree { public boolean coniferous = true; PineTree(String n, boolean f, int y, boolean c){super(n, f, y);coniferous = c; } public void printTree(String str){ ree(str); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... n("Coniferous:" + coniferous); } } class Test32 { public static void main(String[]args){ Tree fOb = new Tree("May Flower", true, 1980); PineTree sOb = new PineTree("Pine", false, 2000, true); ree(" fOb:"); ree("sOb:"); } } 2:参考答案:5671112(4分) 试题内容: 阅读下列程序,请写出该程序的输出结果。 class Test33 { static void s(int b[ ], int k) { int i, j, t; for(i = 1;i< k; i++) { for(t = b[i], j = i-1; j >= 0 && t < b[j]; j--) b[j+1] = b[j]; b[j+1] = t; } } public static void main(String []args){ int i, a[] = {6, 12, 7, 11, 5 }; s(a, 5); for(i = 0;i<; i++) (a[i]+" "); n(); } } 3:参考答案:以文本框输入的数字为半径,(1分)以(10,10)为左上角,(1分)填充一个红色(1分)的圆。(1分) 试题内容: 阅读下列程序,请写出该程序的功能。 import .*;import .*; import .*;import .*; public class Test34 extends Applet implements ActionListener { JTextField text;int r; JPanel panel; public void paint(Graphics g){ Graphics gc = phics(); ect(0,0, th(), ght()); or(); al(10, 10, r, r); } public void init() { text = new JTextField(10); panel = new JPanel(); setSize(200, 100); setLayout(new GridLayout(2,1)); add(text); add(panel); ionListener(this); } public void actionPerformed(ActionEvent e) { if (rce() == text) { r = nt(t()); repaint(); } } } 4:参考答案:(1)3个菜单项(1分)(2)“显示”菜单项(1分)(3)非强制型对话框(1分)(4)显示当前事件(1分) 试题内容: 阅读下列程序,请回答以下问题: (1)该程序的菜单条中共有几个菜单项? (2)单击哪个菜单项,可以打开一个对话框? 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... (3)该对话框是强制型还是非强制型? (4)该对话框中显示的是什么内容? import .*;import .*; import .*; import .*; class MyDialog extends JDialog { MyDialog(JFrame F, String s) { super(F, s, false); Date date = new Date(); String t = ng(); JLabel text = new JLabel(t); add(text); setSize(200,100); setVisible(true); } } public class MenuDemo extends JFrame implements ActionListener { JMenuBar menubar; JMenu action; JMenuItem show, set, quit; public MenuDemo() { menubar = new JMenuBar();setJMenuBar(menubar); action = new JMenu("操作");(action); show= new JMenuItem("显示");(show); set = new JMenuItem("设置");(set); arator();quit = new JMenuItem("退出"); (quit);ionListener(this); ionListener(this);ionListener(this); setSize(300,300);setVisible(true); } public void actionPerformed(ActionEvent e) { if(rce() == show) {MyDialog diag = new MyDialog(this, "信息");} else if(rce()== set) { le("菜单演示");} else if(rce() == quit){ (0); } } public static void main(String[]args) {new MenuDemo();} } 5:参考答案:urrent thread(1分) After name change(1分) 3 2 1(2分) 试题内容: 阅读以下程序,请写出该程序的输出结果。 class CurrentThreadDemo { public static void main(String args[]) { Thread t = new Thread();n("Current thread"); e("My Thread");n("After name change"); try {for(int n = 3; n > 0; n--) { n(n); (1000); } } catch (InterruptedException e) { n("Main thread interrupted"); } } } 六、程序设计题 (本大题共2小题,每小题6分,共12分) 1:参考答案:int searchMaxNumIndex(int[]a){ int i,maxIndex;(1分) for(i=maxIndex=0;i<;i++){(2分) if(a[i]>a[maxIndex])(1分) maxIndex=i;(1分) } return maxIndex;(1分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... } 试题内容: 编写方法int searchMaxNumIndex(int[]a),寻找已知数组中最大数的下标并返回。 2:参考答案:int n=okens();(1分) int i=0;(1分) while(eTokens()){(1分) String s1=ken();(1分) sum=sum+f(s1).doubleValue();(1分) } t(""+sum);(1分) 试题内容: 以下程序的界面有一个按钮button、一个文本区textA和一个文本框textF。程序运行时,在文本区中输入数字序列,单击按钮,则在文本框中显示数字序列的和。以下是要求你编写的actionPerformed(ActionEvent e)方法的部分代码。 public void actionPerformed(ActionEvent e) { if (rce() == button) { String s = t(); double sum =0; StringTokenizer fenxi = new StringTokenizer(s, " ,\n"); //请在以下位置编写代码 } } 全国2010年10月自学考试Java语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.以下是关于Java语言关键字的叙述,其中正确的是( ) A.关键字可以用来描述类的成员类型,但是不能描述普通变量 B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成 C.关键字不可以用作变量、方法、类或标号的标识符 和main都是Java语言的关键字 2.执行以下代码,输出结果是( ) int x=5,y=7,u=9,v=6; n(x>y ? x+2:u>v ? u-3:v+2); A.8 B.6 C.7 语言中,只限子类或者同一包中的类的方法能访问的访问权限是( ) e ted D.<无修饰> 4.设有数组定义int[][] x={{1,2},{3,4,5},{6},{}};,则的值为( ) A.3 B.4 C.6 D.7 5.在以下Swin 的类中,属于容器的是( ) t n rea 6.在以下供选择的方法中,属于接口MouseMotionListener的方法是( ) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... eleased() ntered() xited() oved() 7.小程序要播放音频文件,可使用类( ) lip Clip 8.以下是关于线程的叙述,正确的是( ) A.多线程的使用可以提高设备的平行工作能力,但是使系统管理变得复杂 B.同一个进程下的线程都有自己的状态、专用数据段和独立的内存资源 C.线程是能独立运行的程序 D.进程的执行效率比线程的执行效率高 9.在Java的类库中,包含实现输入/输出操作的包是( ) 10.在编写访问数据库的Java程序时,ResultSet对象的作用是( ) A.建立新数据库连接 C.在指定的连接中处理SQL语句 B.用来表示与数据库的连接 D.存储查询结果 二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。 语言采用多种机制来保证可移植性,其中最主要的是______。 12.程序包声明的格式是______。 13.当联编推迟至运行时间实现时,该联编过程称为______。 14.使用默认字节字符对应表,将字符串转化为字节数组的方法是______。 15.在Swing中,带有滚动条的面板的类名是______。 16.组合框(JComboBox)是______的组合。 17.在某个组件中绘图,一般应该为这个组件所属的子类重写______方法。 18.多线程互斥使用______的程序段,在操作系统中称为临界段。 19.在Java语言中,文件随机访问可以利用______类实现。 程序可以用纯Java的______驱动程序,实现与数据库连接。 三、简答题(本大题共6小题,每小题3分,共18分) 11121.请使用for循环语句计算S=1+的值。 231022.请写出Applet类中init()方法的功能。 23.请写出空布局安置组件的两个步骤。 24.在Swing中,对话框有几种?并请写出它们的主要区别。 25.请写出用Runnable接口实现多线程的主要工作。 26.请写出用InetAddress类,获取网址为“”的IP地址的Java语句。 四、程序填空题(本大题共5小题,每空2分,共20分) 27.方法boolean isPrime(int n)的功能是判断正整数n(n>1)是否为质数。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... static boolean isPrime(int n) { int i; if(n==2)return true; if(n%2==0)return false; for(i=3;i*i<=n;i+=2) if(_________) break; if(_________) return true; return false; } 28.某小应用程序窗口中有一个文本框,一个8行10列的文本区以及一个按钮,点击这个按钮时,在文本框中输入的内容会追加到文本区中。 import .*; import .*; import java,.*; public class TextAPP extends Applet implements ActionListener { JTextField input; JTextArea display; JButton append; public void init() { input = new JTextField(10); display = new ; append = new JButton("追加"); add(input); add(display); add(append); tFocus(); eWrap(true); ionListener(this); } public void actionPerformed(ActionEvent e),{ display. (t() +" "); } } 29.某小应用程序有一个由3个单选按钮组成的颜色选择组,当选中某种颜色时,窗口的背景颜色将作相应的变化。这里给出的是窗口子类My Window的定义的框架以及其构造函数的定义。 class MyWindow extends JFrame implements { … MyWindow(String s) { super(s); Container con = tentPane(); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... out(new GridLayout(3,2)); ation(100, 100); e(400, 400); panel 1 = new Panel l (); label l = new JLabel("改变前景颜色",); (label 1 ); con. ; panel 1 .box 1 .addltemListener(this); panel 1 .box mListener(this); panel 1 .box mListener(this); this. setVisible (true); (); } … } 30.某小应用程序的界面有两个按钮,点击“画圆”按钮,程序在窗口画一个圆,点击“画矩形”按钮,程序在窗口画一个矩形。 import .*; import .*; import .*;import .*; public class Class l extends Applet implements ActionListener { boolean c = false; int r = 50,a = 50, b = 50; JButton bl, b2; public void init(){ setSize(200, 200); setBackground(); b1 = new JButton("画 圆"); b2 = new JButton("画矩形"); ionListener(this); ionListener(this); add(b1); add(b2); setVisible(true); } public void (Graphics g){ ect(70, 100, 130, 200); or(Color. red); if(c) undRect(70, 100, r, r, r, r); else ct(70, 100, a, b); } public void update(Graphics g){ paint(g); } public void actionPerformed(ActionEvent e){ if(rce()==b1) { c = true; } 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... else if(rce()==b2){ c = false; } ; } } 31.某按钮的监视器方法actionPerformed()实现将文本区中的内容写入到文本文件中。 public void actionPerformed(ActionEvent e) { try { int n = t().length(); byte buffer[]=new byte[n]; buffer=t().getBytes(); FileOutputStream wf=new (""); wf. write(buffer, 0,n); ; }catch (IOException ioe){ t(ng()); } } } 五、程序分析题(本大题共5小题,每小题4分,共20分) 32.阅读下列程序,请写出该程序的输出结果。 public class A { int m = 5; static int n = 3; public static void main(String[] args) { A obj 1 = new A(); A obj2 = new A(); objl.m *= 2; objl.n *= 4; obj2.m += 1; obj2.n += 6; n("obj 1.m='' + obj 1.m); n("obj 1.n=" + obj 1.n); n("obj2.m=" + obj2.m); n("obj2.n=" + obj2.n); } } 33.阅读下列程序,请写出该程序的输出结果。 class Test33 { static int merger(int [] a, int []b, int []c){ int i = 0, j = 0, k = 0; while(i < && j < ) { 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... if(a[i] < b[j])c[k++] = a[i++]; else c[k++] = b[j++]; } while(i < ) c[k++] = a[i++]; while(j < ) c[k++] = b[j++]; return k; } public static void main(String[] args) { int a[] = {3, 6, 9}; int b[] = { 1, 2, 5}; int []c = new int[100]; int p = merger(a, b, c); for(int k = 0; k < p; k++) (c[k]+ (k < p-1 ? " ":"n")); } } 34.阅读下列程序,请写出该程序的功能。 import .*; import .*; import .*; import .*; public class Class l extends Applet implements ActionListener{ JTextField Text I =new JTextField(5); JTextField Text2=new JTextField(5); JTextField Text3=new JTextField(5); JLabel Label 1 =new JLabel("Please input three numbers:"); JLabel Label2=new JLabel(" "); JButton but=new JButton("Start!"); public void init() { setLayout(new GridLayout(6,1)); add (Label 1); add (Textl); add (Text2); add (Text3); add (but); add (Label2); t(new Font ("Courier", 1, 20)); ionListener(this); } public void actionPerformed(ActionEvent e) { int a,b,c; a=nt(Text t()); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... b=nt(t()); c=nt(t()); if (a + b < c || b + c < a || c + a < b) { Label2 .setForeground (Color. red ); t(new Font ("Courier ", 1, 24)); t("No."); } else { eground(); t(new Font ("Courier ", 2, 24)); t(" Yes."); } } } 35.阅读下列程序,请写出该程序的功能。 import .*; import .*; import .*; class MyScrollBar extends JScrollBar { public MyScrollBar(int init, int len, int low, int high){ super(NTAL, init, len, low, high); } public Dimension getPreferredSize(){ return new Dimension(125, 20); } } class MyWindow extends JFrame implements AdjustmentListener{ private JTextField text; MyWindow(String s){ super(s); MyScrollBar tempBar = new MyScrollBar(l0, 10, 0, 255); Container con = tentPane(); out(new GridLayout(2,1)); e(250, 100); ation(100, 100); djustmentListener(this); text= new JTextField("移动滚动条的滑块",20); (text); (tempBar); ible(true); (); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... } public void adjustmentValueChanged(AdjustmentEvent e){ MyScrollBar myBar=(MyScrO11Bar)ustable(); t("选择的值是:"+ue()); } } public class Test35 { public static void main(String[] args) { new MyWindow("滚动条示意程序"); } } 36.阅读下列程序,请写出该程序的功能。 import java util.*; class MyThread extends Thread { int pauseTime; String name; public MyThread (int x, String n) { pauseTime = x; name = n; } public void run() { for(int i = 1;i <= 4; i++) { try { n(name +":" +new Date(tTimeMillis())); (pauseTime); }catch(Exception e){ } } } } public class Test36{ static public void main(String[] args) { MyThread thread1 = new MyThread (1000,"Fast Thread"); thread 1 .start(); MyThread thread2 = new MyThread (3000,"Slow Thread"); (); } } 六、程序设计题(本大题共2小题,每小题6分,共12分) 37.请编写方法int countNum(String str),该方法的功能是统计已知字符串str中数字的个数。例如,countNum("A42B83C2D")的返回值是5。 38.一个小应用程序,界面如下图所示,其功能为实现摄氏温度和华氏温度的相互转换。以下是程序的大部分,请编写其中的监视器方法。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 注:华氏温度(F)=摄氏温度(C)×9/5+32 import .*; import .*; import .*; public class test38 extends Applet implements ActionListener { JTextField textl, text2; JButton c2f, f2c; public void init() { text l = new JTextField(5); text2 = new JTextField(5); c2f=new JButton("摄氏转换为华氏"); f2c=new JButton("华氏转换为摄氏"); add(text 1);add(text2); add(c2f);add(f2c); tFocus(); ionListener(this);ionListener((this); } public void actionPerformed(ActionEvent e) { } } 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 2010年10月全国自考JAVA语言程序设计(一)参考答案自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 1、 简述java语言的特点? 1.2 Java语言是目前使用最为广泛的网络编程语言之一 (1分) 具有面向对象 (1分) 与平台无关性 (1分) 多线程性 (1分) 动态性等特点 (1分) 2、 简述Java程序的开发过程? 1.3 (1) 使用一个文字编辑器,编写源文件。 (1分) (2) 使用java编译器,编译源文件得到字节码文件。 (2分) (3) 运行java程序,分两种java应用程序必须通过java解释器来解释执行,java小应用程序必须使用解释器和浏览器运行程序。 (2分) 3、 java源文件的命名规则是什么? 1.3 如果源文件中有多个类,那么只能有一个类是public类 (1分) 如果有一个类是public类,源文件的名字必须与这个类的名字完全相同,扩展名是java (2分) 如果源文件没有public类,源文件的名字只要和某个类的名字相同,并且扩展名是java (2分) 4、 怎样区分应用程序和小应用程序? 1.4 一个java应用程序必须且只有一个类含有main方法,这个类称为应用程序的主类,其main方法必须被说明为public static void (2.5分) 一个Java Applet小应用程序不再需要main方法,但必须有一个类扩展了Applet类,即它是Applet类的主类。 (2.5分) 5、 Java中共有哪些基本数据类型? 2.2 基本类型共有8种,分四类分别是 (1分) 逻辑型 (1分) 字符型 (1分) 整型 (1分) 浮点型 (1分) 6、 Java中数据类型分别用什么符号来表示的? 2.2 逻辑型用boolean 表示 (1分) 字符型用char表示 (1分) 整型共有4种分别是 byte、short、long、int (2分) 浮点型共两种float和double (1分) 7、 简答标示符的概念及定义原则? 2.1 标示符是用来标识类名、变量名、方法名、类型名等有效字符序列。 (2.5分) Java语言规定标示符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字,及java中的关键字不能用作标示符。(2.5分) 8、 简答什么是强制类型转换及转换格式? 2.2 当把一种数据类型变量的值赋给另一种数据类型时会用到数据转换。当把在内存中占字节数较少的变量的值赋给占字节较多的变量时,系统自动完成数据类型的转换 (2.5分) 格式:(数据类型名)变量名或表达式 (2.5分) 9、 简答表达式++x和x++的区别 3.1 ++x表示在使用x之前,先使x的值加1 (2.5) x++表示在使用x之后,使x的值加1 (2.5) 10、 Java中常用的运算符按功能分有哪些? 3.1 Java运算符按功能分6种,具体如下 (1分) 算术运算符、关系运算符、逻辑运算符 (2分) 位运算符、赋值运算符、条件运算符 (2分) 11、 Java中结构化程序设计有哪三种基本流程,及分别对应java中那些语句? 3.2 结构化程序设计有顺序、分支、循环三种基本流程 (2分) java中的分支语句包括if语句、switch语句; (1分) 循环语句包括while语句、do-while语句、for语句; (1分) 其他如对象、变量定义语句、赋值语句、方法调用语句等都是顺序语句。 (1分) 12、 在一个循环中使用break和continue语句有什么不同的效果?3.2 在循环中使用break语句,将使循环终止,流程跳转到break语句所在的循环外面的第一个语句继续执行 (2.5分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 在循环中使用continue语句,将提前结束本次循环,流程跳转到continue语句所在循环的第一个语句继续执行 (2.5分) 13、 package语句与import语句分别作用是什么? 3.2 package语句作为java源程序的第一条语句,指明该源文件定义的类所在的包。 (2.5分) import语句作用是为了能使用java提供的类,可以使用import语句来引入所需要的类。 (2.5分) 14、 简述编程语言的几个发展阶段? 4.1 (1) 面向机器语言 (1分) (2) 面向过程语言 (1分) (3) 结构化程序设计阶段 (1分) (4) 面向对象编程 (2分) 15、 什么是类及类的实现包括什么? 4.2 类是组成java程序的基本要素 (1分) 类封装了一类对象的状态和方法 (1分) 类是用来定义对象的模板 (1分) 类的实现包括两部分:类声明和类体 (2分) 16、 什么是方法重载? 4.2 方法重载是指,一个类中可以有多个方法具有相同的名字和类型(2分) 但这些方法的参数必须不同(1分) 或者是参数个数不同,或者是参数类型不同(2分) 17、 什么是构造方法? 4.2 构造方法是一种特殊方法 (1分) 它的名字必须与它所在的类的名字完全相同 (2分) 并且不返回任何数据类型,即它是void型 (2分) 18、 什么是实例变量和类变量及他们的区别? 4.3 用修饰符static说明的变量是类变量,其他是实例变量 (2分) 不同对象的实例变量将分配不同的内存空间 (1分) 所有对象的类变量都分配给相同的一处内存,改变其中一个对象的类变量的值,会影响其他对象的这个类变量的值。 (2分) 19、 什么是实例方法和类方法及他们的区别? 4.3 用修饰符static说明的方法是类方法,其他是实例方法 (2分) 当一个类创建了一个对象后,这个对象就可以调用该类的方法(1分) 区别就在于类方法不仅可以有对象调用而且还可以直接由类名调用 而实例方法不能由类名调用。(2分) 20、 创建一个对象包括哪些过程? 4.3 创建一个对象分两个步骤 (1分) (1)对象的声明,格式是:类的名字 对象名 (2分) (2)为声明的对象分配内存,使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法 (2分) 21、 为什么说构造方法是一种特殊方法及由谁调用?4.3 构造方法的名字和类名相同,且没有任何返回值 (2.5分) 创建一个对象是执行构造方法,由系统自动调用 (2.5分) 22、 类及类成员的访问控制符有哪些,并说明私有权限和公有权限的使用方法? 4.4 控制符有4种:public protected private privateprotected(2.5分) 其中private权限的成员只能在本类中使用,public公有权限的成员不但能在本类中使用,还可在类外使用。(2.5分) 23、 简述什么是类的继承机制? 4.5 继承是一种由已有的类创建新类的机制 (1分) 利用继承可以创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类 (1分) 新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为 (1分) 由继承而得到的类称为子类 (1分) 被继承的类称为父类 (1分) 24、 简述如何会发生成员变量的隐藏和方法重写? 4.5 当子类中定义的成员变量和父类中的成员变量同名时,则父类中的成员变量不能被继承,此时称子类的成员变量隐藏了父类的成员变量。(2.5分) 当子类中定义了一个方法,并且这个方法的名字、返回类型、及参数个数和类型跟父类的某个方法完全相同时,父类方法被隐藏,即重写了父类的方法。 (2.5分) 25、 用final修饰符修饰的类和方法有什么特点? 用final修饰的类不能被继承,即不能有子类。 (2.5分) 用final修饰的方法不能被重写 (2.5分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 26、 用abstract修饰符修饰的类和方法有什么特点? 用abstract修饰的类不能创建对象,必须产生子类,有子类创建对象(2分) 用abstract修饰的方法只允许声明,而不允许实现。(2分) 如果一个类是一个abstract类的子类,它必须实现父类的abstract方法。 (1分) 27、 关键字super如何使用? 子类继承父类时可能会发生父类的成员变量被隐藏和父类中的成员方法被重写 (1分) 如果在子类中想使用被子类隐藏的父类的成员变量或方法就可以使用关键字super (2分) 用super可以调用父类的构造方法和操作被隐藏的成员变量和方法 (2分) 28、 java是否支持多继承及java中采取什么机制来代替多重继承? Java不支持多继承,即一个类只能有一个父类。 (2分) 单继承性使得java简单,易于管理程序 (1分) 为了克服单继承的缺点,java使用了接口,一个类可以实现多个接口(2分) 29、 java中如何定义和使用接口? 使用关键字interface来定义一个接口,接口的定义和类的定义很相似,分为接口的声明和接口体。(2分) 一个类通过关键字implements声明自己使用一个或多个接口,如果使用多个接口,则用逗号隔开接口。(2分) 如果一个类使用某个接口,那么这个类必须实现该接口的所有方法(1分) 30、 一个Java Applet的生命周期包括什么? 一个Java Applet的执行过程称为这个Java Applet的生命周期 (2分) 一个完整的Java Applet所包含5个方法init( ) 、start( ) (1分) stop( )、destroy( ) (1分) paint(Graphics g) (1分) 31. 处理选择(Choice)控件上的事件? 选择控件的选择情况发生变化会产生HemEvent事件 (1分) 处理该事件的接口是HemListener (1分) 接口中的方法是ItemStateChanged(HemEvent e) (1分) 事件源获得监视器的方法是addHemListener( ) (1分) 处理该事件时,如果想获得事件源可调用方法getHemSelectable( ) (1分) 32、如何处理滚动列表(List)上的事件? 滚动列表可产生两种事件:双击和单击某项 (1分) 当双击某项时,产生ActionEvent事件,获得事件监视器的方法是addActionListener( ),处理事件的接口是ActionListener (1分) 接口中的方法是ActionPerformed(ActionEvent e),获得该事件的事件源的方法是 getSource( ) (1分) 当单击某项时,产生HemEvent事件,获得事件监视器的方法是addHemListener( ),处理事件的接口是HemListener (1分) 接口中的方法是itemStateChanged(HemEvent e),获得该事件的事件源的方法是getHemSelectable (1分) 33、何设置组件的字体和颜色? (1)设置字体:用Font类创建一个字体对象,该对象表示一种字体 (1分) 通过组件对象名调用方法SetFont(Font f),即可设置组件的字体 (1分) (2)设置颜色:用Color类创建两个颜色对象,表示两种颜色,一种颜色表示组件的前景色,另一种表示背景色 (1分) 通过组件对象名调用方法SetBackground(Color C)可设置组件的背景色 (1分) 调用方法SetForeground(Color C)可设置组件的前景色 (1分) 34、何在窗口中增加菜单? 用MenuBar创建一个对象,表示一个菜单条,使用Fram中的方法SetMenuBar(MenuBar),可在窗口中增加一个菜单条 (1分) 用Menu创建若干个对象,每一个对象表示菜单条上的一个菜单项 (1分) 通过MenuBar的对象add(Menu)将一个菜单加到菜单条上 (1分) 用MenuItem创建若干对象,每一个对象表示一个具体的菜单项 (1分) 通过Menu对象调用方法add(MenuItem)可将一个菜单项加入到一个菜单中 (1分) 35、如何处理菜单上的事件? 单击菜单项可产生ActionEvent事件 (1分) 处理该事件的接口是Actionlistener (1分) 接口中的方法是actionPerformed(ActionEvent e) (1分) 事件源获得监视器的方法是addActionListener( ) (1分) ActionEvent获得事件源的方法是getSource( ) (1分) 36、如何增加菜单分割线?如何产生复选菜单项? 通过Menu类的对象调用方法addSeparator( ),可在当前菜单中增加一个分割线 (2分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 用CheckboxMenuItem创建一个菜单项 (1分) 通过Menu类的对象调用方法add(CheckboxMenuItem)将菜单项加入到菜单中,即可创建一个复选菜单项 (2分) 37、如何绘制封闭的多边形? 使用Graphics中的drawpolygon(int xPoints[ ],int yPoints[ ],int nPoints)方法可绘制多边形 (2.5分) 要绘制封闭的多边形,xPoints和yPoints表示的第一点和最后一点必须相同 (2.5分) 38、什么是XOR绘图模式? 可调用方法SetXORMode( )将绘图模式设为XOR (2.5分) 使用XOR模式时,绘制的图形颜色为当前的绘图颜色与所绘图形经过的区域颜色作XOR运算后所得 (2.5分) 39、何处理MouseMotionListener接口事件? 鼠标移动事件有两种:拖动鼠标和移动鼠标 (1分) 产生的事件类型MouseEvent (1分) 获得监视器的方法是addMouseMotionListener( ) (1分) 事件接口中的方法为mouseDragged(MouseEvent e) (1分) 和mouseMoved(MouseEvent e) (1分) 40、何处理键盘事件? 当按下,释放或敲击键盘上一个键时,就会产生事件KeyEvent (1分) 事件的接口为KeyListener (1分) 事件获得监视器的方法addKeyListener( ) (1分) 事件的处理方法有三个,分别是keyPressed(KeyEvent e),keyTyped(KeyEvent e)和keyReleased(KeyEvent e) (2分) 41、用向量类的对象存储数据与用数组表示数据有什么区别? (1)数组元素可以是任何类型的数据,向量中的元素不能是基本数据类型的数据 (2.5分) (2)数组一旦用new运算符创建后,其大小不可以改变,向量对象的大小可根据元素的增加自动增加 (2.5分) 42、Java中多线程是如何调度的? 线程调度器负责线程的排队和处理器在线程间的分配 (2.5分) 线程在优先级基础上依据"先到先服务"的原则,即相同优先级的线程按启动的先后顺序执行, 高优先级线程先于低优先级运行 (2.5分) 43、在Applet中如何播放声音? 使用Applet中的一个静态方法newAudioClip(URL url,String name) (2分) 或Applet类的实例方法:getAudioClip(URL url,String name) (2分) 可得一个音频AudioClip的对象,通过该对象调用方法play( )可播放声音 (1分) 44、线程中的方法wait(),notify()和notifyAll()的作用是什么? (1)当一个线程使用的同步方法中用到某个变量,而此变量又需要其它线程修改后才能符合本线程的需要,则可以在同步方法中调用wait()方法,使本线程等待,并允许其它线程调用这个同步方法 (2分) (2)其它线程在使用这个同步方法不需要等待,当它使用完这个同步方法时,用notifyAll()通知所有由于使用这个同步方法而处于等待的线程结束,再次使用这个同步方法 (2分) (3)如果使第一个处于等待的线程结束等待,则调用方法notify() (1分) 45、如何用套接字建立两个程序间的通信? (1)用Socket类建立客户到服务器的套接字的对象:Socket(String host,int port) (2分) (2)用ServerSocket建立接受客户套接字的服务器套接字对象:ServerSocket(int port)客户端与服务器端的端口号相同 (2分) (3)客户端服务器对象调用方法accept()接受客户的套接字 创建客户端套接字对象,服务器端套接字对象和调用方法accept()时都可能产生IOException,所以需对例外进行处理 (1分) 46、Java中采用什么方法与数据库交互? 可以采用二种方法: (1分) (1)或者编写一个驱动程序接受JDBC调用,执行SQL对数据库的调用 (2分) (2)或者使用已存在的ODBC驱动程序,用JDBC-ODBC桥将JDBC与ODBC连接起来 (2分) 47、简述Java中打开与数据库连接的步骤? (1)装载数据库驱动程序类 (2.5分) (2)调用DriverManager的方法getConnection( ),并确定用于连接数据库的驱动程序,数据库文件名以及可选的用户ID和密码 (2.5分) 48、JDBC有哪几个主要任务? (1)建立同数据库的连接 (1分) (2)发送SQL语句 (2分) (3)处理查询结果 (2分) 49、创建一个File对象有哪几种构造方法? (1)包含路径名的字符串 (1分) (2)含有路径名的字符串和含文件名的字符串 (2分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... (3)一个代表路径的文件和一个含有文件名的字符串 (2分) 50、Java中的线程和多线程指的是什么? (1)称程序中单个序列化的流控制为线程 (2.5分) (2)多线程指的是在一个程序中可定义多个线程并同时运行它们,每个线程可以执行不同的任务 (2.5分) 51、线程有哪些状态?它们是如何转换的? 线程在它的生命周期中有四种状态:创建 (2分) 运行 (1分) 挂起 (1分) 结束 (1分) 52、什么是同步机制? (1)使共享对象将自己的成员方法定义为同步化方法 (1分) (2)通过调用同步化方法来执行单一线程 (2分) (3)其他线程不能同时调用一对象的同步化方法 (2分) 53、简述向服务器发送信息的步骤? (1)创建URL对象 (2)建立连接到URL对象的通道 (1分) (3)指定这个通道可输出 (1分) (4)指定通道所用的输出流 (1分) (5)向输出流写入数据 (1分) (6)关闭输出流 (1分) 54、比较多线程与多任务的异同? (1)多任务是针对操作系统而言的,表示操作系统可以同时执行多个程序 (2.5分) (2)多线程则是针对一个程序而言的,表示一个程序内部可以同时执行多个线程 (2.5分) 55、向窗口添加菜单有哪几个步骤? (1)生成菜单组件各个部分的对象 (2.5分) (2)进行菜单组装,即把菜单加到菜单条上,把菜单项加到菜单中 (2.5分) 56、包中封装的基本流类有哪几个? 共有四个 (1分) 包括基于Unicode字符的输入流Reader (1分) 输出流Writer (1分) 基于二进制字节的输入流InputStream (1分) 输出流OutPut Stream (1分) 57、创建线程有哪些方法? (1)通过继承线程类Thread创建线程类 (2.5分) (2)建立一个实现Runnable接口的类来运行线程 (2.5分) 58、简述MouseEvent类的主要方法. getX( ) (1分) getY( ) (1分) getModifiers( ) (1分) getClickCount( ) (1分) getSource( ) (1分) 59、对话框能独立存在吗?其默认布局是什么? 不能 (2.5分) 其默认布局是BorderLayout布局 (2.5分) 60、在Graphics类中,Java提供了哪几种文字输出方法? (1)字符串输出方法 drawString(String string ,int x,int y) (1分) (2)字符输出方法 drawChars(char chars[ ],int offset,int number,int x,int y) (2分) (3)字节输出方法 drawBytes(byte bytes[ ],int offset,int number,int x,int y) (2分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 2023年6月20日发(作者:) (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 2008年10月全国自考Java语言程序设计(一)真题及答案 一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下述字符组合不能作为Java程序标识符的是( ) A.Aa12 B.大x C.y小 D.5x 2.以下程序代码的输出的结果是( ) int x=53; System. out. println(1.0+x/2); A.27.0 B.27.5 C.1.026 D.1.026.5 3.参照以下Java代码,以下四个叙述中最确切的是( ) class A{ int x; static int y; void fac(String s){Syatem. out. println("字符串:"+s);} } A.x、y和s都是成员变量 B.x是实例变量、y是类变量、s是局部变量 C.x和y是实例变量、s是参数 D.x、y和s都是实例变量 4.需要分析字符串,并将字符串分解成可被独立使用的单词,可使用java. util包中的类是 ( ) A.String B.StringBuffer C.StringTokenizer D.stringTokenizer 5.要为程序的子窗口设定一个由字符串s指定的名字,可以采用的代码是( ) A.JFrame(s) B.window(s) C.new JFrame(s) D.super(s) 6.以下关于菜单的叙述中,正确的是( ) A.菜单分三级定义,最高一级的是菜单条,菜单条中放菜单,菜单中放菜单项 B.菜单分三级定义,最高一级的是菜单,菜单中放菜单条,菜单条中放菜单项 C.菜单分两级定义,最高一级的是菜单,菜单中放菜单项 D.菜单分两级定义,最高一级的是菜单条,菜单条中放菜单项 7.以下所述内容全部是字型要素的是( ) A.字体、字形和大小 B.字体、风格和字号 C.字形、风格和字号 D.字形、颜色和字号 8.用Thread子类实现多线程的步骤顺序是( ) A.声明Thread类的子类,创建Thread子类的实例,让线程调用start()方法 B.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例 C.创建Thread子类的实例,让线程调用start()方法 D.声明Thread类的子类,在子类中重新定义run()方法,创建Thread子类的实例,让线程调用start()方法 9.为16位Unicode字符流提供读和写操作支持的类分别是( ) A.FileInputStream类和FileOutputStream类 B.InputStream类和OutputStream类 C.FileReader类和FileWriter类 D.File_Reader类和File_Writer类 10.能利用对象提供的方法获得流对象和实现网络连接的是( ) A.URLConnection对象 B.URL对象 C.InetAddress对象 D.TCP/IP对象 二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。 11.一个小应用程序必须定义成一个_________。 12.用条件运算符构造一个表达式:goal等于10时,表达式的值为“对了!”,否则,表达式的值为“错了!”。这个表达式是_________。 13.类是对一组相同对象的描述,类概括了同类对象的共有性质:_________。 14.设有数组a和b的定义如下: int[]a={1,2,3};int[]b={4,5,6} …… 执行以下代码“a=b;”,除了完成赋值操作之外,引起系统额外要做的工作是_________。 15. _________布局使容器的多个组件拥有同一个显示空间,某一时刻只能显示一个组件。 语言为处理鼠标事件提供两个接口:_________接口和MouseMotionListener接口。 17.某个绘图方法设置成“异或模式”绘图,并用黄色作为异或模式设定的绘图颜色。如果当时背景色为红色,并用红色绘制线段,则线段的实际颜色是_________。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 18.程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_________方法;二是建立线程实例。 edWriter类是提供缓冲式输出的类。程序需要先创建_________对象,再利用这个对象创建BufferedWriter对象。 20.在Java语言中,客户端使用的套接字类是_________。 三、简答题(本大题共6小题,每小题3分,共18分) 21.请写出表示条件“x=2与y=3有且只有一个成立”的Java表达式”。 22.如果类Student是类Person的子类,类Undergraduate是类Student的子类,请指出以下代码行中哪些是不合法的。 Person p1=new Student(); Person p2=new Undergraduate(); Student s1=new Person(); Student s2=new Undergraduate(); Undergraduate ug1=new Person(); Undergraduate ug2=new Student(); Object ob=new Student(); 23.请写出程序处理文本框输入结束事件(回车)添加监视器的方法,以及监视器类必须实现的接口方法。 24.请写出一条语句,能够绘制一条从点(20,30)开始,长为100像素的水平线段。设调用的对象是类型为Graphics的g。 25.某Java程序要使用文件输入输出流,请写出该程序所需要的import语句。 是Java程序与数据库连接的API,请写出JDBC能做的三件事情。 四、程序填空题(本大题共5小题,每空2分,共20分) 27.方法int maxDigit(int n)的功能是找出十进制整数n各位中最大的一位数字。例如,n=23765,该方法的返回值是7。 static int maxDigit(int n){ int c=0,d; while(n>0){ d=_______; if(d>c) c=d; n/=10; } ________; } 28.某程序的界面包含一个文本区text1、一个文本框text2和一个按钮button。实现在文本区中输入整数序列后,点击按钮,程序响应按钮事件,累计文本区输入的整数序列,并将总和输出在文本框中。这里给出的是其中相应按钮事件的方法。 public void actionPerformed(ActionEvent e){ int sum; if(rce()==button){ String s=text1.________;//获取text1中的信息 StringTokenizer fenxi=new StringTokenizer(s,",,,n"); int n=okens(); double a[]=new double[n]; for(int i=0;i<n;i++){ String temp=ken(); a[i]=f(temp).doubleValue(); } sum=0; for(int i=0;i<n;i++){ __________; } t(""+sum);//刷新显示。} } 29.以下是生成菜单项对象,以及菜单项选择事件处理方法的部分代码。要求当菜单项singingItem被选中时,在文本框text中输出“唱歌菜单项被选中!”的字样。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... …… singingItem=new________("唱歌");//生成菜单项对象 …… public void actionPerformed(ActionEvent e){ if(rce()==singingItem) t(e.________()+ "菜单项被选中!"); } 30.某小应用程序实现幻灯片放映。小应用程序的init()方法将幻灯片读入数组中存储和注册鼠标监视器。程序运行时,单击鼠标,就顺序变换放映幻灯片的序号。这里给出的是其中的paint()方法和mousePressed()方法。 final int number=30;//假定幻灯片有30张 int count=0; Image[]pic=new Image[number]; public void paint(______gc){ if((pic[count])!=null) age(pic[count],10,10,pic[count].getWidth(this), pic[count].getHeight(this),this); } public void mousePressed(MouseEvent e){ count=(count+1)% number;//循环逐张显示 __________; } 31.以下定义的类shareDataManager用于管理多个线程共享数据data。一些线程要减少data,另一些线程要增加data。由于data不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。类提供一个方法modiData()供修改data的线程调用,该方法在data修改结束后,应通知其它等待进入这个方法的线程。 class ShareDataManager{ int data=0; ________void modiData(int delta){ if(delta>=0){ data+=delta; }else { while(data <delta){ try{n("发生等待!"); wait(); }catch(InterruptedException e){ } } data-=delta; } _________; } ShareDataManager(int ititData){data=initData;} } 五、程序分析题(本大题共5小题,每小题4分,共20分) 32.阅读下列程序,请写出该程序的输出结果。 import .*;import .*; class Point{ int x,y; Point(int xx,int yy){ x=xx;y=yy;} Point(Point p){x=p.x;y=p.y; } void m(int dx,int dy){x+=dx;y+=dy;} } class Circle extends Point{ int r; Circle(Point p, int rr){ super(p); r=rr; } float c(){ return 3.14f*2.0f*r; } float a(){ return 3.14f*r*r;} 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... } public class sample extends Applet{ Circle yuan; Point d; public void init() {d=new Point(2,5);yuan=new Circle(d,10);} public void paint(Graphics g){ ring("yuan Circle"+(int)(yuan.c()*100.0)/100.0,5,20); ring("yuan Area"+(int)(yuan.a()*100.0)/100.0,5,40); } } 33.阅读下列程序,请写出该程序的功能。 import java. util.*; public class Class1{ public static void main(Srting args[]){ Date date1=new Date(); System. out. println (datel); String t=ng(); int endPos=f(`C'); t=ing(11,endPos); System. out println(t); } } 34.阅读下列程序,请写出该程序的功能。 import .*;import .*;import .*; public class Class l extends Applet implements ActionListener{ JTextField text1,text2; public void init(){ text1=new JTextField(10); text2=new JTextField(10); setSize(200,100); add(text1); add(text2); ionListener(this); } public void actionPerformed(Action Event e){ long n; if(rce()==text1){ n=ong(t()); t(f(n*n)); } } } 35.阅读以下程序,请写出该程序的功能。 import .*; import .*;import .*; class MyScrollBar extends JscrollBar{ public MyScrollBar(int init, int len, int low, int high){ super(JScrollBar. HORIZONTAL, init,len,low,high); } } class MyWindow extends JFrame implements AdjustmentListener{ private JTextField text; MyWindow(String s){ super(s); MyScrollBar myBar=new MyScrollBar(10,10,0,255); Container con=this. getContentPane(); con. setLayout(new GridLayout(2,1)); this. setSize(200,100); this. setLocation(100,100); ustmentListener(this); text=new JTextField("",20); con. add(text);(myBar); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... ible(true); } public void adjustmentValueChanged(AdjustmentEvent e){ MyScrollBar myBar=(MyScrollBar)ustable(); t(""+ue()); } } public class Class1{ public static void main(String[]args){ MyWindow myWindow=new MyWindow("text5_4"); } } 36.小应用程序创建一个线程。例子使用容器类方法getGraphics()获得Graphics对象,给线程作为画笔使用。请写出该程序中这个线程的工作内容。 import .*;import .*; public class Class1 extends implements Runnable{ Thread redBall;Graphics redPen; int rx=0,ry=0; public void init(){ setSize(250,200); redBall =new Thread(this); redPen=getGraphics(); redPen. setColor(); setBackground(); } public void start(){ (); } public void run(){ while(true){ if(tThread()==redBall){ rx=(int)(80*()); ry=(int)(80*()); red or(); red al(100+rx,100+ry,10,10); try{(500);} catch(InterruptedException e){} or(); al(100+rx,100+ry,10,10); } } } } 六、程序设计题(本大题共2小题,每小题6分,共12分) 37.编写一个方法halfArray(),要求该方法有一个元素类型为int的数组参数,方法返回一个新数组,新数组的长度与参数数组的长度相同,而新数组元素的值是参数数组各元素的一半。 38.一个Java小应用程序,界面有三个文本框和两个按钮,前两个文本框用于输入整数,第三个文本框用于输出结果。两个按钮分别表示加和减运算。当前两个文本框输入整数后,点击相应按钮,程序就将计算结果输出在第三个文本框中。以下是程序的大部分,其中监视按钮事件的方法未给出,试编写处理按钮事件的方法。 注:这里是给定部分的程序,你要编写的是actionPerformed(ActionEvent e)方法。 import .*;import .*; import .*; import .*; class Panel1 extends JPanel{ JTextField text1, text2, text3;JButton addButton,subButton; Panel1(){ text1=new JTextField(10);text2=new JTextField(10); text3=new JTextField(10);setLayout(new GridLayout(5,1)); addButton=new JButton("加");subButton=new JButton("减"); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... add(text1); add(text2); add(text3); add(addButton); add(subButton); } } public class Classl extends Applet implements ActionListener{ Pane1 panel; public void init(){ setSize(100,200); panel=new Panel1();add(panel); (ton).addActionListener(this); (ton). addActionListener(this); } public void actionPerformed(ActionEvent e){//这里是你要编写的代码 2008年10月全国自考Java语言程序设计(一)真题答案 一、单项选择题 1:参考答案:D 参考解析:(P8)本题考核知识点是Java语言标识符命名规则。 Java语言标识符可以按以下规则任意命名: ①由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成。 ②限定标识符的第一个字符不能是数字字符。 选项D答案第一个字符是数字字符。 2:参考答案:A 参考解析:(P14)本题考核知识点是Java算术运算符 ——“/”。 “/”为除法运算符,当除数和被除数均为整数类型数据时,则结果也是整数类型数据。所以当x=53时,x/2=26。 3:参考答案:B 参考解析:(P46)本题考核知识点是实例变量、类变量、局部变量。 类的成员变量分为实例变量和类变量。在定义成员变量时,用关键字static修饰的是类变量,定义时未用static修饰的是实例变量。类变量是类的所有对象共享的成员变量,一个类变量在类中只有一个,它属于整个类,而不属于类的某个对象。引用类变量的途径有两条,或通过类,或通过对象。类的方法体中定义的变量称为局部变量,方法参数也属于局部变量。 4:参考答案:C 参考解析:(P77)本题考核知识点是StringTokenizer类。 包中的类StringTokenizer用于语言符号(单词)的分析,分析出字符串中的单词。另外还有命名的习惯约定(行业习惯,不是规定):一般变量名、方法名用小写英文字母开头,类名首字母用大写字母,若命名由若干个单词组成,后面的每个单词用大写开头;文字和常数全用大写字母命名;包名全部用小写字母。 5:参考答案:D 参考解析:(P91)本题考核知识点是JFrame类和关键字super。 在用Swing编写GUI程序时,通常不直接用JFrame创建窗口对象,而用JFrame派生的子类创建窗口对象,在子类中可以加入窗口的特定要求和特别的内容,这时可以使用超类的构造方法完成窗口的标题设置即super(s)。选项C完整的使用形式可以这样: JFrame myWin=new JFrame(s)//创建JFrame窗口对象myWin,标题是s 但这样不符合本题题干“为程序的子窗口设定标题”的要求。 6:参考答案:A 参考解析:(P118) 7:参考答案:B 参考解析:(P137)本题考核知识点是字型要素。 Java的文字字型有三个要素:字体、风格和字号。常用的字体有Times New Roman、Symbol、宋体和楷体等。常用的风格有正常、粗体和斜体,分别用三个常量表示:、和,风格可以组合使用。字号是字的大小,单位是磅。 8:参考答案:D 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 参考解析:(P162)本题考核知识点是多线程。 在Java中实现多线程一般情况下是先声明Thread类的子类,在子类中重载run()方法,然后创建这个子类的实例,让线程调用start()方法。 9:参考答案:C 参考解析:(P175)本题考核知识点是输入输出流。 为Java的8位字节流数据的读和写操作提供支持的类分别是FileInputStream类和FileOutputStream类,它们分别是InputStream类和OutputStream类的子类;为Java的16位Unicode字符流数据的读和写操作提供支持的类分别是FileReader类和FileWriter类,它们分别是Reader类和Writer类的子类。 10:参考答案:A 参考解析:(P191)本题考核知识点是Java网络编程。 要接收和发送信息需用URLConnection类,程序获得一个URLConnection对象,相当于完成对指定URL的一个HTTP连接。程序有了URLConnection对象后,就可使用URLConnection类提供的方法获得流对象和实现网络连接。 二、填空题 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)黄色 [解析]本题考核知识点是绘图模式。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 当绘图模式设置为异或模式时,用背景色绘图出现的是异或的颜色,重画一个图形将清除图形。 试题内容:某个绘图方法设置成"异或模式"绘图,并用黄色作为异或模式设定的绘图颜色。如果当时背景色为红色,并用红色绘制线段,则线段的实际颜色是_____。 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)我的答案: 2:参考答案:(P57)Student s1=new Person(); Undergraduate ug1=new Person(); Undergraduate ug2=new Student(); [解析]本题考核知识点是类之间的is-a关系。在两个相关的类之间,可能会有is-a和has-a关系。若类A是继承扩展类B,则子类A和超类B之间是is-a关系,即类A是一个类B。这种情况下,A类对象一定可以是B类类型,因为B类的所有成员A类也有。也就是子类对象可以是超类类型。语句B b=new A()是正确的,A a=new B()是错误的。 3:参考答案:(P102)为对象添加监视器的方法是addActionListener;类必须实现的方法是public void actionPerformed(ActionEvent e)。 [解析]本题考核知识点是文本框输入结束动作事件(回车)。 文本框输入结束动作事件相应的监视器接口为ActionListener,要实现的接口方法是actionPerformed(),添加监视器的方法是addActoinListener()。 4:参考答案:(P140)ne(20,30,120,30);或ne(120,30,20,30); [解析]本题考核知识点是画线段。 方法中有四个参数分别表示线段的两个端点坐标,当两个端点坐标相同时,将画出一个点,而不再是线段。 5:参考答案:(P175)import .*; [解析]本题考核知识点是文件输入输出流。 实现输入输出操作的类库在包中。包中有一组支持打开流、向流写数据、从流读取数据和关闭流等操作的类,要使用这些类,程序必须导入包。 6:参考答案:(P199)与某个数据库建立连接;向数据库发送SQL语句;处理数据库返回的结果。 [解析]本题考核知识点是java数据库编程基础。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... Java数据库连接JDBC由一组用Java语言编写的类和接口组成,JDBC是Java程序与数据库连接的API。它可以做三件事情。 四、程序填空题 (本大题共5小题,每空2分,共20分) 1:参考答案:n%10 return c [解析]本题考核知识点是%运算符和return语句。 方法中d为循环分离出整数n的每一位数字(每次取n的个位数字,n也在变化:n/=10),在找出最大的数字后存入了变量c中,因方法有返回值类型为int,所以必须有return语句,要返回最大数字。, 2:参考答案:getText() sum+=a[i]或sum=sum+a[i] [解析]本题考核知识点是图形界面设计中按钮事件方法的编写。 获取文本框中的内容使用的方法是getText(),方法名首字母均小写,后面单词首字母大写。获取整数序列后,使用单词分析器分解出每个整数(有类型转换过程)存入数组a中,然后对所有整数进行求和。, 3:参考答案:JMenuItem getActionCommand [解析]本题考核知识点是菜单。 生成菜单条是用类JMenuBar的构造方法JMenuBar(),把菜单条放入JFrame窗口中用setJMenuBar()方法;生成菜单用类JMenu的构造方法JMenu()或JMenu(String s);生成菜单项用类JMenuItem的构造方法JMenuItem()或JMenuItem(String s)。在菜单事件中获得事件源的方法是getSource(),获得事件源文字信息的方法是getActionCommand()。 4:参考答案:Graphics repaint()或update() [解析]本题考核知识点是小应用程序中paint()和repaint()方法的使用。 paint()方法需要Graphics类型参数,当单击鼠标时,要在paint()方法中再次显示图片,可以调用repaint()方法,使程序先清除paint()运行的结果,再运行paint();也可以调用update()方法,该方法会使系统自动调用repaint()方法。 5:参考答案:synchronized notify() [解析]本题考核知识点是线程的互斥和同步。 在Java语言中,使用关键字synchronized定义临界段,能对共享对象的操作上锁,使得某一时刻只允许一个线程使用这个共享对象。但是为了同步,可在临界段中使用wait()、notify()和notifyAll()方法。wait()让线程一直等待,notify()方法通知第一个处于等待的线程结束等待。notifyAll()方法使所有处于等待的线程都结束等待,重新竞争CPU。 五、程序分析题 (本大题共5小题,每小题4分,共20分) 1:参考答案:yuan Circle 62.8(2分) yuan Area 314.0(2分)我的答案: 2:参考答案:程序获得当前日期,将日期的字符串表示输出;(2分)截取日期字符串中从第11位开始到字母‘C’之前的部分字符串,并输出。(2分) 3:参考答案: 在第一个文本框输入数据,输入结束(回车)后,(2分)在第二个文本框输出该整数的平方。(2分) 4:参考答案: 滑动滚动条的滑块,在文本框显示块位置对应的数值。 5:参考答案:随机位置显示一个小圆,程序采用背景色重画的办法,清除前一次显示的小圆。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... [解析]本题考核知识点是图形绘制和线程综合应用。 在run()方法中随机产生一个坐标点,以此为左上角坐标,红色填充一个小圆形区域,500毫秒后,用背景色填充同一个小圆形区域,使红色小圆形区域消失,马上又随机产生一个坐标点,再红色填充,再消失,循环不止。我的答案: 六、程序设计题 (本大题共2小题,每小题6分,共12分) 1:参考答案:int [] halfArray(int [] a){(1分) int [] b=new int[];(2分) for(int k=0;k<;k++){(2分) b[k]=a[k]/2; } return b;(1分) } [解析]本题考核知识点是面向对象程序设计中的方法设计。 编写方法,需要确定方法名,已给出halfArray;再确定参数个数及类型,要求是一个int型数组参数即halfArray(int []);再就是确定方法返回值类型,要求返回一个新数组,新数组元素类型要确定下来,根据题意,新数组元素是参数数组相应元素的一半,这一半应该可能是小数,所以方法头应该为float[]halfArray(int [])而不应该是int [] halfAray(int []),方法体中的一半也应该是除以2.0。并转换成float类型,方法体定义的数组b也应该是float类型。或者返回值类型和数组b的类型都定义成double类型。 2:参考答案:long n1,n2;(1分) if(rce()=(ton)){(3分) n1=ong(t()); n2=ong(t()); t(f(n1+n2)); } else if(rce()=(ton)){(2分) n1=ong(t()); n2=ong(t()); t(f(n1-n2)); } 注:将1写成text1,2写成text2整体扣1分。 [解析]本题考核知识点是图形界面设计、JPanel、JTextField、JButton及其事件的处理。 在方法体中的代码类似于34小题。容器的嵌套不要忽略了。 全国2009年1月Java语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.下列字符组合不能作为Java整型常量的是( ) A.078 B.0x3ACB C.5000 D.0x3ABC 2.以下程序代码的输出结果是( ) int x = 10; 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... while (x > 7){ ("*"); x--; } A.** B.*** C.* D.**** 3.设类U声明,及对象u和v的定义如下: class U{ int x, int y; U(int a, int b){x= a; y = b;} void copy(U a){ x = a.x; y = a.y;} } U u = new U(1, 2), v = new U(2, 3); 在以下供选择的代码中,可能引起系统回收内存的是( ) A.u.x=v.y;u.y=v.x; B.u=v; (v); (u); 4.设有以下代码: String s l="123"; String s2="123"; String s3=new String("123"); 则表达式s1==s2和s1==s3的值分别是( ) ,true ,false ,false ,true 5.以下关于AWT与Swing之间关系的叙述,正确的是( ) 是AWT的提高和扩展 B.在写GUI程序时,AWT和Swing不能同时使用 和Swing在不同的平台上都有相同的表示 中的类是从Swing继承的 6.在以下Swing组件中,能为它指定布局管理器的是( ) lBar对象 ar对象 Box对象 g对象 7.一般的绘图程序要定义一个JPanel子类。在JPanel子类中还要重定义一个方法,在这个方法中调用绘图方法,绘制各种图形。要重定义的方法是( ) () omponent() t() () 8.用Runnable接口实现多线程的主要工作是( ) A.声明实现Runnable接口的类,在类内实现run()方法,让线程调用start()方法。 B.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在init()方法中创建新线程,启动新线程。 C.声明实现Runnable接口的类,在类内实现run()方法,在类内声明线程对象,在Init()方法或start()方法中创建新线程,在start()方法中启动新线程。 D.声明实现Runnable接口的类,在类内实现run()方法,在init()方法中创建新线程,在start()方法中启动新线程。 9.程序如果要按行输入输出文件的字符流,最合理的方法是采用( ) edReader类和BufferedWriter类 tream类和OutputStream类 ader类和FileWriter类 _Reader类和File_Writer类 10.在编写访问数据库的Java程序中,要用到DriverManager类。该类的作用是( ) A.存储查询结果 B.处理与数据库的连接 C.在指定的连接中处理SQL语句 D.处理驱动程序的加载和建立数据库连接 二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。 程序的字节码文件的扩展名是_________。 class 12.构造一个Java表达式:y/x>5,并且x!=0。这个表达式是_________。y/x>5 && x!=0 13.在类声明之前用_________修饰,声明类是不能被再继承的类,即它不能再有子类。final 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 14.设有字符串定义: String s="ABCDABCD"; 则表达式f("B")的值是_________。 1 15.在实现接口ActionListener的方法actionPerformed()中,常用的有两个获得事件源的方法,它们是getActionCommand()和_________。getSource() 16.使用单选按钮的方法是将一些单选按钮用_________对象分组,使同一组内的单选按钮只允许一个被选中。 ButtonGroup 17.在Java语言中,用类Font对象设置字型。如果要设置的字型是:细明体、正常风格(),12磅字号,构造这样要求的Font对象fnA的代码是_________。Font fnA=new Font(“细明体”,.12) 18.线程从阻塞状态恢复到就绪状态,有三种途径:自动恢复、用resume()方法恢复和用_________方法恢复。notify()或notifyAll() 19.为普通的8位字节流文件读和写操作提供支持的类是_________。InputStream OutputStream tion类是包中用于处理与数据库连接的类。Connection对象是用来表示_________的对象,Java程序对数据库的操作都在这种对象上进行。数据库连接 三、简答题(本大题共6小题,每小题3分,共18分) 21.请写出表示year年是闰年的Java表达式。闰年的条件是:每4年一个闰年,但每100年少一个闰年,每400年又增加一个闰年。(year%4= =0) && (year%4!=0)||(year%400= =0) 22.请写出在类的方法的定义之前,加上修饰字public、private的区别。 Public修饰的方法为公用方法,任何类的方法都可以访问他 Private修饰的方法,本类内部可以访问 23.请写出将文本区text放置于滚动面板jsp,并将滚动面板jsp添加到JFrame窗口myFrame的Java语句。 TextArea text=new TextArea(); JScrollPane jsp=new JScrollPane(text); tentPane().add(jsp); 24.要用Graphics2D类的方法画一个图形,首先要把参数对象g强制转换成Graphics2D对象;然后,用图形类提供的静态方法Double()创建一个图形对象;最后,以图形对象为参数调用Graphics2D对象的draw()方法绘制这个图形。请写出用这样的方法绘制一条线段的程序段,线段的两个端点分别是(10.0,10.0)和(30.0,30.0)。 Graphics2D g2d=( Graphics2D) g; Line2D line=new (10,20,30,40); (line) 25.请写出字符流数据与字节流数据的区别。(P.175) 26.请写出URLConnection类在编写Java网络应用程序中的作用。 URLConnection类完成流对象和实现网络连接 四、程序填空题(本大题共5小题,每小题4分,共20分) 27.方法int sigmaDigit(int n)的功能是求出十进制整数n的各位数字之和。例如,n=1234,该方法的返回值是10。 static int sigmaDigit( int n ) { int sum = 0, d; while( n > 0 ){ d=n% 10; _________; sum+=d n/= 10; } _________; return sum } 28.以下小应用程序能响应鼠标按动的事件,当鼠标在正文区的某个位置被点击时,就在该位置显示一个记号“×”,程序限制最多保留最新20个位置。 import .*; import .*; import .*; import .*; class MyPanel extends JPanel { public void print(Graphics g, int x, int y)( or(); ne(x-5, y-5, x+5, y+5); ne(x+5, y-5, x-5, y+5); } } 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... class MyWindow extends JFrame implements MouseListener{ final int MaxMarks = 20; int currentMarks = 0, markCount = 0; Point marks[] = new Point[MaxMarks]; MyPanel panel; MyWindow(){ ation(100, 100); e(300, 300); Container con = tentPane(); panel = new MyPanel(); (panel); _________(this); addMouseListener ible(true); } public void paint(Graphics g){ int i; ect(0,0, th(), ght()); for(i =0;i < markCount; i++) { _________(g, marks[i].x, marks[i].y); print } } public void mousePressed(MouseEvent e){ } public void mouseReleased(MouseEvent e){ } public void mouseEntered(MouseEvent e){ } public void mouseExited(MouseEvent e){ } public void mouseClicked(MouseEvent e){ marks[currentMarks] = new Point((), ()); if(markCount < MaxMarks)markCount++; currentMarks = (currentMarks+ 1)%MaxMarks; repaint(); } } public class Class1 extends Applet { public void init(){ MyWindow myWndow = new MyWindow(); } } 29.这是一个处理选择项目事件的子窗口类。窗口中有2个选择框,当选中某个选择框时,文本框将显示选择框对应的信息。 class MyWindow extends JFrame implements ItemListener { JTextField text; JCheckBox boxl, box2; MyWindow(String s) { _________; super(s) Container con = tentPane(); ation(100, 100); e(400, 200); text = new JTextField(10); box1 = new JCheckBox("A计算机", false); box2 = new JCheckBox("B计算机", false); out(new GridLayout(3, 2)); ( new JLabel("计算机产品介绍", )); add(new JLabel("计算机2选1", )); (box1); (box2); (text); box1 .addItemListener(this); mListener(this); ible(true); (); } public void itemStateChanged( _________e){ ItemEvent if(mSelectable() == box1) { 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... text. setText("A公司生产"); } else if(mSelectable() == box2) { text. setText("B公司生产"); } } } 30.这是一个播放幻灯片的小应用程序中的paint()方法。设幻灯片已由小应用程序的init()方法装入内存,并存放于myImage数组中,幻灯片的张数放于变量num中,paint()方法要播放的幻灯片号是int currentImage = 0; final int num = 30; Image [ ] myImage = new _________ [num]; Image …… public void paint(Graphics g) { if ((mylmage[currentImage]) != null) g. _________ (myImage[currentImage], 10, 10, drawImage myImage [currentImage].getWidth(this), myImage [currentImage].getHeight(this), this); } 31.以下定义的类ShareData用于管理多个线程共享数据val。为了保证对共享数据val修改的完整性,线程对val的操作需要互斥,类ShareData中定义的方法modiData()就是供共享val的线程修改val的方法。程序共有20个线程共享val,有些减少val,有些增加val。 public class Class1 { public static void main(String args[]){ ShareData mrc = new ShareData(50); Thread[] aThreadArray = new Thread[20]; n("t刚开始的值是:"+()); n("t多个线程正在工作,请稍等!"); for(int i = 0; i < 20; i++) { int d = i % 2 == 0 ? 50 : -30; aThreadArray[i] = new Thread(new MyMultiThreadClass(mrc, d)); aThreadArray[i].start(); } WhileLoop ://等待所有线程结束 while(true){ for(int i = 0; i < 20; i++) if(aThreadArray[i]. _________ ())continue WhileLoop; isAlive() break; } n("t最后的结果是: "+()); } } class MyMultiThreadClass implements Runnable { ShareData UseInteger; int delta; MyMultiThreadClass(ShareData mrc, int d) { UseInteger = mrc; delta = d; } public void run() { for(int i = 0; i < 1000; i++) { ta(delta); try {(10) ;//做一些其他的处理 }catch(InterruptedException e){ } } } } class ShareData { int val; ShareData(int initValue){val = initValue; } int getVal(){return val;} private void putVal(int v){val = v;} 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... _________ void modiData(int d){ synchronized putVal(getVal() + d); } } 五、程序分析题(本大题共5小题,每小题4分,共20分) 32.阅读下列程序,请写出该程序的输出结果。 class A { int x, y; A(int a, int b) { x= a; y= b; } } public class sample { public static void main(String args[]) { A pl, p2; p2 = new A(12, 15); p1 = p2; p2.x++; n("p1.x=" + p1 .x); } } p1.x=13 33.阅读下列程序,请写出调用pascal(4)的输出结果。 static void pascal(int n) { int pas[]; pas = new int[n]; pas[0] = 1; n(pas[0]); for (int i = 2; i <= n; i++) { /* 由存储在pas中的原来内容生成新内容*/ pas[i - l] =1; for (int j = i- 2;j > 0; j--) pas[j] = pas[j] + pas[j - 1 ]; for (int j = 0; j < i; j++) (pas[j] +" "); n(); } } 1 1 1 1 2 1 1 3 3 1 34.阅读下列程序,请用示意图画出程序运行时呈现的界面。 import .*; import *; import .*; class MyPanel extends JPanel { JButton button; JLabel label; MyPanel(String s1, String s2) { out(new GridLayout(2, 2)); button = new JButton(s1); label = new JLabel(s2, ); add(button); add(label); add(new JLabel()); } } public class Class1 { public static void main(String args[]) { JFrame mw = new JFrame("一个示意窗口"); e(400, 250); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... Container con = tentPane(); out(new BorderLayout()); MyPanel panel1, panel2; panel1 = new MyPanel("按钮1" ,"标签1"); panel2 = new MyPanel("按钮2", "标签2"); JButton button = new JButton("开始按钮"); (panel1, "North");(panel2, "South"); (button, "Center"); ible(true); } } 35.阅读下列程序,请回答以下问题: (1)程序要求在文本框text中输入的内容是什么? 需要读取的文件URL地址 (2)辅助文本区showArea组件的作用是什么? 显示读取的文件内容 (3)如何使程序开始下载网络文本文件? 点击下载按钮 (4)程序采用什么输入方式下载网络文件? 使用字节流完成下载 import .*; import .*; import .*; import,.*; import .*; public class Class1{ public static void main(String args[]) . { new ConnectNet("读取网络文本文件示意程序");} } class ConnectNet extends JFrame implements ActionListener{ JTextField text=new JTextField(30); JTextArea showArea=new JTextArea(); JButton b=new JButton("下载");JPanel p=new JPanel(); ConnectNet(String s){ super(s);Container con=tentPane(); (text);(b); JScrollPane jsp=new JScrollPane(showArea); ionListener(this); (p,"North"); (jsp,"Center"); setDefaultCloseOperation(_ON_CLOSE); setSize(500,400);setVisible(true); } public void actionPerformed(ActionEvent e){ String urlName=t(); try{ URL url=new URL(urlName);//由网址创建URL对象 URLConnection tc=nnection();//获得URLConnection对象 t();//设置网络连接 InputStreamReader in=new InputStreamReader(utStream()); BufferedReader dis=new BufferedReader(in); String inLine; while((inLine=ne())!=null){(inLine+"\n");} (); }catch(MalformedURLException e2){tackTrace();} catch(IOException e3){ tackTrace();} } } 36..阅读下列程序,请写出该程序的功能。 import .*; import .*; public class Class1 extends implements Runnable { Thread myThread = null; public void start() { setSize(500, 400); if (myThread == null) { myThread = new Thread(this); (); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... } } public void run() { while (myThread != null) { try { (500); } catch (InterruptedException e) { } repaint(); } } public void paint(Graphics g) { int x = (int)(400*()); int y = (int)(300*()); or(); al(x,y, 10, 10); } } 随机绘制外切矩形为10红色的圆 六、程序设计题(本大题共2小题,每小题6分,共12分) 37.编写数组复制方法。该方法从已知平衡的两维数组的左下角复制出一个非平衡的三角二维数组。设复制数组方法的模型为: public static double[][] leftDownConer(double[][]anArray) public static double[][] leftDownConer(double[][]anArray){ int l1= ; int l2=anArray[0].length; double temp[][]; if(l1<=l2){ temp=new double[l1][]; for(int i=0;i temp[i]=new double[i+1]; for(int j=0;j temp[i][j]=anArray[i][j]; } return temp; }else{ temp=new double[l2][]; for(int i=0;i temp[i]=new double[i+1]; for(int j=0;j temp[i][j]=anArray[l1-l2+i][j]; } return temp; } } 38.设计实现以下形式布局的Java小应用程序。 注1:其中空白格是文本框,用于输入对应的内容。 注2:这里给出的是程序的一部分,你要编写的是方法MyWindow(String s)。 import .*; import .*; import .*; class MyWindow extends JFrame{ JTextField textl,text2,text3,text4; public MyWindow(String s){//这个方法是你要编写的 super(s); Container con=getContentPane(); out(new GridLayout(2,4)); JLabel label1=new JLabel("学 号"); JLabel label2=new JLabel("姓 名"); JLabel label3=new JLabel("考试成绩"); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... JLabel label4=new JLabel("平时成绩"); text1=new JTextField(); text2=new JTextField(); text3=new JTextField(); text4=new JTextField(); (label1); (text1); (label2); (text2); (label3); (text3); (label4); (text4); ible(true); } } public class Class1 extends Applet{ MyWindow myWindow; public void init(){ myWindow=new MyWindow("一个小应用程序"); } } 2009年10月全国自考Java语言程序设计(一)真题及答案 一、单项选择题 (本大题共10小题,每小题1分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1:参考答案:C 参考解析:暂无解析 试题内容: 下面供选字符序列中,不属于Java语言关键字的是() A:goto B:null C:false D:native 2:参考答案:A 参考解析:暂无解析 试题内容: 以下程序代码的输出结果是() int x=73;n(x>>1); A:36 B:36.5 C:37 D:true 3:参考答案:A 参考解析:暂无解析 试题内容: Java语言中,在类定义时用final关键字修饰,是指这个类() A:不能被继承 B:在子类的方法中不能被调用 C:能被别的程序自由调用 D:不能被子类的方法覆盖 4:参考答案:D 参考解析:暂无解析 试题内容: 以下是关于字符串运算的代码,执行该代码段的输出结果是() String s=″″,s1,s2; s1=ing(2);s2=ing(2,5);n(s1+s2); A:0122345 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... B:234567892345 C:012234 D:23456789234 5:参考答案:B 参考解析:暂无解析 试题内容: 以下是关于FlowLayout布局组件排列顺序的叙述,正确的是() A:从上到下排列 B:从左到右排列 C:从下到上排列 D:从右到左排列 6:参考答案:B 参考解析:暂无解析 试题内容: 程序执行方法showOpenDialog(),能打开“打开文件对话框”,如果该方法的返回值是E_OPTION,则用户执行的动作是() A:对话框非正常关闭 B:按下“打开/保存”按钮 C:按下“撤销”按钮 D:重新输入了一个文件名 7:参考答案:A 参考解析:暂无解析 试题内容: 设已经有Graphics2D对象g2d,Rectangle2D对象r,绘制对象r的代码是() A:(r) B:ct(r) C:() D:ct() 8:参考答案:C 参考解析:暂无解析 试题内容: 在以下供选择的方法中,能让线程从阻塞状态恢复到就绪状态的方法是() A:start() B:init() C:resume() D:run() 9:参考答案:C 参考解析:暂无解析 试题内容: 在以下供选择的方法中,不能用于文件随机访问的方法是() A:readChar() B:readLong() C:readInteger() D:writeChars() 10:参考答案:D 参考解析:暂无解析 试题内容: 某程序利用网址参数创建URL对象url,接着希望利用对象url获得URLConnection对象,则这个url对象要调用的方法是() A:connection() B:URLConnection() C:getConnection() D:openConnection() 1:参考答案:main() 试题内容: 二、填空题 (本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。 一个应用程序必须在某个类中定义的方法是_____。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 2:参考答案:import包名.类名; 试题内容: import语句的格式是_____。 3:参考答案:相互发送消息 试题内容: 在面向对象语言中,对象之间的交互通过_____实现。 4:参考答案:是否引用同一个对象 试题内容: 设有两个字符串对象str1和str2,则表达式“str1==str2”的意义是判别字符串str1和str2_____。 5:参考答案:外观与风格 试题内容: 一个基于Swing的应用程序可能在任何平台上都会有相同的_____。 6:参考答案:KeyListener 试题内容: 处理键盘事件的Java程序,要实现的接口是_____。 7:参考答案:左上角 试题内容: Java语言约定,坐标原点位于绘图区域的_____。 8:参考答案:wait() 试题内容: Java程序中,在临界段中使用_____方法,使执行该方法的线程等待。 9:参考答案:readLine() 试题内容: BufferedWriter类对象能按行输入文件的内容,按行输入的方法是_____。 10:参考答案:IP地址和域名 试题内容: 在包中有InetAddress类的定义,Java程序中的InetAddress类对象存储的内容是_____。 三、简答题 (本大题共6小题,每小题3分,共18分) 1:参考答案:if(x>=0)y=x; elsey=-x; 试题内容: 请写出实现计算y=|x|的if语句。 2:参考答案:4,5,6行错误 试题内容: 以下代码定义了一个类,请指出其中三条不合法的代码行(行号参见注释)。 class Test22{//1 float u;static float v;//2 static void setUV(boolean f){//3 u=fac1(f);//4 v=fac2(!f);}//5 static float fac1(boolean f){return f ?u:v;}//6 float fac2(boolean f){return f ?v:u;}//7 }//8 3:参考答案:源对象、监视器对象、事件对象 试题内容: 在中,用来检测并对事件做出反应的模型涉及三种对象。请写出这三种对象。 4:参考答案:Font fn=new Font("Courier",,18); t(fn); 试题内容: 写出设置Font对象fn的Java语句,要求Courier字体,BOLD风格,18磅字号,设调用对象的类型为Graphics的g。 5:参考答案:FileInputStream(String name) FileInputStream(File filename) FileOutputStream(String name) FileOutputStream(File filename) 试题内容: 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 通过流的构造方法建立文件流对象,请写出创建输入输出文件流对象的两种常用构造方法。 6:参考答案:流式socket和数据报式socket 试题内容: 当Client程序和Server程序需要通信时,可以用Socket类建立套接字连接,请写出双方实现通信的两种方式。 四、程序填空题 (本大题共5小题,每空2分,共20分) 1:参考答案:i< a[i]%2==0 方法int sigmaEvenNum(int[]a)的功能是求已知数组中偶数的个数。 static int sigmaEvenNum(int []a){ int s =0; for ( int i=0;_____;i++ ) { if(_____) s++; } return s; } 2:参考答案:getActionCommand() append 某小应用程序窗口包含有文本区dispArea,以及一个带文字“追加”的按钮。当点击这个按钮时,程序弹出一个输入信息的对话框,并将对话框中输入的内容追加到文本区中。以下是其中相应“追加”按钮事件的方法。 public void actionPerformed(ActionEvent e){ if(e._____.equals("追加")){ String result=(String)putDialog(null,"请输入信息", "输入对话框",_MESSAGE, null, null,null); dispArea._____(result + " "); } } 3:参考答案:radioNameList[i] isSelected() 以下程序段是选择项目事件处理程序的样例,一个由3个单选按钮组成的选择组被定义为一个面板子类Panel,当某个按钮被选中时,按钮监视程序在类MyWindow的一个文本框中输出某个按钮被选中的字样。以下是类Panel的定义。 class Panel extends JPanel implements ItemListener{ static JRadioButton box[]; ButtonGroup g; Panel(String radioNameList[]) { box=new JRadioButton[]; setLayout(new GridLayout(1, )); g=new ButtonGroup(); for(int i=0;i<; i++){ box[i] = new JRadioButton(_____,false); (box[i]);add(box[i]);box[i].addItemListener(this); } } public void itemStateChanged(ItemEvent e){ for(int i = 0; i < ; i++){ if(box[i]._____) { t(box[i].getLabel()+"被选中!"); } } } } 4:参考答案:getDocumentBase() this 用getImage()方法和drawImage()方法能加载和显示图像。以下程序加载的是文件,并假定该文件与包含这个小应用程序的HTML文件在同一个目录下。 import .*; import .*; public class SimpleImageLoad extends Applet{ 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... Image img; public void init() { img = getImage(_____,""); } public void paint(Graphics g) { age(img, 0, 0, _____); } } 5:参考答案:getData()+delta notify() 以下程序段定义的类ShareDataManager用于管理多个线程共享数据data。为了对data的取、存和修改操作保持完整,多线程在data上的操作有互斥要求;另外,限制线程对data的修改不能让data为负数,所以多线程在data上的操作还有同步要求。为此,程序为管理data上的操作定义成类,以下是管理共享数据data的类ShareDataManager的代码。 class ShareDataManager { int data; ShareDataManager(int init){data = init; } public int getData(){ return data;} private void putData(int newValue){ data = newValue;} synchronized void modiData(int delta){ if (delta >= 0) {putData(getData()+ delta); } else { while (_____<0) { try {wait(); } catch (InterruptedException e) { } } putData(getData()+ delta); } _____; } } 五、程序分析题 (本大题共5小题,每小题4分,共20分) 1:参考答案:fOb: Name:May Flower Birth Year:1980 Flower:true(2分) sOb: Name:Pine Birth Year:2000 Flower:false Coniferous:true(2分) 阅读下列程序,请写出该程序的输出结果。 class Tree { private String name;public boolean flower; public int birthYear; Tree(String n, boolean f, int y){ name = n; flower = f; birthYear = y; } public void setName(String n){name = n;} public String getName(){return name; } public void printTree(String str){ n(str);n("Name:"+name); n("Birth Year:"+birthYear); n("Flower:"+flower); } } class PineTree extends Tree { public boolean coniferous = true; PineTree(String n, boolean f, int y, boolean c){super(n, f, y);coniferous = c; } public void printTree(String str){ ree(str); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... n("Coniferous:" + coniferous); } } class Test32 { public static void main(String[]args){ Tree fOb = new Tree("May Flower", true, 1980); PineTree sOb = new PineTree("Pine", false, 2000, true); ree(" fOb:"); ree("sOb:"); } } 2:参考答案:5671112(4分) 试题内容: 阅读下列程序,请写出该程序的输出结果。 class Test33 { static void s(int b[ ], int k) { int i, j, t; for(i = 1;i< k; i++) { for(t = b[i], j = i-1; j >= 0 && t < b[j]; j--) b[j+1] = b[j]; b[j+1] = t; } } public static void main(String []args){ int i, a[] = {6, 12, 7, 11, 5 }; s(a, 5); for(i = 0;i<; i++) (a[i]+" "); n(); } } 3:参考答案:以文本框输入的数字为半径,(1分)以(10,10)为左上角,(1分)填充一个红色(1分)的圆。(1分) 试题内容: 阅读下列程序,请写出该程序的功能。 import .*;import .*; import .*;import .*; public class Test34 extends Applet implements ActionListener { JTextField text;int r; JPanel panel; public void paint(Graphics g){ Graphics gc = phics(); ect(0,0, th(), ght()); or(); al(10, 10, r, r); } public void init() { text = new JTextField(10); panel = new JPanel(); setSize(200, 100); setLayout(new GridLayout(2,1)); add(text); add(panel); ionListener(this); } public void actionPerformed(ActionEvent e) { if (rce() == text) { r = nt(t()); repaint(); } } } 4:参考答案:(1)3个菜单项(1分)(2)“显示”菜单项(1分)(3)非强制型对话框(1分)(4)显示当前事件(1分) 试题内容: 阅读下列程序,请回答以下问题: (1)该程序的菜单条中共有几个菜单项? (2)单击哪个菜单项,可以打开一个对话框? 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... (3)该对话框是强制型还是非强制型? (4)该对话框中显示的是什么内容? import .*;import .*; import .*; import .*; class MyDialog extends JDialog { MyDialog(JFrame F, String s) { super(F, s, false); Date date = new Date(); String t = ng(); JLabel text = new JLabel(t); add(text); setSize(200,100); setVisible(true); } } public class MenuDemo extends JFrame implements ActionListener { JMenuBar menubar; JMenu action; JMenuItem show, set, quit; public MenuDemo() { menubar = new JMenuBar();setJMenuBar(menubar); action = new JMenu("操作");(action); show= new JMenuItem("显示");(show); set = new JMenuItem("设置");(set); arator();quit = new JMenuItem("退出"); (quit);ionListener(this); ionListener(this);ionListener(this); setSize(300,300);setVisible(true); } public void actionPerformed(ActionEvent e) { if(rce() == show) {MyDialog diag = new MyDialog(this, "信息");} else if(rce()== set) { le("菜单演示");} else if(rce() == quit){ (0); } } public static void main(String[]args) {new MenuDemo();} } 5:参考答案:urrent thread(1分) After name change(1分) 3 2 1(2分) 试题内容: 阅读以下程序,请写出该程序的输出结果。 class CurrentThreadDemo { public static void main(String args[]) { Thread t = new Thread();n("Current thread"); e("My Thread");n("After name change"); try {for(int n = 3; n > 0; n--) { n(n); (1000); } } catch (InterruptedException e) { n("Main thread interrupted"); } } } 六、程序设计题 (本大题共2小题,每小题6分,共12分) 1:参考答案:int searchMaxNumIndex(int[]a){ int i,maxIndex;(1分) for(i=maxIndex=0;i<;i++){(2分) if(a[i]>a[maxIndex])(1分) maxIndex=i;(1分) } return maxIndex;(1分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... } 试题内容: 编写方法int searchMaxNumIndex(int[]a),寻找已知数组中最大数的下标并返回。 2:参考答案:int n=okens();(1分) int i=0;(1分) while(eTokens()){(1分) String s1=ken();(1分) sum=sum+f(s1).doubleValue();(1分) } t(""+sum);(1分) 试题内容: 以下程序的界面有一个按钮button、一个文本区textA和一个文本框textF。程序运行时,在文本区中输入数字序列,单击按钮,则在文本框中显示数字序列的和。以下是要求你编写的actionPerformed(ActionEvent e)方法的部分代码。 public void actionPerformed(ActionEvent e) { if (rce() == button) { String s = t(); double sum =0; StringTokenizer fenxi = new StringTokenizer(s, " ,\n"); //请在以下位置编写代码 } } 全国2010年10月自学考试Java语言程序设计(一)试题 课程代码:04747 一、单项选择题(本大题共10小题,每小题1分,共10分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。 1.以下是关于Java语言关键字的叙述,其中正确的是( ) A.关键字可以用来描述类的成员类型,但是不能描述普通变量 B.关键字由字母(包括英文字母、下划线字符、美元字符、文字字符)和数字组成 C.关键字不可以用作变量、方法、类或标号的标识符 和main都是Java语言的关键字 2.执行以下代码,输出结果是( ) int x=5,y=7,u=9,v=6; n(x>y ? x+2:u>v ? u-3:v+2); A.8 B.6 C.7 语言中,只限子类或者同一包中的类的方法能访问的访问权限是( ) e ted D.<无修饰> 4.设有数组定义int[][] x={{1,2},{3,4,5},{6},{}};,则的值为( ) A.3 B.4 C.6 D.7 5.在以下Swin 的类中,属于容器的是( ) t n rea 6.在以下供选择的方法中,属于接口MouseMotionListener的方法是( ) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... eleased() ntered() xited() oved() 7.小程序要播放音频文件,可使用类( ) lip Clip 8.以下是关于线程的叙述,正确的是( ) A.多线程的使用可以提高设备的平行工作能力,但是使系统管理变得复杂 B.同一个进程下的线程都有自己的状态、专用数据段和独立的内存资源 C.线程是能独立运行的程序 D.进程的执行效率比线程的执行效率高 9.在Java的类库中,包含实现输入/输出操作的包是( ) 10.在编写访问数据库的Java程序时,ResultSet对象的作用是( ) A.建立新数据库连接 C.在指定的连接中处理SQL语句 B.用来表示与数据库的连接 D.存储查询结果 二、填空题(本大题共10小题,每小题2分,共20分) 请在每小题的空格中填上正确答案。错填、不填均无分。 语言采用多种机制来保证可移植性,其中最主要的是______。 12.程序包声明的格式是______。 13.当联编推迟至运行时间实现时,该联编过程称为______。 14.使用默认字节字符对应表,将字符串转化为字节数组的方法是______。 15.在Swing中,带有滚动条的面板的类名是______。 16.组合框(JComboBox)是______的组合。 17.在某个组件中绘图,一般应该为这个组件所属的子类重写______方法。 18.多线程互斥使用______的程序段,在操作系统中称为临界段。 19.在Java语言中,文件随机访问可以利用______类实现。 程序可以用纯Java的______驱动程序,实现与数据库连接。 三、简答题(本大题共6小题,每小题3分,共18分) 11121.请使用for循环语句计算S=1+的值。 231022.请写出Applet类中init()方法的功能。 23.请写出空布局安置组件的两个步骤。 24.在Swing中,对话框有几种?并请写出它们的主要区别。 25.请写出用Runnable接口实现多线程的主要工作。 26.请写出用InetAddress类,获取网址为“”的IP地址的Java语句。 四、程序填空题(本大题共5小题,每空2分,共20分) 27.方法boolean isPrime(int n)的功能是判断正整数n(n>1)是否为质数。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... static boolean isPrime(int n) { int i; if(n==2)return true; if(n%2==0)return false; for(i=3;i*i<=n;i+=2) if(_________) break; if(_________) return true; return false; } 28.某小应用程序窗口中有一个文本框,一个8行10列的文本区以及一个按钮,点击这个按钮时,在文本框中输入的内容会追加到文本区中。 import .*; import .*; import java,.*; public class TextAPP extends Applet implements ActionListener { JTextField input; JTextArea display; JButton append; public void init() { input = new JTextField(10); display = new ; append = new JButton("追加"); add(input); add(display); add(append); tFocus(); eWrap(true); ionListener(this); } public void actionPerformed(ActionEvent e),{ display. (t() +" "); } } 29.某小应用程序有一个由3个单选按钮组成的颜色选择组,当选中某种颜色时,窗口的背景颜色将作相应的变化。这里给出的是窗口子类My Window的定义的框架以及其构造函数的定义。 class MyWindow extends JFrame implements { … MyWindow(String s) { super(s); Container con = tentPane(); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... out(new GridLayout(3,2)); ation(100, 100); e(400, 400); panel 1 = new Panel l (); label l = new JLabel("改变前景颜色",); (label 1 ); con. ; panel 1 .box 1 .addltemListener(this); panel 1 .box mListener(this); panel 1 .box mListener(this); this. setVisible (true); (); } … } 30.某小应用程序的界面有两个按钮,点击“画圆”按钮,程序在窗口画一个圆,点击“画矩形”按钮,程序在窗口画一个矩形。 import .*; import .*; import .*;import .*; public class Class l extends Applet implements ActionListener { boolean c = false; int r = 50,a = 50, b = 50; JButton bl, b2; public void init(){ setSize(200, 200); setBackground(); b1 = new JButton("画 圆"); b2 = new JButton("画矩形"); ionListener(this); ionListener(this); add(b1); add(b2); setVisible(true); } public void (Graphics g){ ect(70, 100, 130, 200); or(Color. red); if(c) undRect(70, 100, r, r, r, r); else ct(70, 100, a, b); } public void update(Graphics g){ paint(g); } public void actionPerformed(ActionEvent e){ if(rce()==b1) { c = true; } 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... else if(rce()==b2){ c = false; } ; } } 31.某按钮的监视器方法actionPerformed()实现将文本区中的内容写入到文本文件中。 public void actionPerformed(ActionEvent e) { try { int n = t().length(); byte buffer[]=new byte[n]; buffer=t().getBytes(); FileOutputStream wf=new (""); wf. write(buffer, 0,n); ; }catch (IOException ioe){ t(ng()); } } } 五、程序分析题(本大题共5小题,每小题4分,共20分) 32.阅读下列程序,请写出该程序的输出结果。 public class A { int m = 5; static int n = 3; public static void main(String[] args) { A obj 1 = new A(); A obj2 = new A(); objl.m *= 2; objl.n *= 4; obj2.m += 1; obj2.n += 6; n("obj 1.m='' + obj 1.m); n("obj 1.n=" + obj 1.n); n("obj2.m=" + obj2.m); n("obj2.n=" + obj2.n); } } 33.阅读下列程序,请写出该程序的输出结果。 class Test33 { static int merger(int [] a, int []b, int []c){ int i = 0, j = 0, k = 0; while(i < && j < ) { 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... if(a[i] < b[j])c[k++] = a[i++]; else c[k++] = b[j++]; } while(i < ) c[k++] = a[i++]; while(j < ) c[k++] = b[j++]; return k; } public static void main(String[] args) { int a[] = {3, 6, 9}; int b[] = { 1, 2, 5}; int []c = new int[100]; int p = merger(a, b, c); for(int k = 0; k < p; k++) (c[k]+ (k < p-1 ? " ":"n")); } } 34.阅读下列程序,请写出该程序的功能。 import .*; import .*; import .*; import .*; public class Class l extends Applet implements ActionListener{ JTextField Text I =new JTextField(5); JTextField Text2=new JTextField(5); JTextField Text3=new JTextField(5); JLabel Label 1 =new JLabel("Please input three numbers:"); JLabel Label2=new JLabel(" "); JButton but=new JButton("Start!"); public void init() { setLayout(new GridLayout(6,1)); add (Label 1); add (Textl); add (Text2); add (Text3); add (but); add (Label2); t(new Font ("Courier", 1, 20)); ionListener(this); } public void actionPerformed(ActionEvent e) { int a,b,c; a=nt(Text t()); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... b=nt(t()); c=nt(t()); if (a + b < c || b + c < a || c + a < b) { Label2 .setForeground (Color. red ); t(new Font ("Courier ", 1, 24)); t("No."); } else { eground(); t(new Font ("Courier ", 2, 24)); t(" Yes."); } } } 35.阅读下列程序,请写出该程序的功能。 import .*; import .*; import .*; class MyScrollBar extends JScrollBar { public MyScrollBar(int init, int len, int low, int high){ super(NTAL, init, len, low, high); } public Dimension getPreferredSize(){ return new Dimension(125, 20); } } class MyWindow extends JFrame implements AdjustmentListener{ private JTextField text; MyWindow(String s){ super(s); MyScrollBar tempBar = new MyScrollBar(l0, 10, 0, 255); Container con = tentPane(); out(new GridLayout(2,1)); e(250, 100); ation(100, 100); djustmentListener(this); text= new JTextField("移动滚动条的滑块",20); (text); (tempBar); ible(true); (); 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... } public void adjustmentValueChanged(AdjustmentEvent e){ MyScrollBar myBar=(MyScrO11Bar)ustable(); t("选择的值是:"+ue()); } } public class Test35 { public static void main(String[] args) { new MyWindow("滚动条示意程序"); } } 36.阅读下列程序,请写出该程序的功能。 import java util.*; class MyThread extends Thread { int pauseTime; String name; public MyThread (int x, String n) { pauseTime = x; name = n; } public void run() { for(int i = 1;i <= 4; i++) { try { n(name +":" +new Date(tTimeMillis())); (pauseTime); }catch(Exception e){ } } } } public class Test36{ static public void main(String[] args) { MyThread thread1 = new MyThread (1000,"Fast Thread"); thread 1 .start(); MyThread thread2 = new MyThread (3000,"Slow Thread"); (); } } 六、程序设计题(本大题共2小题,每小题6分,共12分) 37.请编写方法int countNum(String str),该方法的功能是统计已知字符串str中数字的个数。例如,countNum("A42B83C2D")的返回值是5。 38.一个小应用程序,界面如下图所示,其功能为实现摄氏温度和华氏温度的相互转换。以下是程序的大部分,请编写其中的监视器方法。 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 注:华氏温度(F)=摄氏温度(C)×9/5+32 import .*; import .*; import .*; public class test38 extends Applet implements ActionListener { JTextField textl, text2; JButton c2f, f2c; public void init() { text l = new JTextField(5); text2 = new JTextField(5); c2f=new JButton("摄氏转换为华氏"); f2c=new JButton("华氏转换为摄氏"); add(text 1);add(text2); add(c2f);add(f2c); tFocus(); ionListener(this);ionListener((this); } public void actionPerformed(ActionEvent e) { } } 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 2010年10月全国自考JAVA语言程序设计(一)参考答案自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 1、 简述java语言的特点? 1.2 Java语言是目前使用最为广泛的网络编程语言之一 (1分) 具有面向对象 (1分) 与平台无关性 (1分) 多线程性 (1分) 动态性等特点 (1分) 2、 简述Java程序的开发过程? 1.3 (1) 使用一个文字编辑器,编写源文件。 (1分) (2) 使用java编译器,编译源文件得到字节码文件。 (2分) (3) 运行java程序,分两种java应用程序必须通过java解释器来解释执行,java小应用程序必须使用解释器和浏览器运行程序。 (2分) 3、 java源文件的命名规则是什么? 1.3 如果源文件中有多个类,那么只能有一个类是public类 (1分) 如果有一个类是public类,源文件的名字必须与这个类的名字完全相同,扩展名是java (2分) 如果源文件没有public类,源文件的名字只要和某个类的名字相同,并且扩展名是java (2分) 4、 怎样区分应用程序和小应用程序? 1.4 一个java应用程序必须且只有一个类含有main方法,这个类称为应用程序的主类,其main方法必须被说明为public static void (2.5分) 一个Java Applet小应用程序不再需要main方法,但必须有一个类扩展了Applet类,即它是Applet类的主类。 (2.5分) 5、 Java中共有哪些基本数据类型? 2.2 基本类型共有8种,分四类分别是 (1分) 逻辑型 (1分) 字符型 (1分) 整型 (1分) 浮点型 (1分) 6、 Java中数据类型分别用什么符号来表示的? 2.2 逻辑型用boolean 表示 (1分) 字符型用char表示 (1分) 整型共有4种分别是 byte、short、long、int (2分) 浮点型共两种float和double (1分) 7、 简答标示符的概念及定义原则? 2.1 标示符是用来标识类名、变量名、方法名、类型名等有效字符序列。 (2.5分) Java语言规定标示符由字母、下划线、美元符号和数字组成,并且第一个字符不能是数字,及java中的关键字不能用作标示符。(2.5分) 8、 简答什么是强制类型转换及转换格式? 2.2 当把一种数据类型变量的值赋给另一种数据类型时会用到数据转换。当把在内存中占字节数较少的变量的值赋给占字节较多的变量时,系统自动完成数据类型的转换 (2.5分) 格式:(数据类型名)变量名或表达式 (2.5分) 9、 简答表达式++x和x++的区别 3.1 ++x表示在使用x之前,先使x的值加1 (2.5) x++表示在使用x之后,使x的值加1 (2.5) 10、 Java中常用的运算符按功能分有哪些? 3.1 Java运算符按功能分6种,具体如下 (1分) 算术运算符、关系运算符、逻辑运算符 (2分) 位运算符、赋值运算符、条件运算符 (2分) 11、 Java中结构化程序设计有哪三种基本流程,及分别对应java中那些语句? 3.2 结构化程序设计有顺序、分支、循环三种基本流程 (2分) java中的分支语句包括if语句、switch语句; (1分) 循环语句包括while语句、do-while语句、for语句; (1分) 其他如对象、变量定义语句、赋值语句、方法调用语句等都是顺序语句。 (1分) 12、 在一个循环中使用break和continue语句有什么不同的效果?3.2 在循环中使用break语句,将使循环终止,流程跳转到break语句所在的循环外面的第一个语句继续执行 (2.5分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 在循环中使用continue语句,将提前结束本次循环,流程跳转到continue语句所在循环的第一个语句继续执行 (2.5分) 13、 package语句与import语句分别作用是什么? 3.2 package语句作为java源程序的第一条语句,指明该源文件定义的类所在的包。 (2.5分) import语句作用是为了能使用java提供的类,可以使用import语句来引入所需要的类。 (2.5分) 14、 简述编程语言的几个发展阶段? 4.1 (1) 面向机器语言 (1分) (2) 面向过程语言 (1分) (3) 结构化程序设计阶段 (1分) (4) 面向对象编程 (2分) 15、 什么是类及类的实现包括什么? 4.2 类是组成java程序的基本要素 (1分) 类封装了一类对象的状态和方法 (1分) 类是用来定义对象的模板 (1分) 类的实现包括两部分:类声明和类体 (2分) 16、 什么是方法重载? 4.2 方法重载是指,一个类中可以有多个方法具有相同的名字和类型(2分) 但这些方法的参数必须不同(1分) 或者是参数个数不同,或者是参数类型不同(2分) 17、 什么是构造方法? 4.2 构造方法是一种特殊方法 (1分) 它的名字必须与它所在的类的名字完全相同 (2分) 并且不返回任何数据类型,即它是void型 (2分) 18、 什么是实例变量和类变量及他们的区别? 4.3 用修饰符static说明的变量是类变量,其他是实例变量 (2分) 不同对象的实例变量将分配不同的内存空间 (1分) 所有对象的类变量都分配给相同的一处内存,改变其中一个对象的类变量的值,会影响其他对象的这个类变量的值。 (2分) 19、 什么是实例方法和类方法及他们的区别? 4.3 用修饰符static说明的方法是类方法,其他是实例方法 (2分) 当一个类创建了一个对象后,这个对象就可以调用该类的方法(1分) 区别就在于类方法不仅可以有对象调用而且还可以直接由类名调用 而实例方法不能由类名调用。(2分) 20、 创建一个对象包括哪些过程? 4.3 创建一个对象分两个步骤 (1分) (1)对象的声明,格式是:类的名字 对象名 (2分) (2)为声明的对象分配内存,使用new运算符和类的构造方法为声明的对象分配内存,如果类中没有构造方法,系统会调用默认的构造方法 (2分) 21、 为什么说构造方法是一种特殊方法及由谁调用?4.3 构造方法的名字和类名相同,且没有任何返回值 (2.5分) 创建一个对象是执行构造方法,由系统自动调用 (2.5分) 22、 类及类成员的访问控制符有哪些,并说明私有权限和公有权限的使用方法? 4.4 控制符有4种:public protected private privateprotected(2.5分) 其中private权限的成员只能在本类中使用,public公有权限的成员不但能在本类中使用,还可在类外使用。(2.5分) 23、 简述什么是类的继承机制? 4.5 继承是一种由已有的类创建新类的机制 (1分) 利用继承可以创建一个共有属性的一般类,根据该一般类再创建具有特殊属性的新类 (1分) 新类继承一般类的状态和行为,并根据需要增加它自己的新的状态和行为 (1分) 由继承而得到的类称为子类 (1分) 被继承的类称为父类 (1分) 24、 简述如何会发生成员变量的隐藏和方法重写? 4.5 当子类中定义的成员变量和父类中的成员变量同名时,则父类中的成员变量不能被继承,此时称子类的成员变量隐藏了父类的成员变量。(2.5分) 当子类中定义了一个方法,并且这个方法的名字、返回类型、及参数个数和类型跟父类的某个方法完全相同时,父类方法被隐藏,即重写了父类的方法。 (2.5分) 25、 用final修饰符修饰的类和方法有什么特点? 用final修饰的类不能被继承,即不能有子类。 (2.5分) 用final修饰的方法不能被重写 (2.5分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 26、 用abstract修饰符修饰的类和方法有什么特点? 用abstract修饰的类不能创建对象,必须产生子类,有子类创建对象(2分) 用abstract修饰的方法只允许声明,而不允许实现。(2分) 如果一个类是一个abstract类的子类,它必须实现父类的abstract方法。 (1分) 27、 关键字super如何使用? 子类继承父类时可能会发生父类的成员变量被隐藏和父类中的成员方法被重写 (1分) 如果在子类中想使用被子类隐藏的父类的成员变量或方法就可以使用关键字super (2分) 用super可以调用父类的构造方法和操作被隐藏的成员变量和方法 (2分) 28、 java是否支持多继承及java中采取什么机制来代替多重继承? Java不支持多继承,即一个类只能有一个父类。 (2分) 单继承性使得java简单,易于管理程序 (1分) 为了克服单继承的缺点,java使用了接口,一个类可以实现多个接口(2分) 29、 java中如何定义和使用接口? 使用关键字interface来定义一个接口,接口的定义和类的定义很相似,分为接口的声明和接口体。(2分) 一个类通过关键字implements声明自己使用一个或多个接口,如果使用多个接口,则用逗号隔开接口。(2分) 如果一个类使用某个接口,那么这个类必须实现该接口的所有方法(1分) 30、 一个Java Applet的生命周期包括什么? 一个Java Applet的执行过程称为这个Java Applet的生命周期 (2分) 一个完整的Java Applet所包含5个方法init( ) 、start( ) (1分) stop( )、destroy( ) (1分) paint(Graphics g) (1分) 31. 处理选择(Choice)控件上的事件? 选择控件的选择情况发生变化会产生HemEvent事件 (1分) 处理该事件的接口是HemListener (1分) 接口中的方法是ItemStateChanged(HemEvent e) (1分) 事件源获得监视器的方法是addHemListener( ) (1分) 处理该事件时,如果想获得事件源可调用方法getHemSelectable( ) (1分) 32、如何处理滚动列表(List)上的事件? 滚动列表可产生两种事件:双击和单击某项 (1分) 当双击某项时,产生ActionEvent事件,获得事件监视器的方法是addActionListener( ),处理事件的接口是ActionListener (1分) 接口中的方法是ActionPerformed(ActionEvent e),获得该事件的事件源的方法是 getSource( ) (1分) 当单击某项时,产生HemEvent事件,获得事件监视器的方法是addHemListener( ),处理事件的接口是HemListener (1分) 接口中的方法是itemStateChanged(HemEvent e),获得该事件的事件源的方法是getHemSelectable (1分) 33、何设置组件的字体和颜色? (1)设置字体:用Font类创建一个字体对象,该对象表示一种字体 (1分) 通过组件对象名调用方法SetFont(Font f),即可设置组件的字体 (1分) (2)设置颜色:用Color类创建两个颜色对象,表示两种颜色,一种颜色表示组件的前景色,另一种表示背景色 (1分) 通过组件对象名调用方法SetBackground(Color C)可设置组件的背景色 (1分) 调用方法SetForeground(Color C)可设置组件的前景色 (1分) 34、何在窗口中增加菜单? 用MenuBar创建一个对象,表示一个菜单条,使用Fram中的方法SetMenuBar(MenuBar),可在窗口中增加一个菜单条 (1分) 用Menu创建若干个对象,每一个对象表示菜单条上的一个菜单项 (1分) 通过MenuBar的对象add(Menu)将一个菜单加到菜单条上 (1分) 用MenuItem创建若干对象,每一个对象表示一个具体的菜单项 (1分) 通过Menu对象调用方法add(MenuItem)可将一个菜单项加入到一个菜单中 (1分) 35、如何处理菜单上的事件? 单击菜单项可产生ActionEvent事件 (1分) 处理该事件的接口是Actionlistener (1分) 接口中的方法是actionPerformed(ActionEvent e) (1分) 事件源获得监视器的方法是addActionListener( ) (1分) ActionEvent获得事件源的方法是getSource( ) (1分) 36、如何增加菜单分割线?如何产生复选菜单项? 通过Menu类的对象调用方法addSeparator( ),可在当前菜单中增加一个分割线 (2分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... 用CheckboxMenuItem创建一个菜单项 (1分) 通过Menu类的对象调用方法add(CheckboxMenuItem)将菜单项加入到菜单中,即可创建一个复选菜单项 (2分) 37、如何绘制封闭的多边形? 使用Graphics中的drawpolygon(int xPoints[ ],int yPoints[ ],int nPoints)方法可绘制多边形 (2.5分) 要绘制封闭的多边形,xPoints和yPoints表示的第一点和最后一点必须相同 (2.5分) 38、什么是XOR绘图模式? 可调用方法SetXORMode( )将绘图模式设为XOR (2.5分) 使用XOR模式时,绘制的图形颜色为当前的绘图颜色与所绘图形经过的区域颜色作XOR运算后所得 (2.5分) 39、何处理MouseMotionListener接口事件? 鼠标移动事件有两种:拖动鼠标和移动鼠标 (1分) 产生的事件类型MouseEvent (1分) 获得监视器的方法是addMouseMotionListener( ) (1分) 事件接口中的方法为mouseDragged(MouseEvent e) (1分) 和mouseMoved(MouseEvent e) (1分) 40、何处理键盘事件? 当按下,释放或敲击键盘上一个键时,就会产生事件KeyEvent (1分) 事件的接口为KeyListener (1分) 事件获得监视器的方法addKeyListener( ) (1分) 事件的处理方法有三个,分别是keyPressed(KeyEvent e),keyTyped(KeyEvent e)和keyReleased(KeyEvent e) (2分) 41、用向量类的对象存储数据与用数组表示数据有什么区别? (1)数组元素可以是任何类型的数据,向量中的元素不能是基本数据类型的数据 (2.5分) (2)数组一旦用new运算符创建后,其大小不可以改变,向量对象的大小可根据元素的增加自动增加 (2.5分) 42、Java中多线程是如何调度的? 线程调度器负责线程的排队和处理器在线程间的分配 (2.5分) 线程在优先级基础上依据"先到先服务"的原则,即相同优先级的线程按启动的先后顺序执行, 高优先级线程先于低优先级运行 (2.5分) 43、在Applet中如何播放声音? 使用Applet中的一个静态方法newAudioClip(URL url,String name) (2分) 或Applet类的实例方法:getAudioClip(URL url,String name) (2分) 可得一个音频AudioClip的对象,通过该对象调用方法play( )可播放声音 (1分) 44、线程中的方法wait(),notify()和notifyAll()的作用是什么? (1)当一个线程使用的同步方法中用到某个变量,而此变量又需要其它线程修改后才能符合本线程的需要,则可以在同步方法中调用wait()方法,使本线程等待,并允许其它线程调用这个同步方法 (2分) (2)其它线程在使用这个同步方法不需要等待,当它使用完这个同步方法时,用notifyAll()通知所有由于使用这个同步方法而处于等待的线程结束,再次使用这个同步方法 (2分) (3)如果使第一个处于等待的线程结束等待,则调用方法notify() (1分) 45、如何用套接字建立两个程序间的通信? (1)用Socket类建立客户到服务器的套接字的对象:Socket(String host,int port) (2分) (2)用ServerSocket建立接受客户套接字的服务器套接字对象:ServerSocket(int port)客户端与服务器端的端口号相同 (2分) (3)客户端服务器对象调用方法accept()接受客户的套接字 创建客户端套接字对象,服务器端套接字对象和调用方法accept()时都可能产生IOException,所以需对例外进行处理 (1分) 46、Java中采用什么方法与数据库交互? 可以采用二种方法: (1分) (1)或者编写一个驱动程序接受JDBC调用,执行SQL对数据库的调用 (2分) (2)或者使用已存在的ODBC驱动程序,用JDBC-ODBC桥将JDBC与ODBC连接起来 (2分) 47、简述Java中打开与数据库连接的步骤? (1)装载数据库驱动程序类 (2.5分) (2)调用DriverManager的方法getConnection( ),并确定用于连接数据库的驱动程序,数据库文件名以及可选的用户ID和密码 (2.5分) 48、JDBC有哪几个主要任务? (1)建立同数据库的连接 (1分) (2)发送SQL语句 (2分) (3)处理查询结果 (2分) 49、创建一个File对象有哪几种构造方法? (1)包含路径名的字符串 (1分) (2)含有路径名的字符串和含文件名的字符串 (2分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389 (/club/5346389)欢迎❤加入...欢迎❤交流...止不住的惊喜等着你......... (3)一个代表路径的文件和一个含有文件名的字符串 (2分) 50、Java中的线程和多线程指的是什么? (1)称程序中单个序列化的流控制为线程 (2.5分) (2)多线程指的是在一个程序中可定义多个线程并同时运行它们,每个线程可以执行不同的任务 (2.5分) 51、线程有哪些状态?它们是如何转换的? 线程在它的生命周期中有四种状态:创建 (2分) 运行 (1分) 挂起 (1分) 结束 (1分) 52、什么是同步机制? (1)使共享对象将自己的成员方法定义为同步化方法 (1分) (2)通过调用同步化方法来执行单一线程 (2分) (3)其他线程不能同时调用一对象的同步化方法 (2分) 53、简述向服务器发送信息的步骤? (1)创建URL对象 (2)建立连接到URL对象的通道 (1分) (3)指定这个通道可输出 (1分) (4)指定通道所用的输出流 (1分) (5)向输出流写入数据 (1分) (6)关闭输出流 (1分) 54、比较多线程与多任务的异同? (1)多任务是针对操作系统而言的,表示操作系统可以同时执行多个程序 (2.5分) (2)多线程则是针对一个程序而言的,表示一个程序内部可以同时执行多个线程 (2.5分) 55、向窗口添加菜单有哪几个步骤? (1)生成菜单组件各个部分的对象 (2.5分) (2)进行菜单组装,即把菜单加到菜单条上,把菜单项加到菜单中 (2.5分) 56、包中封装的基本流类有哪几个? 共有四个 (1分) 包括基于Unicode字符的输入流Reader (1分) 输出流Writer (1分) 基于二进制字节的输入流InputStream (1分) 输出流OutPut Stream (1分) 57、创建线程有哪些方法? (1)通过继承线程类Thread创建线程类 (2.5分) (2)建立一个实现Runnable接口的类来运行线程 (2.5分) 58、简述MouseEvent类的主要方法. getX( ) (1分) getY( ) (1分) getModifiers( ) (1分) getClickCount( ) (1分) getSource( ) (1分) 59、对话框能独立存在吗?其默认布局是什么? 不能 (2.5分) 其默认布局是BorderLayout布局 (2.5分) 60、在Graphics类中,Java提供了哪几种文字输出方法? (1)字符串输出方法 drawString(String string ,int x,int y) (1分) (2)字符输出方法 drawChars(char chars[ ],int offset,int number,int x,int y) (2分) (3)字节输出方法 drawBytes(byte bytes[ ],int offset,int number,int x,int y) (2分) 自考乐园,自考学习交流、资料共享的好去处!自考乐园,自考人自己的家园.... 5346389
发布评论