面向对象程序设计-学生学习材料
- 格式:doc
- 大小:75.50 KB
- 文档页数:8
一、单选择题1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )。
A. 3B. 3. 5C. 4D. 53、不允许作为类及类成员的访问控制符的是( )。
A. publicB. privateC. staticD. protected4、下面哪个不是程序设计的基本语句结构()。
A、顺序B、循环C、过程D、分支5、下面哪个不是面向对象程序设计关键特性()。
A、抽象性B、模块化C、继承性D、多态性6、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( )。
A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )7、Java的字符类型采用的是Unicode编码方案,每个Unicode码占用____个比特位。
()A、8B、16C、32D、648、关于下列程序段的输出结果,说法正确的是:()public class MyClass{static int i;public static void main(String argv[]){System.out.println(i);}}A、有错误,变量i没有初始化。
B、nullC、1D、09、给出下列代码片段:()if(x>0){System.out.println("first");}else if(x>-3){ System.out.println("second");}else {System.out.println("third");}请问x处于什么范围时将打印字符串“second”?A、x>0B、x>-3C、x<=-3D、x<=0 & x>-310、表达式(11+3*8)/4%3的值是( )A、31B、0C、1D、211、在Java语言中,下列关于类的继承的描述,正确的是()。
A.一个类可以继承多个父类B.一个类可以具有多个子类C.子类可以使用父类的所有方法D.子类一定比父类有更多的成员方法12、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同,这种面向对象程序特性称为:()A、隐藏B、覆盖C、重载D、Java不支持此特性13、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同,这种面向对象程序特性称为:()A、隐藏B、覆盖C、重载D、Java不支持此特性14、下列选项中关于Java中super关键字的说法正确的是()。
E.super关键字是在子类对象内部指代其父类对象的引用F.super关键字不仅可以指代子类的直接父类,还可以指代父类的父类G.子类通过super关键字只能调用父类的方法,而不能调用父类的属性H.子类通过super关键字只能调用父类的属性,而不能调用父类的方法15、下列说法正确的是()A、JA V A程序的main方法必须写在类里面B、J A V A程序中可以有多个main方法C、J A V A程序中类名必须与文件名一样D、JA V A程序的main方法中如果只有一条语句,可以不用{}(大括号)括起来16、Java中,在如下所示的Test类中,共有()个构造方法。
public class Test{private int x;public Test(){x=35;}public void Test(double f){This.x=(int)f;}public Test(String s){}}A、0B、1C、2D、317、如下哪个不是java的合法注释()。
A、/* 注释部分 */B、/** 注释部分 */C、// 注释部分D、/** 注释部分 /18、以下程序段中,switch(score/10){case 1:case 2:case 3:case 4:case 5: System.out.print("E");break;case 6: System.out.print("D");break;case 7: System.out.print("C");break;case 8: System.out.print("B");break;case 9:case 10: System.out.print("A");break;default: System.out.print("Data error.");break;}假如运行过程中变量score值为29或110,则程序的两次输出分别为()。
A、无输出,Data errorB、E,无输出C、E,Data erorD、无输出, A19、变量命名规范说法正确的是()A、变量由字母、下划线、数字、$符号随意组成;B、变量不能以数字作为开头;C、A和a在java中是同一个变量;D、不同类型的变量,可以起相同的名字;20、Java中的整数类型:byte、short、int、long占的字节数分别是()。
A、1 2 6 8B、2 4 6 8C、1 4 2 8D、1 2 4 821、如下哪个标识符不是合法的java标识符命名()。
A、a2bcB、a$b2C、_2abcD、2abc22、以下( )不是合法的标识符A、STRINGB、x3x;C、v oidD、de$f23、对象的特征在类中表示为变量,称为类的()。
A、对象B、属性C、方法D、数据类型24、score是一个整数数组,有五个元素,已经正确初始化并赋值,仔细阅读下面代码,程序运行结果是()temp = score[0];for (int index = 1;index < 5;index++) {if (score[index] < temp) {temp = score[index];}}A.求最大数B.求最小数C.找到数组最后一个元素D.编译出错25、在Java中,关于构造方法,下列说法错误的是( )A、构造方法的名称必须与类名相同B、构造方法可以带参数C、构造方法不可以重载D、构造方法绝对不能有返回值26、在Java语言中,下列关于类的继承的描述,正确的是()。
A、一个类可以继承多个父类B、一个类可以具有多个子类C、子类可以使用父类的所有方法D、子类一定比父类有更多的成员方法27、下列选项中关于Java中super关键字的说法正确的是()。
A、super关键字是在子类对象内部指代其父类对象的引用B、super关键字不仅可以指代子类的直接父类,还可以指代父类的父类C、子类通过super关键字只能调用父类的方法,而不能调用父类的属性D、子类通过super关键字只能调用父类的属性,而不能调用父类的方法28、Java中,如果类C是类B的子类,类B是类A的子类,那么下面描述正确的是()A、C不仅继承了B中的成员,同样也继承了A中的成员B、C只继承了B中的成员C、C只继承了A中的成员D、C不能继承A或B中的成员29、分析选项中关于Java中this关键字的说法正确的是()A、this关键字是在对象内部指代自身的引用B、t his关键字可以在类中的任何位置使用C、t his关键字和类关联,而不是和特定的对象关联D、同一个类的不同对象共用一个this30、以下关于抽象类和接口的说法错误的是()A、抽象类在Java语言中表示的是一种继承关系,一个类只能使用一次继承。
但是一个类却可以实现多个接口。
B、在抽象类中可以没有抽象方法C、实现抽象类和接口的类必须实现其中的所有方法,除非它也是抽象类。
接口中的方法都不能被实现D、接口中定义的变量默认是public static final 型,且必须给其初值,所以实现类中不能重新定义,也不能改变其值。
E、接口中的方法都必须加上public关键字。
二、填空题1、Java中类成员的限定词有以下几种:默认、private, public, ____(1)_____。
其中,______(2)______的可被访问的范围最大。
2、Java中所有类都是类_____(3)_____的子类。
3、main方法头的声明格式为________________(4)_________________。
4、Java的基本数据类型包含(列举至少四个)____________ (5)____________。
5、变量主要用来___(6)___,是用标识符命名的数据项,是程序运行过程中可以改变值的量。
6、面向对象的语言通常具有以下特征:对象生成功能、____(7)____和类及遗传机制。
7、被继承的类一般称为____(8)____或___(9)____,继承的类称为___(10)___。
8、在Java程序中,通过类的定义只能实现____(11)___重继承,但通过接口的定义可以实现___(12)___重继承关系。
9、接口使用___(13)___关键字声明。
10、Java中I/O流是由___(14)___包来实现的。
11、自定义的异常类一般直接或间接继承自___(15)___类三、写出下列程序完成的功能。
(每小题5分,共20分)1、public class Sum{ public static void main( String args[ ]){ double sum = 0.0 ;for ( int i = 1 ; i <= 100 ; i + + )sum += 1.0/(double) i ;System.out.println( "sum="+sum );}}2、import java.io.* ;public class Reverse{ public static void main(String args[ ]){ int i , n =10 ;int a[ ] = new int[10];for ( i = 0 ; i < n ; i ++ )try {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));a[i] = Integer.parseInt(br.readLine( )); // 输入一个整数} catch ( IOException e ) { } ;for ( i = n-1 ; i >= 0 ; i ――)System.out.print(a[i]+" ");System.out.println( );}}4、import java.io.*;public class abc{ public static void main(String args[]){ SubClass sb = new SubClass( );System.out.println(sb.max( ));}}class SuperClass{ int a = 10 , b = 20 ; }class SubClass extends SuperClass{ int max( ) { return ((a>b)?a:b); } }四、写出下面程序的运行结果(每小题10分,共30分)1.public class TestApple {int i=0;Apple(int i){this.i=i;}Apple increament(){i++;return this;}void print(){System.out.println("i="+i);}public static void main(String[] args) {Apple redapple=new Apple(1000);redapple.increament().increament().print();}2、import java.io.*;public class abc{ public static void main(String args[ ]){ AB s = new AB("Hello!","I love JA V A.");System.out.println(s.toString( ));}}class AB {String s1;String s2;AB( String str1 , String str2 ){ s1 = str1; s2 = str2; }public String toString( ){ return s1+s2;}}3、import java.io.* ;public class abc{public static void main(String args[ ]){ int i , s = 0 ;int a[ ] = { 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 };for ( i = 0 ; i < a.length ; i ++ )if ( a[i]%3 = = 0 ) s += a[i] ;System.out.println("s="+s);}}4、import java.io.* ;public class abc{public static void main(String args[ ])){ System.out.println("a="+a+"\nb="+b); }}class SubClass extends SuperClass{ int c;SubClass(int aa,int bb,int cc){ super(aa,bb);c=cc;}}class SubSubClass extends SubClass{ int a;SubSubClass(int aa,int bb,int cc){ super(aa,bb,cc);a=aa+bb+cc;}void show(){ System.out.println("a="+a+"\nb="+b+"\nc="+c); }}5class FatherClass{public int value;public void f(){value=100;System.out.println("FatherClass.value="+value);}}class ChildClass extends FatherClass{public int value;public void f(){super.f();value=200;System.out.println("ChildClass value="+value);System.out.println(value);System.out.println(super.value);}}public class TestInherit {public static void main(String[] args) {ChildClass cc=new ChildClass();cc.f();}}五、使用Java语言编写程序.1、编写如下接口和类(1)编写两个接口Employee和Developer,其中Employee有work()方法,Developer有code()方法。