Java面向对象测试汇编.docx

上传人:b****8 文档编号:28659263 上传时间:2023-07-19 格式:DOCX 页数:16 大小:20.42KB
下载 相关 举报
Java面向对象测试汇编.docx_第1页
第1页 / 共16页
Java面向对象测试汇编.docx_第2页
第2页 / 共16页
Java面向对象测试汇编.docx_第3页
第3页 / 共16页
Java面向对象测试汇编.docx_第4页
第4页 / 共16页
Java面向对象测试汇编.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

Java面向对象测试汇编.docx

《Java面向对象测试汇编.docx》由会员分享,可在线阅读,更多相关《Java面向对象测试汇编.docx(16页珍藏版)》请在冰豆网上搜索。

Java面向对象测试汇编.docx

Java面向对象测试汇编

Java基础知识单元测试

一、选择题(30分)

1.下列程序段执行后的输出结果为( )  

intx=3;inty=10;

System.out.println(y%x);

A.0

B.1

C.2

D.3

2.下列程序的输出结果是 ( )

publicclassTest

{

voidprintValue(intm)

{

do{

System.out.println("Thevalueis"+m);

}while(--m>10);

}

publicstaticvoidmain(Stringarg[])

{

inti=10;

Testt=newTest();

t.printValue(i);

}

}

A.8

B.9

C.10

D.113

3.执行完语句int[]x=newint[25];后,则下列哪项说法是正确的( )

A.x[24]值为0

B.x[24]值未定义

C.x[25]值为0

D.x[0]值为空

4.下列哪个选项是合法的标识符 ( )

A)123

B)_name

C)class

D)1first

5.下列的哪个赋值语句是不正确的 ( )

A)floatf=11.1;

B)doubled=5.312;

C)floatd=3.14f;

D)doublef=11.110f;

6.下列关于继承的哪项叙述是正确的?

( )

A)在java中允许多重继承

B)在java中一个类只能实现一个接口

C)在java中一个类不能同时继承一个类和实现一个接口

D)java的单一继承使代码更可靠

7.有一个类A,对于其构造函数的声明正确的是()。

A)voidA(intx){...}B)A(intx){...}

C)AA(intx){...}D)intA(intx){...}

8.一个可以独立运行的Java应用程序(    )

A、可以有一个或多个main方法  

B、最多只能有两个main方法 

C、可以有一个或零个main方法  

D、只能有一个main方法

9.以下对Java中对数组的声明正确的是()

Aint[]sample;

Bintsample[];

Cint()sample;

Dintsample();

10.设intx=3,y=2,z=5;

则表达式y+=z--/++x的值是()。

A.3

B.4.5

C.3.5

D.4

11.类Test1定义如下:

(1)publicclassTest1{

(2)publicvoidaMethod(floata,floatb){};

(3)

(4)}

将以下哪种方法插入第3行是不合理的?

(  )

A.publicvoidaMethod(inta,intb){};

B.publicvoidaMethod(floata,floatb,floatc){};

C.publicvoidaMethod(floatc,floatd){};

D.privatevoidaMethod(inta,intb,intc){};

12.JDK中运行Java小程序的命令是()。

A.javadocB.appletviewer

C.javacD.Java

13.下列叙述中,正确的是:

()

A声明变量时必须指定一个类型B、Java认为变量number和Number相同

C、Java中唯一的注释方式是“//”D、源文件中public类可以有0或多个

14.在switch(expression)语句中,expression的数据类型不能是:

A、doubleB、charC、byteD、short

15.已知int[]a=newint[100];,在下列给出的数组元素中,非法的是:

A、a[0]B、a[1]C、a[99]D、a[100]

16.设x,y均为已定义的类名,下列声明对象x1的语句中正确的是()。

A、publicxx1=newy();B、xx1=x();

C、xx1=newx();D、intxx1;

17.Java语言的类间的继承关系是()。

A、多重的B、单继承C、线程的D、不能继承

18.下面关于java中类的说法哪个是不正确的()

A、类体中只能有变量定义和成员方法的定义,不能有其他语句。

B、构造函数是类中的特殊方法。

C、类一定要声明为public的,才可以执行。

D、一个java文件中可以有多个class定义(但只能有一个Public修饰的类)。

19.给出一段程序,选择运行结果()

publicclasssss{

publicstaticvoidmain(Stringargs[])

{

Strings1=args[1];Strings2=args[2];

Strings3=args[3];Strings4=args[4];

System.out.println(“args[2]=”+s2);

}

}

命令行执行:

javasss1234结果是下面哪一个?

A、args[2]=2B、args[2]=nullC、args[2]=3D、运行出现异常

20.publicclassT1{

publicstaticvoidmain(String[]args){

T1a=newT1();

a.method(8);

a.method(1.2f);

}

voidmethod(floati){

System.out.println("float:

"+i);

}

voidmethod(longi){

System.out.println("long:

"+i);

}

}

A、程序有编译错误,因为两个method()方法必须定义为静态(static)的。

B、程序可以编译运行,输出结果为:

long:

8

float:

1.2

C、程序可以编译运行,输出结果为:

float:

1.2

long:

8

D、程序中定义的两个参数不同的method方法称为方法重载。

21.编译并运行下面的程序,运行结果为().

publicclassA{

publicstaticvoidmain(String[]args){

Aa=newB();

a.test();

}

voidtest()  {

System.out.print("A");

}

}

classBextendsA{

voidtest(){

super.test();

System.out.println("B");

}

}

A、子类B定义了与父类A中同名的方法test,java中称为方法的覆盖。

B、代码可以编译运行,并输出结果:

AB

C、代码可以编译运行,并输出结果:

A。

D、子类B定义了与父类A中同名的方法test,java中称为方法的重载

22.面向对象的特征有哪些()

A、封装。

B、抽象。

C、继承。

D、多态

E、跨平台

23.类的设计要求它的某个成员变量不能被外部类直接访问。

应该使用下面的哪些修饰符获得需要的访问控制?

 A、public

 B、nomodifier

 C、protected(权限仅次于public)

 D、private

24.类Teacher和Student都是类Person的子类

  Personp;

  Teachert;

  Students;

  p,tandsareallnon-null.

  if(tinstanceofPerson){s=(Student)t;}

  这个语句导致的结果是什么?

  A、将构造一个Student对象。

  B、表达式合法。

  C、编译时非法。

 D、编译时合法而在运行时可能非法。

25.给出下面的代码:

  classPerson{

  Stringname,department;

  publicvoidprintValue(){

  System.out.println("nameis"+name);

  System.out.println("departmentis"+department);

  }

  }

  publicclassTeacherextendsPerson{

  intsalary;

  publicvoidprintValue(){

  //doingthesameasintheparentmethodprintValue()

  //includingprintthevalueofnameanddepartment.

  System.out.println("salaryis"+salary);

  }

  }

 下面的哪些表达式可以加入printValue()方法的"doingthesameas..."部分?

  A、printValue();

  B、this.printValue();

  C、person.printValue();

  D、super.printValue().

26.以下是接口的定义的是:

A,接口中定义的变量都是公共的静态变量

B,没有构造函数,而且定义的方法都是公共的抽象方法

C,接口间采用单继承机制

D,接口可以实例变量和常量,实例常量语法是;publicstatic标示符名称

27.包含抽象方法的类:

A,一定是抽象类

B,可以是抽象类也可以不是抽象类

C,肯定不是抽象类

28.那些父类成员不能被继承:

A,private成员

B,构造方法

C,public成员

D,getter和setter成员

29.方法重写规则:

A,在继承关系的子类中

B,重写的方法名,返回值类型,参数与父类不相同

C,私有属性,成员可以被重写

30.关于构造方法,下列说法错误的是()

A,构造方法可以进行方法重写

B,构造方法用来初始化该类的一个新对象

C,构造方法具有和类名相同的名称

D,构造方法不返回任何数据类型

2、程序分析题(16分)

1.设有数组定义:

inta[]={11,22,33,44,55,66,77,88,99};

则执行下列几个语句后的输出结果是

for(inti=0;i

if(a[i]%3==0)

System.out.println(a[i]+"");

2.执行下列几个语句后的输出结果是

class FatherClass{   

publicFatherClass(){  

System.out.println("FatherClassCreate"); 

}

}

publicclass ChildClassextendsFatherClass{ 

publicChildClass() {  

System.out.println("ChildClassCreate"); 

publicstaticvoidmain(String[]args) {  

FatherClassfc=newFatherClass();  

ChildClasscc=newChildClass(); 

}

}

3.应用程序由以下语句组成,写出执行该程序后输出的结果

publicclassx{

publicstaticvoidmain(Stringargs[]){

inti,sum=0;

inta[]={1,2,3,4,5,6};

for(i=0;i

if(a[i]%2==0)

sum+=a[i];

System.out.println("sum="+sum);

}

}

4.应用程序由以下语句组成,写出执行该程序后输出的结果

import java.io.*;

public class A

{

public static void  main(String args[])

{inti;

inta[]={10,20,30,40,50,60,70,80,90};

for(i=0;i<=a.length/2;i++)

System.out.print(a[i]+a[a.length-i-1]+" ");

}

}

5.应用程序由以下语句组成,写出执行该程序后输出的结果

publicclassx

{

publicstaticvoidmain(Stringargs[])

{

intnum=0;

for(inti=10;i<=50;i++)

if(i%10==5&&i%3==0)

num++;

System.out.println("共有"+num+"个");

}

}

6.应用程序由以下语句组成,写出执行该程序后输出的结果

publicclassJtest

{

intm=1;

inti=3;

voidJtest()

{

m=2;

i=4;

}

publicstaticvoidmain(String[]args)

{

Jtestapp=newJtest();

System.out.println(app.m+","+app.i);

}

}

7.应用程序由以下语句组成,写出执行该程序后输出的结果

publicclassJtest

{

intm=1;

inti=3;

Jtest()

{

m=2;

i=4;

}

publicstaticvoidmain(String[]args)

{

Jtestapp=newJtest();

System.out.println(app.m+","+app.i);

}

}

8.请写出程序的运行结果

classTester{

intvar;

Tester(doublevar){

this.var=(int)var;

}

Tester(intvar){

this("hello");

}

Tester(Strings){

this();

System.out.print(s);

}

Tester(){

System.out.print("goodbye");

}

publicstaticvoidmain(String[]args){

Testert=newTester(5);

}

}

3、填空题(4分)

1.在Java程序中,通过类的定义只能实现单继承,但通过     的定义可以实现多继承关系。

2.数组x定义如下intx[][]=newint[3][2]

则x.length的值为____________,x[0].length的值为____________。

4、改错题(8分)

1.abstract class Name {   

private String name;   

public abstract boolean isStupidName(String name) {}

}

2.public class Something {   

void do () {       

private String s = "";       

int i= s.length();   

}

}

3.public class x{

   public int add(final int i) {

       return ++i;

   }

}

4.此处,Something类的文件名叫Other.java

publicclass Something {

    private static void main(String[] something_to_do) {        

        System.out.println("Do something ...");

    }

}

5、简答题(12分)

1.简答方法的OverLoad和Override区别。

2.简答Java实现多态的手段。

3.简答this和super的用法。

4.简答类成员和实例成员的区别

5.一个".java"源文件中是否可以包括多个类?

有什么限制?

6、局部变量和成员变量的区别

6、判断题(10分)

1.Java程序里,创建新的类对象用关键字new。

2.对象可以赋值,只要使用赋值号(等号)即可,相当于生成了一个各属性与赋值对象相同的新对象。

3.有的类定义时可以不定义构造函数,所以构造函数不是必需的。

4.类及其属性、方法可以同时有一个以上的修饰符来修饰。

5.抽象方法必须在抽象类中,所以抽象类中的方法都必须是抽象方法。

6.Final类中的属性和方法都必须被final修饰符修。

7.最终类不能派生子类,最终方法不能被覆盖。

8.子类要调用父类的方法,必须使用super关键字。

9.一个Java类可以有多个父类。

10.方法覆盖必须要方法原型相同,可以不需要继承

 

七、编程题(4+5+6+5=20分)

1.求1!

+2!

+3!

+…+10!

2.数组题:

键盘随机输入十个数,以降序形式排列,打印排列后的数字。

3.编写一个java程序,设计一个汽车类Vechile,包含的属性有车轮数和车重,小汽车Car是它的子类,其中的属性包含载人数,卡车Truck是Car的子类,其属性包含载重量payload。

每个类都有构造方法和输出相关信息的方法。

4.编写简易的计算器,实现加减乘除,要求声明Operation类(或接口),AddOperation加法类SubOperation减法类MulOperation乘法类DivOperation除法类,编写测试类Test实现加减乘除运算。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 职高对口

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1