苏州大学Java程序设计课程试卷含答案(A)(共7页).doc
精选优质文档-倾情为你奉上苏州大学Java程序设计课程试卷 (A)卷 参考答案 共7页一、选择题(2分*25= 50分)1main方法是Java Application程序执行的入口点,关于main方法, 以下哪项是合法的( B )? A、public static void main( ) B、public static void main( String args ) C、public static int main(String arg ) D、public void main(String arg )2Java Application源程序的主类是指包含有( A )方法的类。 A、main方法 B、toString方法 C、init方法 D、actionPerfromed方法3在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上( C )语句。 A、import java.awt.* ; B、import java.applet.Applet ; C、import java.io.* ; D、import java.awt.Graphics ;4对于构造函数,下列叙述错误的是( B )。 A、构造函数是类的一种特殊函数,它的方法名必须与类名相同。 B、构造函数的返回类型只能是void型。 C、构造函数的主要作用是完成对类的对象的初始化工作。 D、一般在创建新对象时,系统会自动调用构造函数。5下面的是关于类及其修饰符的一些描述,错误的是:( B )。 A、abstract类只能用来派生子类,不能用来创建abstract类的对象。 B、final类不但可以用来派生子类,也可以用来创建final类的对象。 C、abstract不能与final同时修饰一个类。 D、abstract方法必须在abstract类中声明,但abstract类定义中可以没有abstract方法。6在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序特性称为( C )。 A、隐藏 B、覆盖 C、重载 D、Java不支持此特性7设有下面两个类的定义: class Person class Student extends Person long id; / 身份证号 int score; / 入学总分 String name; / 姓名 int getScore() return score; 问:类Person和类Student的关系是( B )。 A、包含关系 B、继承关系 C、关联关系 D、无关系,上述类定义有语法错误8 设有下面的两个类定义: class AA void Show() System.out.println("我喜欢Java!"); class BB extends AA void Show() System.out.println("我喜欢C+!"); 则顺序执行如下语句后输出结果为:( A ) AA a; BB b; a.Show(); b.Show(); A、我喜欢Java! B、我喜欢C+! 我喜欢C+! 我喜欢Java! C、我喜欢Java! D、我喜欢C+! 我喜欢Java! 我喜欢C+!9设有下面的一个类定义: class AA static void Show( ) System.out.println("我喜欢Java!"); class BB void Show( ) System.out.println("我喜欢C+!"); 若已经使用AA类创建对象a和BB类创建对象b,则下面哪一个方法调用是正确的:( C ) A、a.Show( ) B、AA.Show( ); b.Show( ) BB.Show( ); C、AA.Show( ); D、a.Show( ); b.Show( ); BB.Show( );10对于构造函数,下列叙述错误的是( C )。 A、构造函数也允许重载。 B、子类无条件地继承父类的无参构造函数。 C、子类不允许调用父类的构造函数。 D、在同一个类中定义的重载构造函数可以相互调用。11在使用interface声明一个接口时,只可以使用( D )修饰符修饰该接口。 A、private B、protected C、private protected D、public12对于子类的构造函数说明,下列叙述中不正确的是( D )。 A、子类无条件地继承父类的无参构造函数。 B、子类可以在自己的构造函数中使用super关键字来调用父类的含参数构造函数,但这个调用语句必须是子类构造函数的第一个可执行语句。 C、在创建子类的对象时,将先执行继承自父类的无参构造函数,然后再执行自己的构造函数。 D、子类不但可以继承父类的无参构造函数,也可以继承父类的有参构造函数。13. Java语言是( D )。A.面向问题的解释型高级编程语言 B.面向机器的低级编程语言C.面向过程的编译型高级编程语言 D.面向对象的解释型高级编程语言 14. 既能作为类的修饰符, 也能作为类成员的修饰符的是( A)。A) public B) extends C) Float D) static15. 下列选项中,用于定义接口的关键字是( C)。A)import B) implements C) interface D) protected16.下列类头定义中,错误的是(B )。A) class x . B) public x extends y . C) public class x extends y . D) class x extends y implements y1 . 17.下列选项中,用于在定义类头时声明父类名的关键字是(C )。A)return B) interface C) extends D) class18. 定义类头时,不可能用到的关键字是( A)。A) private B)class C)extends D)implements19. 若一个类中对某个方法进行了重载,能够区分这些重载方法的手段是 (C )。A) 它们的返回值类型的不同 B) 它们的名称的不同C) 它们的参数表的不同 D) 它们的修饰符不同20.下列关于继承的哪项叙述是正确的? DA)在java中允许多重继承 B)在java中一个类只能实现一个接口 C)在java中一个类不能同时继承一个类和实现一个接口 D)java的单一继承使代码更可靠 21.下列哪个修饰符可以使在一个类中定义的成员变量只能被同一包中的类访问? BA)private B)无修饰符 C)public D)protected 22. 给出下列代码,如何使成员变量m 被方法fun()直接访问? Cclass Test private int m; public static void fun() . A)将private int m 改为protected int m B)将private int m 改为 public int m C)将private int m 改为 static int m D)将private int m 改为 int m 23. 下列关于内部类的说法不正确的是 CA)内部类的类名只能在定义它的类或程序段中或在表达式内部匿名使用 B)内部类可以使用它所在类的静态成员变量和实例成员变量 C)内部类不可以用abstract修饰符定义为抽象类 D)内部类可作为其他类的成员,而且可访问它所在类的成员 24. 下列关于Frame类的说法不正确的是 CA)Frame是Window类的直接子类 B)Frame对象显示的效果是一个窗口 C)Frame被默认初始化为可见 D)Frame的默认布局管理器为BorderLayout 25、下面哪一个是非法的标识符? AA)2variableB)Variable2C)_whatD) _3_二、判断题(2分*5=10分)(T) 1、Java虚拟机是实现跨平台的基础。(F) 2、Java支持多继承。(T) 3、实现一个接口,则在类中一定要实现接口中的所有方法。(F) 4、一个Java类可以有多个父类,这称作多继承。(T) 5、只要类中显式地定义一个构造方法,那么Java默认的构造方法不再存在。 三、程序题 (5分*4=20分)1写出以下程序的运行结果。class StaticTest static int x=1;int y;StaticTest()y+; x=2public static void main(String args ) st.y=1 StaticTest st=new StaticTest(); st.y=1 System.out.println("x=" + x); System.out.println("st.y=" + st.y); st=new StaticTest(); System.out.println("st.y=" + st.y); static x+;2请写出如下程序的功能 import java.io.*;public class Class1 public static void main(String args ) int i , Max , Min ; int a = 12,67,8,98,23,56,124,55,99,100 ; Max = Min = a0; for ( i = 1 ; i < a.length; i + ) if ( ai<Min ) Min = ai; if ( ai>Max ) Max = ai; System.out.println( Max+" "+Min ); System.out.println( ); 答:在数组中查找并输出最大值和最小值。3请写出如下程序的功能import java.awt.*; public class abc public static void main(String args) new FrameOut(); class FrameOut extends Frame / Frame为系统定义的窗框类 Button btn; FrameOut( ) super("按钮"); btn = new Button("按下我"); setLayout(new FlowLayout( ); add(btn); setSize(300,200); show( ); 答:创建一个标题为"按钮"的窗框,窗框中显示有"按下我"字样的按钮。4. 阅读以下程序,说明输出结果是什么import java.io.*;public class ATest public static void main(String args) SubClass sb = new SubClass( ); System.out.println(sb.funOfMod( ); class SuperClass int a = 10 , b = -3 ; class SubClass extends SuperClass int funOfMod( ) return a%b; 答: 输出结果为 1 /就是阿拉伯数字。四、问答题(5分*4=20分)1 简述Java的运行机制。答:Java程序的运行必须经过编写、编译、运行三个步骤。编写是指在Java开发环境中进行程序代码的输入过程,最终形成后缀名为.java源文件。编译是指使用Java编译器对源文件进行错误排查的过程,编译后将生成后缀名为.class的字节码文件。运行是指使用Java解释器 将字节码文件翻译成机器代码,在cpu上运行并显示结果的过程。这一过程如图所示。2. 什么是类成员,什么是实例成员?他们之间有什么区别?答:Java中使用static修饰的变量和方法称为类变量(或称静态变量)和类方法(或称静态方法),没用static修饰符的变量和方法称为实例变量和实例方法。类成员是指该成员属于这个类,由这个类所创建的所有对象共同拥有,该成员仅在类的存储单元中存在,这个类所创建的所有对象中仅存储一个指向该成员的 引用。任何一个该类的对象改变了类成员,其他对象同样会发生改变。对于类成员既可以使用对象访问,也可以使用类名直接进行访问,并且在类方法中只能访问类 变量,而不能访问实例变量。考试大全国最大教育类网站(wwwExamda。com)实例成员是指该成员由每一个对象个体独有,对象的存储空间中的确有一块空间用来存储该成员,不同对象的实例成员不同,任何一个对象改变了实例成员, 只会影响这个对象本身,其他对象中的实例成员不会发生改变。对于实例成员只能通过对象来访问,不能通过类名进行访问,在实例方法中既可以访问实例变量,也 可以访问类变量。3. 什么是多态?面向对象程序设计为什么要引入多态的特性答: 一个类中存在多个同名的方法,称为多态。把抽象功能和目的相同,而具体实现因不同情况而异的方法命名为同名方法,符合面向对象程序设计中抽象、提升概念,封装、隐藏细节的特点,从而提高了程序的简洁性和可读性,降低了类和程序模块直接的相互耦合和依赖。4. 编写一个学生类 Student ,要求:(1) 学生类 Student 属性有:id : long型,代表学号name : String类对象,代表姓名age : int型,代表年龄sex : boolen型,代表性别(其中:true表示男,false表示女)phone : String类对象,代表联系电话(2) 学生类 Student的方法有:Student(long i , String n , int a , boolean s , long p) : 有参构造函数,形参表中的参数分别初始化学号、姓名、年龄、性别和联系电话。int getAge() ( ) : 获取年龄作为方法的返回值。boolean getSex( ) ( ) : 获取性别作为方法的返回值。long getPhone ( ) : 获取联系电话作为方法的返回值。public String toString( ) : 以 姓名:联系电话 的形式作为方法的返回值。 答:参考程序段如下:class Student long id; String name;int age;boolean sex;long phone;Student( long i , String n , int a , boolean s , long p ) id = i; name = n;age = a;sex = s;phone = p;int getAge() return age; boolean getSex() return sex; long getPhone() return phone; public String toString() return name+" : "+phone; 专心-专注-专业