全国2008年10月自学考试Java语言程序设计(一)试题课程代码:04747一、单项选择题(本大题共10小题,每小题1分,共10分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.下述字符组合不能作为Java程序标识符的是()A.Aa12B.大xC.y小D.5x2.以下程序代码的输出的结果是()intx=53;System.out.println(1.0+x/2);A.27.0B.27.5C.1.026D.1.026.53.参照以下Java代码,以下四个叙述中最确切的是()classA{intx;staticinty;voidfac(Strings){Syatem.out.println("字符串:"+s);}}A.x、y和s都是成员变量B.x是实例变量、y是类变量、s是局部变量C.x和y是实例变量、s是参数D.x、y和s都是实例变量4.需要分析字符串,并将字符串分解成可被独立使用的单词,可使用java.util包中的类是()A.StringB.StringBufferC.StringTokenizerD.stringTokenizer5.要为程序的子窗口设定一个由字符串s指定的名字,可以采用的代码是()A.JFrame(s)B.window(s)C.newJFrame(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._________布局使容器的多个组件拥有同一个显示空间,某一时刻只能显示一个组件。16.Java语言为处理鼠标事件提供两个接口:_________接口和MouseMotionListener接口。17.某个绘图方法设置成“异或模式”绘图,并用黄色作为异或模式设定的绘图颜色。如果当时背景色为红色,并用红色绘制线段,则线段的实际颜色是_________。18.程序员用Java语言编写多线程应用程序,程序员能控制的关键性工作有两个方面:一是编写线程的_________方法;二是建立线程实例。19.BufferedWriter类是提供缓冲式输出的类。程序需要先创建_________对象,再利用这个对象创建BufferedWriter对象。20.在Java语言中,客户端使用的套接字类是_________。三、简答题(本大题共6小题,每小题3分,共18分)21.请写出表示条件“x=2与y=3有且只有一个成立”的Java表达式”。22.如果类Student是类Person的子类,类Undergraduate是类Student的子类,请指出以下代码行中哪些是不合法的。Personp1=newStudent();Personp2=newUndergraduate();Students1=newPerson();Students2=newUndergraduate();Undergraduateug1=newPerson();Undergraduateug2=newStudent();Objectob=newStudent();23.请写出程序处理文本框输入结束事件(回车)添加监视器的方法,以及监视器类必须实现的接口方法。24.请写出一条语句,能够绘制一条从点(20,30)开始,长为100像素的水平线段。设调用的对象是类型为Graphics的g。25.某Java程序要使用文件输入输出流,请写出该程序所需要的import语句。26.JDBC是Java程序与数据库连接的API,请写出JDBC能做的三件事情。四、程序填空题(本大题共5小题,每空2分,共20分)27.方法intmaxDigit(intn)的功能是找出十进制整数n各位中最大的一位数字。例如,n=23765,该方法的返回值是7。staticintmaxDigit(intn){intc=0,d;while(n>0){d=_______;if(d>c)c=d;n/=10;}________;}28.某程序的界面包含一个文本区text1、一个文本框text2和一个按钮button。实现在文本区中输入整数序列后,点击按钮,程序响应按钮事件,累计文本区输入的整数序列,并将总和输出在文本框中。这里给出的是其中相应按钮事件的方法。publicvoidactionPerformed(ActionEvente){intsum;if(e.getSource()==button){Strings=text1.________;//获取text1中的信息StringTokenizerfenxi=newStringTokenizer(s,",,,\n");intn=fenxi.countTokens();doublea[]=newdouble[n];for(inti=0;i<n;i++){Stringtemp=fenxi.nextToken();a[i]=Double.valueOf(temp).doubleValue();}sum=0;for(inti=0;i<n;i++){__________;}text2.setText(""+sum);//刷新显示。}}29.以下是生成菜单项对象,以及菜单项选择事件处理方法的部分代码。要求当菜单项singingItem被选中时,在文本框text中输出“唱歌菜单项被选中!”的字样。……singingItem=new________("唱歌");//生成菜单项对象……publicvoidactionPerformed(ActionEvente){if(e.getSource()==singingItem)text.setText(e.________()+"菜单项被选中!");}30.某小应用程序实现幻灯片放映。小应用程序的init()方法将幻灯片读入数组中存储和注册鼠标监视器。程序运行时,单击鼠标,就顺序变换放映幻灯片的序号。这里给出的是其中的paint()方法和mousePressed()方法。finalintnumber=30;//假定幻灯片有30张intcount=0;Image[]pic=newImage[number];publicvoidpaint(______gc){if((pic[count])!=null)gc.drawImage(pic[count],10,10,pic[count].getWidth(this),pic[count].getHeight(this),this);}publicvoidmousePressed(MouseEvente){count=(count+1)%number;//循环逐张显示__________;}31.以下定义的类shareDataManager用于管理多个线程共享数据data。一些线程要减少data,另一些线程要增加data。由于data不可以是负值,修改data的方法对这些线程来说不仅要互斥,还要同步。类提供一个方法modiData()供修改data的线程调用,该方法在data修改结束后,应通知其它等待进入这个方法的线程。classShareDataManager{intdata=0;________voidmodiData(intdelta){if(delta>=0){data+=delta;}else{while(data<delta){try{System.out.println("发生等待!");wait();}catch(InterruptedExceptione){}}data-=delta;}_________;}ShareDataManager(intititData){data=initData;}}五、程序分析题(本大题共5小题,每小题4分,共20分)32.阅读下列程序,请写出该程序的输出结果。importjava.applet.*;importjava.awt.*;classPoint{intx,y;Point(intxx,intyy){x=xx;y=yy;}Point(Pointp){x=p.x;y=p.y;}voidm(intdx,intdy){x+=dx;y+=dy;}}classCircleextendsPoint{intr;Circle(Pointp,intrr){super(p);r=rr;}floatc(){return3.14f*2.0f*r;}floata(){return3.14f*r*r;}}publicclasssampleextendsApplet{Circleyuan;Pointd;publicvoidinit(){d=newPoint(2,5);yuan=newCircle(d,10);}publicvoidpaint(Graphicsg){g.drawString("yuanCircle"+(int)(yuan.c()*100.0)/100.0,5,20);g.drawString("yuanArea"+(int)(yuan.a()*100.0)/100.0,5,40);}}33.阅读下列程序,请写出该程序的功能。importjava.util.*;publicclassClass1{publicstaticvoidmain(Srtingargs[]){Datedate1=newDate();System.out.println(datel);Stringt=datel.toString();intendPos=t.indexOf(`C');t=t.substring(11,endPos);System.outprintln(t);}}34.阅读下列程序,请写出该程序的功能。importjava.applet.*;importjavax.swing.*;importjava.awt.event.*;publicclassClasslextendsAppletimplementsActionListen