Java测试(二)

一、选择题(每题2分,共40分)

1.下面哪个是Java语言中正确的标识符(C )

a)      3com        b)import        c)that d)this

2.下面哪个语句(初始化数组)是不正确的: ( B  )

a)      Int x[]={1,2,3}                 b)int x[3]={1,2,3}

C)  String[] x=new String[]{“a”,”c”}   d) int x[]=new int[]{1,2,3};

3.下述概念中不属于面向对象方法的是(  D )

a)      对象         b)继承多态     c)封装     d)过程调用

4.下面代码中,执行之后i 和j 的值是什么? ( B )

int i=1;

int j;

j= i++ * 2+ 3* --i;

A) 1,2   b)  1,5    c )2,1    d) 2,2

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

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

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

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

D.一个java文件中可以有多个class定义。

6、给出下面代码:

    public class Person{

          static int arr[] = new int[10];

public static void main(String args[]) 

System.out.println(arr[1]); 

    } 

哪个语句是正确的?(   B )

A.编译时将产生错误;                       B.输出零;

C.编译时正确,运行时将产生错误;              D.输出空

7、编译并运行以下程序段的结果是:(A )

public class MyClass{

final static int i;

public MyClass(){

i =0;

}

public static void main(String args[]){

System.out.println(i);

}

}

A.编译出错    B、null    C、1      D、0

8、A派生出子类B ,B派生出子类C,并且在Java源代码中有如下声明:

1)A a0=new A();

2)A  a1 =new B();

3)A a2=new C(); 问以下哪个说法是正确的?(D)

A.只有第1行能通过编译   

B.第1、2行能通过编译,但第3行编译出错

C.第1、2、3行能通过编译,但第2、3行运行时出错

D.第1行、第2行和行的声明都是正确的

9.构造方法何时被调用(B    ) 

A.类定义时       B.创建对象时

C.调用对象方法时    D.使用对象的变量时

 

10、下面哪项可以得到数组元素的个数,

java中定义数组名为abc,(B )

A、abc.length( )  B、abc.length  C、len(abc) D、ubound(abc)

11、下面哪个修饰符修饰的方法只能被本类中的其他方法使用( C   )

A、protected     B、static     C、private D、public

12、定义一个类名为“MyClass.java”的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为:( C ) 

A. private class MyClass extends Object 

B. class MyClass extends Object 

C. public class MyClass 

D. protected class MyClass extends Object

13、对象使用时,下面描述错误的是( B ) 

A.通过“.”运算符调用成员变量和方法

B.通过成员变量的访问权限设定限制自身对这些变量方法的调用

C.将一个对象申明为类的成员时,必须在使用前为其分配内存

D.在方法中使用对象作为参数时,采用引用调用

14、下面代码哪行会引起错误?( D )

1) class Parent {

2) private String name;

3) public Parent(){}

4) }

5) public class Child extends Parent {

6) private String department;

7) public Child() {}

8) public String getValue(){ return name; }

9) public static void main(String arg[]) {

10) Parent p = new Parent();

11) }

12) }

A、第3行   B、第6行   C、第7行    D、第8行

15.关于被私有保护访问控制符protected修饰的成员变量,以下说法正确的是? ( A  )

A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 

B. 可以被两种类访问和引用:该类本身、该类的所有子类

C. 只能被该类自身所访问和修改    D.只能被同一个包中的类访问

16---17 (多选)

16.对于构造方法,下列叙述正确的是:(AC   )

A. 构造方法的方法名必须与类名相同;

B. 构造方法必须用void申明返回类型

C. 构造方法可以被程序调用

D. 若编程人员没再类中定义构造方法,程序将报错。

17.下面是有关子类继承父类构造函数的描述,其中正确的是:(CD   )

A. 创建子类的对象时,先调用子类自己的构造函数,然后调用父类的构造函数。

B. 子类可以不调用父类的构造函数

C. 子类必须通过super()关键字调用父类的构造函数

D. 子类无法继承父类的构造函数。

18. Java中(  C )

A) 一个子类可以有多个父类,一个父类也可以有多个子类

B) 一个子类可以有多个父类,但一个父类只可以有一个子类

C) 一个子类可以有一个父类,但一个父类可以有多个子类

D) 上述说法都不对

19.关于以下application的说明,正确的是(    C       )

1.  class   StaticStuff

2. {  

3.                  static  int  x=10;

4.                  static  { x+=5;}

5.                  public  static  void  main(String  args[ ])

6.                  {

7.                       System.out.println(“x=” + x);

8.                  }

9.                  static  { x/=3;}

 10.   }

A、4行与9行不能通过编译,因为缺少方法名和返回类型   

B、9行不能通过编译,因为只能有一个静态初始化器

C、编译通过,执行结果为:x=5

D、编译通过,执行结果为:x=3

  1. 假设A类有如下定义,设a是A类的一个实例,下列语句调用哪个是错误的?(   C    )

class  A{

   int  i;

   static  String  s;

      void  method1() {   }

       static  void  method2()  {   }

}

A、System.out.println(a.i);B、a.method1();  C、A.method1();  D、A.method2()

二、填空题(每空2分)

 

  2.Java程序在extends之后只能有一个父类,即extends只能实现 单根     继承。

  3.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为  类名称.class    

4.构造方法是一个特殊的方法,主要用于创建对象时初始化对象。构造方法的方法名要求与   类名称    相同,而且无返回值,构造方法无返回值,并不是要在构造方法名前加上  void 。

三、简答题(每道题5分)

 

a)  .简述break和continue语句在使用时的区别?

b)  .什么是类?什么是对象?类和对象有何联系?

 

c)  方法的重载和方法的覆盖有什么不同?

 

d)  .类变量和实例变量有何区别?

 

e)  Java的成员变量修饰符有哪几种?其中哪种修饰符限定的范围最大?

 

f)  说明对象的基本概念和主要特征?

 

g)  什么是包?为什么要使用包?

 

h)  定义一个学生类Student,包括如下属性:学生学号、姓名、年龄、专业、年级等,要求类中定义构造函数初始化学生类中的属性信息,定义方法Display用于输出学生信息,并编写main函数,创建学生对象,通过对象调用相关方法。

 

 

四、程序题(写出主要步骤)(每道题5分)

1.题目:打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。程序分析:利用for循环控制100-999个数,每个数分解出个位,十位,百位。

 main() 

{ 
int i,j,k,n;
for(n=100;n<1000;n++)
{
i=n/100;/*分解出百位*/
j=n/10%10;/*分解出十位*/
k=n%10;/*分解出个位*/
if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)
{
 System.out.print(n);
}
}

2..打印如下图形:

i)  *

j)  ***

k)  *****

l)  *******

m)  *********

 

简答题答案:

1.什么是类?什么是对象?类和对象有何联系?

1. 答:在面向对象程序设计里,类是定义一个对象的属性和方法的蓝本。对象就是一组变量和相关方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为。类是对象的模板,对象是类的实例,可以从一个类中创建许多对象。

 

2.方法的重载和方法的覆盖有什么不同?

2. 答:方法重载,指的是在类中创建多个具有相同名称,但使用不同参数的方法,Java虚拟机根据传递给方法的参数个数和类型决定调用哪个重载方法。方法的覆盖指在子类中重新定义父类中已有的方法,对于重写的方法,运行时系统根据调用该方法的实例的类型来决定选择哪个方法调用。

 

3.类变量和实例变量有何区别?

 答:由static修饰的变量称为类变量,当系统在程序中第一次遇到一个类时,便会拷贝一份所有的类变量在内存里。然后那些由此类产生的实例便可分享这些类变量。  实例变量指不是用static修饰的变量,可供实例方法使用。实例变量会复制于每一个从类产生的实例中。

 

4.Java的成员变量修饰符有哪几种?其中哪种修饰符限定的范围最大?

 答:成员变量的修饰符有public、protected、private、static、final。Public修饰符的限定范围最大。

 

5.说明对象的基本概念和主要特征?

对象是对客观世界实体及其实体关系的抽象。特点:(1)以数据为中心;(2)实现了数据封装;(3)模块独立性好;(4)对象是主动的;(5)本质上具有并行性。

 

.Java 包(package),为了更好地组织类,Java提供了包机制,用于区别类名的命名空间
包的作用
1 把功能相似或相关的类或接口组织在同一个包中,方便类的查找和使用。
2 如同文件夹一样,包也采用了树形目录的存储方式。同一个包中的类名字是不同的,不同的包中的类的名字是可以相同的,当同时调用两个不同包中相同类名的类时,应该加上包名加以区别。因此,包可以避免名字冲突。
3 包也限定了访问权限,拥有包访问权限的类才能访问某个包中的类。
Java使用包(package)这种机制是为了防止命名冲突,访问控制,提供搜索和定位类(class)。

转载于:https://www.cnblogs.com/sonder/p/8630697.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值