第1页共8页—南昌大学考试试卷—【适用时间:2013~2014学年第二学期试卷类型:[A]卷】教师填写栏课程编号:Z6104X007试卷编号:课程名称:Java语言程序设计开课学院:信工学院考试形式:闭卷适用班级:信管11级考试时间:120分钟试卷说明:1、本试卷共8页。2.考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。题号一二三四五六七八九十总分累分人签名题分2010203515100得分考生填写栏考生姓名:考生学号:所属学院:所属班级:所属专业:考试日期:考生须知1、请考生务必查看试卷中是否有缺页或破损。如有立即举手报告以便更换。2、严禁代考,违者双方均开除学籍;严禁舞弊,违者取消学位授予资格;严禁带手机等有储存或传递信息功能的电子设备等入场(包括开卷考试),违者按舞弊处理;不得自备草稿纸。考生承诺本人知道考试违纪、作弊的严重性,将严格遵守考场纪律,如若违反则愿意接受学校按有关规定处分!考生签名:第2页共8页一、选择题:(每空1分,共20分)得分评阅人选择题答题表1234567891011121314151617181920说明:请把选择题的答案全部填到上面的答题表中.1.下列关于Java语言的数组描述中,错误的是A.数组的长度通常用length表示B.数组的下标从0开始C.数组元素是按顺序存放在内存的D.数组在赋初值和赋值时都不判界2.下列关于运行字节码文件的命令行参数的描述中,正确的是A.第一个命令行参数被存放在args[0]中B.第一个命令行参数被存放在args[1]中C.命令行的命令字被存放在args[0]中D.数组args[]的大小与命令行参数的个数无关。3.下列关于Java语言特性的描述中,错误的是.A.支持多线程操作B.JAVA程序与平台无关C.JAVA程序可以直接访问Internet上的对象D.支持单继承和多继承4.下列关于数组的定义形式,正确的是A.int[]a;a=newint;B.charb[];b=newchar[80];C.int[]c=newchar[10];D.int[]d[3]=newint[2][];5.下列关于继承性的描述中,错误的是A.一个类可以同时生成多个子类B.子类继承了父类的所有成员C.Java语言支持单继承和多重继承D.Java语言通过接口可使子类使用多个父类的成员6.下列关于多态性的描述中,错误的是A.java语言允许运算符重载B.java语言允许方法重载C.java语言允许变量覆盖D.多态性提高了程序的抽象性和简洁性7.在成员变量的修饰符中,规定访问权限包含类自身,同包的其他类和其它包中的子类的修饰符是:A.privateB.publicC.默认D.protected8.下列关于静态方法的描述中,错误的是第3页共8页A.在类体内说明静态方法用关键字staticB.静态方法可能处理静态变量或调用静态方法C.静态方法不占用对象的内存空间,非静态方法占用对象的内存空间D.静态方法只能类名调用9.下列关于抽象类的描述中,错误的是A.抽象类是用修饰符abstract说明的B.抽象类是不可以定义对象的C.抽象类是不可以有构造方法的D.抽象类通常要有它的子类10.下列关于接口的描述中,错误的是A.接口实际上是由常量和抽象方法构成的特殊类B.一个类只允许继承一个接口C.定义接口使用的关键字是interfaceD.在继承接口的类中,通常要给出接口袋定义的抽象方法的具体实现11.下列关于向Applet程序传递参数的描述中,错误的是A.Applet程序可能通过命令行获取外部参数B.Applet程序可以通过HTML文件获取外部参数C.使用Applet标记中的PARAM标记来实现C.Applet程序中使用getParameter()方法读取参数值12.下列关于实现图形用户界面的描述中,错误的是A.放在容器的组件首先要定义,接着要初始化B.放在容器中的多个组件是要进行布局的,默认的布局策略是FlowLayoutC.容器中的所有组件都是事件组件,都可产生事件对象D.事件处理是由鉴听者定义的方法来实现的13.一个Applet的默认布局管理器是FlowLayout.下面哪个能改变成其他布局管理器A.setLayoutManager(newGridLayout());B.setLayout(newGridLayout(2,2));C.setGridLayout(2,2);D.setBorderLayout();14.下列关于用户创建自己的异常的描述中,错误的是A.创建自己的异常应先创建一个异常类B.为实现抛出异常,须在可能抛出异常的方法中书写throw语句C.捕捉异常的方法是使用try-catch-finally语句格式D.使用异常处理不会使整个系统更加安全和稳定15.下列关于try-catch-finally语句的描述中,错误的是A.try语句后面的程序段将给出处理异常的语句B.catch()方法跟在try语句后面,它可以是一个或多个C.catch()方法有一个参数,该参数是某种异常类的对象D.finally语句后面的程序段总是被执行的,该语句起到提供统一接口的作用16.下面有关线程,说法正确的是________A.java语言不支持多线程编程B.java语言的线程编程必须继承自Thead类。C.java的线程编程,必须实现Runnabe接口。D.java语言不支持线程同步。17.可用于获得文件或目录的路径名是A.FileB.RandomAccessFile第4页共8页C.FileInputStreamD.BufferedReader18.下面哪个方法不是publicintadd(inta)的重载方法_________A.publicintadd(longa)B.publicvoidadd(inta)C.publicvoidadd(longa)D.publicintadd(floata)19.为了使System.out.println()输出对象引用时得到有意义的信息,我们应覆盖Object类的哪个方法______A.equalsB.toStringC.hashodeD.notify20.想要一个类不能被任何类继承的话,需要使用哪个关键字来修饰_______A.abstractB.staticC.newD.final二、判断题(每小题1分,共10分)判断题答题表12345678910说明:请把选择题的答案全部填到上面的答题表,以的打√错的打╳1.组成javaApplication的若干类中,有且仅有一个主类,只有主类中含有主方法main();2.如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名。3.对象可作方法的参数,对象数组不能作方法的参数4.捕获异常时try语句后面可跟多个catch()方法用来处理try块内生成的异常事件。5.调用this或super的构造方法的语句必须放在第一条语句6.实现接口的类不能是抽象类7.一个类可以实现多个接口.接口可以实现“多重继承”。8.文本区和文本框都可以引发两种事件:文本改变事件和动作事件9.域的隐藏是指当派生类中定义一个父类完全相同的变量,父亲的那个变量将不复存在。10.最终类是指该类可以被继承,但方法不可被覆盖。三、简答题(每小题5分,共20分)1.什么是方法的覆盖?方法的覆盖与域的隐藏有何不同?得分评阅人得分评阅人第5页共8页2.什么是接口?为什么要定义接口?接口与类有何异同?3.构造方法是否可以被重载?试举例。4.Java中对变量和成员方法的访问控制主要有哪四种?有何区别?四、程序分析题(每小题5分,共35分)程序分析题答题表1234567说明:请把程序分析题的答案选项全部填到上面的答题表中1.编译并运行下面的程序,将会出现的结果是:publicclassQ{publicstaticvoidmain(Stringargv[]){intanar[]=newint[5];System.out.println(anar[0]);}得分评阅人第6页共8页}1)Error:anarisreferencedbeforeitisinitialized2)null3)04)52.编译并运行下面的程序,将会出现的结果是:abstractclassMineBase{abstractvoidamethod();staticinti;}publicclassMineextendsMineBase{publicstaticvoidmain(Stringargv[]){int[]ar=newint[5];for(i=0;iar.length;i++)System.out.print(ar[i]);}}1)000002)Error:arisusedbeforeitisinitialized3)Error:Minemustbedeclaredabstract4)IndexOutOfBoundesError3.在下面的程序中的A、B、C的某个填上合适的代码,使得程序能调用基类的构造函数,并输入字符串baseconstructor;classBase{Base(inti){System.out.println(baseconstructor);}Base(){}}publicclassSupextendsBase{publicstaticvoidmain(Stringargv[]){Sups=newSup();A}Sup(){B}publicvoidderived(){C}}1)A处填上Base(10);2)A处填上super(10);3)B处填上super(10);4)C处填上super(10)4.Youwanttofindoutthevalueofthelastelementofanarray.Youwritethefollowingcode.第7页共8页Whatwillhappenwhenyoucompileandrunit.?publicclassMyAr{publicstaticvoidmain(Stringargv[]){int[]i=newint[5];System.out.println(i[5]);}}1)Anerroratcompiletime2)Anerroratruntime3)Thevalue0willbeoutput4)Thestringnullwillbeoutput5.编译并运行下面的程序,将会出现的结果是:abstractclassBase{abstractpublicvoidmyfunc();publicvoidanother(){System.out.println(Anothermethod);}}publicclassAbsextendsBase{publicstaticvoidmain(Stringargv[]){Absa=newAbs();a.amethod();}publicvoidmyfunc(){System.out.println(MyFunc);}publicvoidamethod(){myfunc();}}1)Thecodewillcompileandrun,printingoutthewordsMyFunc2)ThecompilerwillcomplainthattheBaseclasshasnonabstractmethods3)ThecodewillcompilebutcomplainatruntimethattheBaseclasshasnonabstractmethods4)Thecompilerwillcomplainthatthemethodmyfuncinthebaseclasshasnobody,nobodyatalltoloooveit6.编译并运行下面的程序,将会出现的结果是:classBase{publicfinalvoidamethod(){System.out.println(amethod);}}publicclassFinextendsBase{publi