1装订线华南农业大学期末考试试卷(A卷)2012-2013学年第1学期考试科目:Java程序设计考试类型:(闭卷)考试考试时间:120分钟学号姓名年级专业题号一二三总分得分评阅人考试说明:所有答案必须填写在答卷上,考试结束时答卷和试卷都上交。一、单项选择题(本大题共25小题,每小题2分,共50分)1.下列关于Java和C程序的说法中正确的是________:A.两者都是面向对象的高级语言B.一个.java源程序编译后将产生一个.class的字节码文件C.C是从Java演变而来的D.Java是解释型语言,所以执行速度比C慢2.下列符合Java程序元素命名习惯的是________。A.doubleRadiusB.intlengthofarrayC.classshapeD.finaldoublePI3.对于构造方法,下列叙述不正确的是________。A.构造方法是类的一种特殊方法,它的方法名必须与类名相同B.构造方法没有返回值类型C.子类不但可以继承父类的无参构造方法,也可以继承父类的有参构造方法。D.子类在创建构造方法是必须把调用父类构造方法放在第一条语句4.下列关于接口的说明正确的是________。A.接口和抽象类是同一回事B.一个类不可以实现多个接口C.接口间不能有继承关系D.实现一个接口必须实现接口的所有方法5.Java为移动设备提供的平台是________。A.J2MEB.J2SEC.J2EED.JDK5.06.下列语句中,属于多分支语句的是________。A.switch是分支语句B.不带标号的continue可实现跳出所在的那层循环得分2C.while语句适合于有固定循环次数的场合D.dowhile和while没有区别7.在Java中,存放字符串常量的对象属于________类对象。A.CharacterB.StringC.StringBufferD.Char8.下列关于继承的哪项叙述是正确________。A.在java中允许多继承B.在java中一个类只能实现一个接口C.在java中一个类不能同时继承一个类和实现一个接口D.java的单一继承使代码更可靠9.下面一段代码的输出结果是________。classTest{publicstaticvoidmain(String[]args){int[]a={36,31,0,11,8,13,24,49,33,16};swap(a,4,8);System.out.println(a[4]);}publicvoidswap(int[]a,inti,intj){intt=a[i];a[i]=a[j];a[j]=t;}}A.8B.33C.11D.4910.下列运算符优先级最高的是________。A.*B.+C.[]D.=11.能从循环语句的循环体中跳出的语句是________。A.for语句B.break语句C.while语句D.continue语句12.若类中某方法进行重载,能够区分这重载方法的手段是________。A.它们的返回值类型的不同B.它们的名称的不同C.它们的参数表的不同D.它们的修饰符不同13.下列关于for循环和while循环的说法中哪个是正确的________。A.while循环能实现的操作,for循环也都能实现B.while循环判断条件一般是程序结果,for循环判断条件一般是非程序结果C.两种循环任何时候都可替换D.两种循环结构中都必须有循环体,循环体不能为空14.下列关于main()方法说法正确的是________。A.public修饰类中可以没有main()方法;B.main()方法中主要完成所有对象的创建;C.public修饰的类有多个时,main()方法就有多个;D.main()方法头的定义可以根据情况随意修改。15.下列不满足自动类型转换的赋值语句是________。A.doublea=0;B.floatf=26.3;C.intk=279;D.doublem=24.21;16.在一个应用程序中有如下定义:inta[]={1,2,3,4,5,6,7,8,9,10};为了打印输出数组a的最后一个元素,下面正确的代码是________。A.System.out.println(a[10]);B.System.out.println(a[9]);C.System.out.println(a[a.length]);D.System.out.println(a(9));3装订线17.定义二维数组a,不正确的是________。A.int[][]a;B.inta[][];C.int[]a[];D.int[3][3]a;18.下列关于抽象类的说法哪个正确________。A.绝对不能用抽象类去创建对象;B.某个抽象类的父类是抽象类,则这个子类必须重载父类的所有抽象方法;C.抽象类中不可以有常量;D.可以用private修饰抽象类。19.下列关于方法覆盖不正确的是________。A.方法覆盖和方法重载都是定义相同方法名的方法,本质上是一致的;B.方法覆盖只能发生在子类对父类的继承中;C.方法覆盖充分体现了Java语言的多态性;D.方法返回值类型不同时也能实现方法覆盖。20.关于Java的包叙述不正确的是________。A.不同包中的类不允许有相同的名称B.同一包中的类不允许有相同的名称C.包是用于组织类与接口的机制D.可以通过import语句将包中的类加载到程序中21.Object是Java中所有类的祖先类,其中用来比较两个对象内容是否相等的方法是_____。A.toString;B.clone;C.compareTo;D.equals;22.下列程序段的输出结果是________。Intm=4,n=9;System.out.println(“m+n=”+m+n);A.m+n=13;B.m+n=mn;C.m+n=m+n;D.m+n=49;23.在使用interface声明一个接口时,只可以使用________修饰符修饰该接口。A.privateB.protectedC.privateprotectedD.public24.下列不是实现多态的必须条件的是________。A.继承B.方法重载C.方法覆盖D.父类引用变量引用任一子类对象25.下列叙述中,正确的是________。A.Java语言的标识符是区分大小写的B.源文件名与public类名可以不相同C.源文件名其扩展名为.jarD.源文件中public类的数目不限二、程序阅读题(本大题共4小题,每小题5分,共20分)得分1.5CM4说明:阅读下面的程序,并写出程序的运行结果。1.publicclassStringTest{publicstaticvoidmain(String[]args){for(inti=0;i3;i++){for(intj=0;j5;j++)if(j=2-i&&j=2+i)System.out.print(“*”);elseSystem.out.print(“”);System.out.println();}}}2.publicclassStat{publicstaticvoidmain(Stringargs[]){intn=0;Strings=”The30thOlympicgamesisheldinLondonthissummer.”;for(inti=0;is.length;i++)if(s.charAt(i)==’m’)n++;System.out.println(n);}}3.classPerson{publicPerson(){System.out.println(“Person()”);}}classEmployeeextendsPerson{publicEmployee(){this(“callEmployee(String)”);System.out.println(“Employee()”);}publicEmployee(Strings){System.out.println(s);}}publicclassFacultyextendsEmployee{publicFaculty(){System.out.println(Faculty());}publicstaticvoidmain(String[]args){5装订线Facultyfa=newFaculty();}}4.publicabstractclassAnimal{publicabstractvoidsound();}publicclassDogextendsAnimal{publicvoidsound(){System.out.println(“Woofwoof”);}publicclassCatextendsAnimal{publicvoidsound(){System.out.println(“Miiaooww”);}publicclassPetCatextendsCat{publicvoidsound(){System.out.println(“Miaomiao”);}classTest{publicstaticvoidmain(String[]args){Animal[]a={newDog(),newCat();newPetCat()}for(inti=0;ia.length;i++){a[i].sound()};}}三、编写程序题(本大题共3小题,共30分)1.编写程序.求出2~200间所有素数之和。(9分)2.编写程序.给定一个4×3三位整数矩阵(即每个元素为int型十进制三位整数,找出所有12个元素中,三位数字之和最大的那个整数及其所在的行和列。(10分)3.定义一个类来描述公司雇员,类命名为Employee,具体要求如下:。(11分)(1)数据域:id表示工号,类型为int;name表示姓名,类型为String;salary表示工资,类型为double。(2)默认构造一个Emplyee对象时,id/name/salary默认值分别为0/””/0.0;也可以在构造一个Employee对象时通过参数指定数据域初始值。(3)定义各数据域对应的访问器和修改器。(4)对象描述器,设Emplyee对象的输出形式为:工号:XXX,姓名:XXX,工资XXX。(5)设计一个比较器compareTo(要求实现Comparable接口),对象的比较规则是按工资大小进行比较。得分1.5CM