一、选择题(每题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
- 假设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)。