一、 选择题
第五章
1. 设 A为已定义的类名,下列声明A类的对象a的语句中正确的是(A) A) A a=new A( ); B) public A a=A( ); C) A a=new class( ); D) a A;
2. 设 X 、Y 均为已定义的类名,下列声明类X的对象x1的语句中正确的是 (C) (A)public X x1= new Y( ); (B)X x1= X ( ); (C)X x1=new X( ); (D)int X x1; 3. 下列方法定义中,正确的是(D)
A) int x( int a,b ) { return (a-b); } B) double x( int a,int b) { int w; w=a-b; } C) double x( a,b ) { return b; }
D) int x( int a,int b) { return a-b; } 4. 下列方法定义中,正确的是( D )
A) void x( int a,int b ); { return (a-b); } B) x( int a,int b) { return a-b; }
C) double x { return b; } D) int x( int a,int b) { return a+b; } 5. 下列方法定义中,不正确的是(D)
A) float x( int a,int b ) { return (a-b); } B) int x( int a,int b) { return a-b; }
C) int x( int a,int b ) { return a*b; } D) int x(int a,int b) { return 1.2*(a+b); } 6. 下列方法定义中,正确的是(A)
A) int x( ){ char ch='a'; return (int)ch; } B) void x( ){ ...return true; }
C) int x( ){ ...return true; } D) int x( int a, b){ return a+b; }
7. 下列方法定义中,方法头不正确的是(D) A)public int x( ){ ... }
B)public static int x( double y ){ ... } C)void x( double d ) { ... }
D)public static x( double a ){ ... } 8. 定义类头时,不可能用到的关键字是(B)
A) class B)private C)extends D)public
9. 设i , j为类X中定义的int型变量名,下列X类的构造方法中不正确的是(A) A) void X(int k ){ i=k; } B) X(int k ){ i=k; } C) X(int m, int n ){ i=m; j=n; } D) X( ){i=0;j=0; } 10. 有一个类A,以下为其构造方法的声明,其中正确的是(A) A)public A(int x){...} B)static A(int x){...} C)public a(int x){...} D)void A(int x){...} 11. 有一个类A,以下为其构造方法的声明,其中正确的是(B) A)void A(int x){...} B)A(int x){...}
C)a(int x){...} D)void a(int x){...}
12. 设i、j、k为类X中定义的int型变量名,下列类X的构造方法中不正确的是(
1
B)
A) X( int m){ ... } B) void X( int m){ ... }
C) X( int m, int n){ ... } D) X( int h,int m,int n){ ... }
13. 设i , j为类X中定义的double型变量名,下列X类的构造方法中不正确的是(A)
A) double X(double k ){ i=k; return i; } B) X(double m, double n ){ i=m; j=n; } C) X( ){i=6;j=8; }
D) X(double k ){ i=k; }
14. 设 A为已定义的类名,下列创建A类的对象a的语句中正确的是 (D) A)float A a; B )public A a=A( ); A )a=new int( ); D )A a=new A( );
第六—七章
1. Java语言的类间的继承关系是( B )。
A) 多重的 B) 单重的 C) 线程的 D) 不能继承 2. 以下关于Java语言继承的说法正确的是( C )。
A)Java中的类可以有多个直接父类 B)抽象类不能有子类
C)Java中的接口支持多继承 D)最终类可以作为其它类的父类 3. 现有两个类A、B,以下描述中表示B继承自A的是(D)。
A) class A extends B B) class B implements A C) class A implements B D) class B extends A 4. 下列选项中,用于定义接口的关键字是( A)。
A)interface B) implements C) abstract D) class 5. 下列选项中,用于实现接口的关键字是( B)。
A)interface B) implements C) abstract D) class 二、填空题
1、以下代码的输出结果是_____j_________ int i=9; char c=’a’; char d=(char)(c+i); System.out.println(d);
2、面代码执行完后的输出是____b is: false ____ int x=3; int y=4;
boolean b=true;
System.out.println(\3、表达式(-100%3)的值是__-1_____
4、int x=2,y=4,z=3 则x>y&&z>y的结果是________false__________ 5、写出定义双精度浮点型常量PI,值为3.1415926的语句: final double PI=3.1415926_ 6、在Java语言中,逻辑常量只有true 和 ___ false__ 两个值。 7、表达式1/2*3的计算结果是__0___ 8、执行以下程序段后:a = __6______, b = ___18_____ int a = 5, b;
b = ++a * 3;
9、Java语言中的浮点型数据根据数据存储长度和数值精度的不同,进一步分为float和 ___double__两种具体类型。 11、当整型变量n的值不能被13除尽时,其值为 false 的Java语言表达式是___n= =0__________ 。 12、表达式3/6 * 5的计算结果是__0_____ 。
13、若a,b为int型变量且已分别赋值为2,4。表达式 !(++a!=b--)的值是___ _false__ 。
2
14、若a,b为int型变量且已分别赋值为2,6。表达式(a++)+(++b) +a*b的值是____30____ 。 15. 如果子类中的某个变量的变量名与它的父类中的某个变量完全一样,则称子类中的这个变量_隐藏_了父类的同
名变量。
16. 属性的隐藏是指子类重新定义从父类继承来的 同名变量或属性
17. 如果子类中的某个方法的名字、返回值类型和_参数列表_与它的父类中的某个方法完全一样,则称子类中的这个方法覆盖了父类的同名方法。 18. Java 仅支持类间的__单_重继承。
19. 抽象方法只有方法头,没有_方法体_。
20 。Java 语言的接口是特殊的类,其中包含static(静态)常量和_ abstract(抽象)方法。 21 接口中所有属性均为_public _、_static__和__final_的。
三、问答题
1. 构造方法和一般的方法有何区别?
答:名字是类名 没有返回值 使用new调用 2. 面向对象的软件开发方法用什么把数据和基于数据的操作封装在一起? 答:类 3. 在一个类定义中,用什么描述对象的状态? 用什么描述对象的行为? 答:属性、方法 4. 什么方法是一个特殊的方法,用于对对象进行初始化?答:构造方法 5. 一个源程序文件中,能有多于一个的 public 类吗? 答:不能 6. 构造方法的方法名可由编程人员任意命名吗? 答:不能 7. 类的构造方法名必须和类名相同吗?答:是的 8. 类的访问控制修饰符有哪些,访问权限各是什么? 答:Public 公共的,可以被所有类访问
默认的:可被同一包中的类访问 9. 类的成员的访问控制修饰符有哪些,访问权限各是什么?答:P80表6.3 10. 包的作用是什么?如何声明一个包?
答:包是类的容器,用来保存划分的类名的空间 声明格式:package 包名 11. 如何导入一个包? 答:import 包名
12. 定义类的访问器和设置器的形式是什么?
答:访问器:public 返回值类型 get属性名(){return 属性名;} 设置器:public void set属性名(数据类型 参数值)
{ 属性名=参数值;}
13. Java语言的特点有哪些(举例说出三个即可)? 答:面向对象、简单、多线程等
14. 程序流程的三种结构是什么? 答:顺序 选择 循环
15. 编译Java程序的命令是什么?运行Java程序的命令是什么?Java源文件的扩展名是什
么?
答:javac java .java
16. Java中的基本数据类型共有三种,分别是什么?
答:数值 字符 布尔
17. 面向对象程序的三个特点是什么? 答:封装 继承 多态
18. 写出方法和属性的修饰符(举例说出三个即可)?答案同第9题
3
19. Java源文件的扩展名是什么?字节码文件的扩展名是什么?
答:.java .class
20. 方法重载的概念?
答:在同一个类中方法名称相同,参数类型或个数不同的现象 21. 属性的隐藏概念?
答:在子类中重新定义与父类相同的属性。 22. 方法的覆盖?
答:在子类中重新定义与父类相同的方法。
四、程序阅读和程序填空题
1、下面的程序的输出结果是什么? public class Mystery {
public static void main (String [] args ) { int y=0, x = 1 , total = 0 ; while (x<=10) { y = x*x;
System.out.println( y ); total += y;
System.out.println( “Total is ”+total ); x++;} } }
答案:
1
Total is 1 4
Total is 5 9
Total is 14 16
Total is 30 25
Total is 55 36
Total is 91 49
Total is 140 64
Total is 204 81
Total is 285 100
Total is 385
2、下面是一个java应用程序(Application),它的功能是在屏幕上输出26个小写英文字母,其中每个字母相隔一个制表符,请完成程序填空? public __class___ Class1 {
4
public static void main( String args[] ) {
char c='a';
for (int i=1;i<=26;i++)
{ System.out.print(_c+++_”\\t”____); } } }
3、下面是一个java应用程序(Application),它的功能是计算 s=1+2+3+...+10 ,请完成程序填空?
public __class___ Class1
{ public static void main( String args[] ) { int s=0;
for (int i=1;i<=10;i++) {
s+=_i__; }
System.out.println(\}
4、下面是一个java Application 的主类的定义,其功能是输出乘法口诀表第一列,请完成程序填空?
import java.io.*; public class MyClass {
public static void main(String[] args) {
int j=1;
for(int i=1; ___i<10____; i++)
{ System.out.println(i+\_i _); } } }
5、 下面是一个类的定义,根据题目要求回答以下问题? class B { int x; char y;
public B(int i,char j) { x=i; y=j; } public void show() { System.out.println(\} public void methodC(int x1) { x=x+x1; y++; show(); } }
1)定义类B的一个对象b,将类中的变量x初始化为10、变量y初始化为’A’,请写出相应的语句。?
B b=new B(10,’A’) ;
2)若在1)问基础上有方法调用语句:b.show()则输出如何?
5