全国自学考试Java语言程序设计一试题.docx
《全国自学考试Java语言程序设计一试题.docx》由会员分享,可在线阅读,更多相关《全国自学考试Java语言程序设计一试题.docx(12页珍藏版)》请在冰豆网上搜索。
全国自学考试Java语言程序设计一试题
做试题,没答案?
上自考365,网校名师为你详细解答!
全国2011年1月自学考试Java语言程序设计
(一)试题
课程代码:
04747
一、单项选择题(本大题共10小题,每小题1分,共10分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.在Java语言中,int类型数据的长度是()
A.1个字节B.2个字节
C.4个字节D.8个字节
2.在switch语句中,switch后面括号内的表达式的类型不能是()
A.byteB.long
C.charD.int
3.以下关于接口的叙述中,正确的是()
A.所有的接口都是公共接口,可被所有的类和接口使用
B.一个类通过使用关键字interface声明自己使用一个或多个接口
C.接口中所有的变量都默认为publicabstract属性
D.接口体中不提供方法的实现
4.以下代码段的输出结果是()
Strings="JavaWorld";System.out.print(s.indexOf("a",4));
A.-1B.O
C.1D.4
5.以下不属于AWT库中定义的类是()
A.ComponentB.Container
C.ImagesD.Graphics
6.鼠标单击列表中某个选项事件的相关接口是()
A.ListActionListenerB.ListSelectionListener
C.ActionListenerD.SelectionListener
7.Java语言规定,程序绘图区域的坐标原点位于整个区域的()
A.左上角B.右上角
C.左下角D.右下角
8.以下关于线程互斥和同步的叙述中,正确的是()
A.多线程互斥使用各自资源的程序段,在操作系统中称为临界段
B.临界段的作用是使某线程能够使用其它线程的资源
C.可以使用notify()方法通知等待线程结束等待
D.线程的互斥和同步可以很好地解决死锁问题
9.当用户关闭文件对话框时,有可能返回的整数常量是()
A.JFileChooser.CLOSE_OPTIONB.JFileChooser.APPROVE_OPTION
C.JFileChooser.SAVE_OPTIOND.JFileChooser.OPEN_OPTION
10.获取InetAddress对象的域名所用到的方法是()
A.getByName()B.getHostAddress()
C.getLocalHost()D.getHostName()
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
11.Java源文件的扩展名是_________。
12.表达式-4>>l的十进制值是_________。
13.在定义成员变量时,用关键字_________修饰的是类变量。
l4.布尔类型数组元素的默认初值是_________。
15.在Swing中,面板有两种,一种是JPanel,另一种是_________。
16.对话框的默认布局是_________。
17.Java语言的绘图模式有两种,它们是正常模式和_________。
18.当线程处于新建状态后,调用了start()方法,该线程就处于_________状态。
19.如果要按行输入输出文件,需采用_________输入输出方式。
20.Java程序与数据库连接的API被称为_________。
三、简答题(本大题共6小题,每小题3分,共18分)
21.请写一个if语句,判断整数n是否同时满足“被3除余2,被7除余1”的条件,满足时输出“OK”,否则输出“NO”。
22.请写出在面向对象系统中,类和对象的关系。
23.请写出JFrame、Frame以及Window这三个类的继承关系(按照从父类到子类顺序排列)。
24.请写出java.applet.AudioClip控制声音播放的三个方法。
25.请写出在使用FileFilter类设置筛选条件时,方法accept()以及getDescription()的作用。
26.请写出Java程序实现数据库更新可以使用的三种对象。
四、程序填空题(本大题共5小题,每空2分,共20分)
27.方法intnumberOfDigits(intn)的功能是计算十进制正整数n的位数。
intnumberOfDigits(intn){
intc=0:
do{n/=10;_________;
}while(_________);
returnc;
}
28.以下程序创建了一个窗口,窗口内设置一个按钮,单击该按钮,其标题会显示单击的次数。
importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;
publicclassBottonGUI{
publicstaticvoidmain(String[]args){
CountButtonmyButtonGUI=newCountButton();
myButtonGUI.setVisible(true);
}
}
classCountButtonextendsJFrameimplementsActionListener{
publicstaticfinalintWidth=250;
publicstaticfinalintHeight=200;
publicinti=0;
JButtonmyBtn=newJButton(String.valueOf(i));
CountButton(){
setSize(Width,Height);setTitle("计数按钮");
ContainerconPane=getContentPane();
conPane.setLayout(newFlowLayout());
myBtn.addActionListener(this);conPane._________;
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==myBtn)
myBtn._________(String.valueOf(++i));
}
}
29.以下小应用程序设置了一个文本区,用于显示鼠标单击的坐标。
importjava.applet.*;importjava.awt.*;importjavax.swing.*;importjava.awt.event.*;
classMyWindowextendsJFrameimplementsMouseListener{
JTextAreatext;JPanelpanel;intx,y;
MyWindow(Strings){_________;
Containercon=this.getContentPane();con.setLayout(newGridLayout(2,1));
this.setSize(200,300);
panel=newJPanel();con.add(panel);
text=newJTextArea(10,20);
con.add(text);addMouseListener(this);
this.setVisible(true);
}
publicvoidpaint(Graphicsg){text.append("当前鼠标单击的位置是:
"+x+","+y+"\n");
}
publicvoidmousePressed(MouseEvente){}
publicvoidmouseReleased(MouseEvente){}
publicvoidmouseEntered(MouseEvente){}
publicvoidmouseExited(MouseEvente){}
publicvoid_________(MouseEvente){x=e.getX();y=e.getY();repaint();}
}
publicclassMouseDemoextendsApplet{
publicvoidinit(){
MyWindowmyWndow=newMyWindow("鼠标演示程序");
}
}
30.以下小应用程序利用Graphics2D绘制一条直线。
importjava.applet.*;importjava.awt.*:
importjava.awt.geom.*;
publicclassDrawLineextendsApplet{
publicvoidpaint(Graphicsg){
Graphics2Dg2d=_________g;
Line2Dline=newLine2D.Double(30.0,30.0,180.0,30.0);
g2d._________;
}
}
31.方法readByURL()的功能是已知网址,创建URL对象,设置网络连接,获取网址上的内容并显示。
其中获取网址上的内容并显示的代码已被省略。
publicvoidreadByURL(StringurlName){
try{
URLurl=newURL(urlName);
URLConnectiontc=url._________;
Tc._________;
InputStreamReaderin=newInputStreamReade(tc.getInputStream());
BufferedReaderdis=newBufferedReader(in);
StringinLine;
......//这里的代码实现逐行输入网址上的内容并显示
dis.close();
}catch(MalformedURLExceptione){e.printStackTrace();}
catch(IOExceptione){e.printStackTrace();)
}
五、程序分析题(本大题共5小题,每小题4分,共20分)
32.阅读下列程序,请写出该程序的输出结果。
classB{
intb;
B(intx){b=x;System.out.println("b="+b);}
}
classAextendsB{
inta;
A(intx,inty){
super(x);a=y;System.out.println("b="+b+",a="+a);
}
}
publicclassa32{
publicstaticvoidmain(String[]args){
Aobj=newA(1,2);
}
}
33.阅读下列程序,请写出该程序的输出结果。
publicclassTest33{
publicstaticvoidmain(String[]args){
int[][]a={{2,3},{1,6}};int[][]b={{4,2},{3,5}};
int[][]c=newint[2][2];inti,j;
for(i=0;ifor(j=0;jc[i][i]=a[i][i]+b[i][i];
System.out.print(c[i][i]+"");
if(j==a[i].length-1)System.out.println();
}
}
}
34.阅读下列程序,请写出该程序的功能。
importjava.applet.*;importjavax.swing.*;
importjava.awt.event.*;importjava.util.*;
publicclassStrCextendsApplet{
staticJTextFieldtextl,text2;Ss=newS();
publicvoidinit(){
textl=newJTextField(20);text2=newJTextField(20);setSize(400,l00);
add(textl);add(text2);textl.addActionListener(s);
}
}
classSimplementsActionListener(
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==StrC.textl){
Strings=StrC.textl.getText();Stringss="":
StringTokenizerpas=newStringTokenizer(s);
while(pas.hasMoreTokens()){ss+=pas.nextToken();)
StrC.text2.setText(ss);
}
}
}
35.阅读下列程序,请写出该程序的功能。
importjavax.swing.*;importjava.awt.*;importjava.awt.event.*;
publicclassComboBoxApp{
publicstaticvoidmain(String[]args){
ComboBoxDemomyComboBoxGUI=newComboBoxDemo();
}
}
classComboBoxDemoextendsJFrameimplementsActionListener{
StringproList[]={"Java","C++,"Fortran");
JTextFieldtext;JComboBoxcomboBox;
publicComboBoxDemo(){
setSize(200,100);
ContainerconPane=getContentPane();
conPane.setBackground(Color.BLUE);
conPane.setLayout(newFlowLayout());
comboBox=newJComboBox(proList);
comboBox.addActionListener(this);
comboBox.setEditable(true);
conPane.add(comboBox);text=newJTextField(10);
JScrollPanejsp=newJScrollPane(text);
conPane.add(jsp);this.setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==comboBox)
text.setText(String.valueOf
(comboBox.getSelectedltem().toString().1ength()));
}
}
36.阅读下列程序,请写出该程序的功能。
publicclassTwoThreadextendsThread{
privateThreadcreatorThread;
publicTwoThread(){creatorThread=Thread.currentThread();}
publicvoidrun(){
for(inti=0;i<5;i++){printMsg();}
}
publicvoidprintMsg(){
Threadt=Thread.currentThread();
if(t==creatorThread){
System.out.println("Creatorthread");
}elseif(t==this){
System.out.println("Newthread");
}
}
publicstaticvoidmain(String[]args){
TwoThreadtt=newTwoThread();
tt.start();
for(inti=O;i<10;i++){
tt.printMsg();
}
}
}
六、程序设计题(本大题共2小题,每小题6分,共12分)
37.请编写方法doubleaverageOfArray(double[]a),返回非空数组中正数的平均值(数组中可能有非正数元素)。
38.一个小应用程序,界面如题38图所示,其功能为比较两个文本框中输入的字符串是否相同,如果相同,那么在下方显示“两个字符串相同”,否则,显示“两个字符串不同”。
按下“重置”按钮后清空文本框里面的内容。
以下是程序的大部分,请编写其中的监视器方法。
importjava.applet.*;importjavax.swing.*;
importjava.awt.event.*;
publicclassa38extendsAppletimplementsActionListener{
JTextFieldtextl,text2;
JButtonbutton1,button2;JLabellabel1;
publicvoidinit(){
text1=newJTextField(12);text2=newJTextField(12);
buttonl=newJButton("比较");button2=newJButton("重置"):
label1=newJLabel("此处显示比较结果"):
add(text1);add(text2);add(button1);add(button2);add(1abel1);
text1.requestFocus();//将光标自动定位到第一个文本框
button1.addActionListener(this);button2.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente)
{
//请在以下位置编写代码
题38图
}
}