文档库 最新最全的文档下载
当前位置:文档库 › Java程序设计试题及答案

Java程序设计试题及答案

Java程序设计试题及答案
Java程序设计试题及答案

一、判断题。判断下列各题是否正确,若正确,在()内打“√”,否则打“×”。

1、Java语言具有较好的安全性和可移植性及与平台无关等特性。√

2、Java语言的源程序不是编译型的,而是编译解释型的。√

3、Java语言使用的是Unicode字符集,每个字符在内存中占8位。×

4、Java语言中不同数据类型的长度是固定的,不随机器硬件不同而改变。√

6、一个类可以实现多个接口,接口可以实现“多重继承”。√

7、实现接口的类不能是抽象类。×

二、不定项选择题。

1、编译Java Application源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为(B)。

A、java

B、class

C、html

D、exe

2、main方法是Java Application程序执行的入口点,关于main方法的方法首部,以下(B)项是合法的。

A、public static void main()

B、public static void main(String args[])

C、public static int main(String[] arg)

D、public void main(String arg[])

3、关于下面代码的说法(C)是正确的?

public class Example{

public static void main(String[] args){ int[] arr= new int[10];

}

}

A、编译时产生错误

B、编译时正确,运行时将产生错误

C、输出零

D、输出空(null)

4、不正确的表达式是(AB)。

A、float a=1.0d;

B、Double a=new Double(1.0)

C、byte a = (byte)340;

D、Byte a = 120;

5、定义一个类名为"MyClass.java"的类,并且该类可被一个工程中的所有类访问,那么该类的正确声明应为( CD)。

A、private class MyClass extends Object

B、class MyClass extends Object

C、public class MyClass

D、public class MyClass extends Object

6、下列构造方法的调用方式中,正确的是(C)。

A、按照一般方法调用

B、由用户直接调用

C、只能通过new自动调用

D、被系统调用

7、private级的成员可以被哪些对象访问?C

A、同一包中的其他类

B、仅同一类的私有成员方法

C、仅同一类的所有成员方法

D、所有其他类

8、关于Object 类,以下正确的是(ADE)。

A、Object类中定义了一些重要的方法,以方便Java类的使用

B、Object类是一个非常特殊的“虚拟”类,就是说只能从Object类派生出其它类,但不能创建一个Object类的对象,也不能将一个引用变量定义为Object类型

C、如果一个类已经有了父类,那么这个类同时继承了Object类,也就是说这时候这个类实际上有两个父类

D、Object类是所在其他Java 类的直接或间接父类

E、Java 中的类是单继承的,因此所在的类以Object类为根,形成了棵继承树

9、抽象类与普通类的区别是什么?C

A、抽象类没有成员变量,只有成员函数

B、抽象类只有成员变量,没有成员函数

C、抽象类中有抽象函数,而普通类的每个函数都是有具体实现的

D、抽象类与普通类没有区别

10、使用接口的通常办法是(D)。

A、将接口数当作静态数据来调用

B、直接调用接口的方法

C、将接口变量作为方法的参数来使用

D、定义一个接口变量,该变量指向实现接口的对象来访问

E、定义一个接口对象,通过对象访问

11、执行下列代码后,哪个结论是正确的 String[] s=new String[10]; BD

A、s[10] 为 ""

B、s[9] 为 null;

C、s[0] 为未定义

D、s.length 为10

12、以下对substring 函数的描述中,错误的是()。BC

A、String 和StringBuffer类都可以使用substring 函数

B、substring 函数返回一个StringBuffer对象

C、substring 函数获得从指定位置开始,到指定位置为止的字符串

D、substring 函数用于获得字符串的一个子串

13、如果catch块中包括多个异常类,这些异常类的匹配原则是什么?C

A、接try块中程序执行的顺序,寻找最通用的异常类

B、接try块中程序执行的顺序,寻找能够最精确匹配的类

C、接catch块中异常类的排列顺序,寻找第一个能够匹配的异常对象

D、在catch块中寻找能够最精确匹配的类

14、以下异常中,不属于RuntimeException 的是(D)。

A、IndexoutofBoundsException 数组以下越界异常

B、NullPointerExcePtion 使用未初始化的引用变量

C、ArithmeticException 算术异常

D、IllegalAccessException没有足够的权限访问其他类的成员

15、运行下列程序, 会产生什么结果。AD

public class MyThread extends Thread implements Runnable{ public void run(){

}

public static void main(String[] args) {

Thread t=new Thread(new MyThread ());

t.start();

}

}

A、第一行会产生编译错误

B、第六行会产生编译错误

C、第六行会产生运行错误

D、程序会运行和启动

三、简答题。

1、子类重新定义与父类方法的方法头完全相同的方法,这种情况称为什么?此时子类对象还能执行父类中原来的方法吗?

答:这种情况称为方法的覆盖,此时,在子类中已不能找到父类原来的方法,它的内存位置已经被替代。

2、final修饰符可以用来修饰什么?被final修饰符修饰后有何特点?

答:final修饰符可用来修饰类、属性、方法和终结器。被final修饰符修饰的类没有子类。被final修饰符修饰的属性在程序整个执行过程中都不能改变。被final修饰符修饰的方法是功能和内部语句不能更改的最终方法。被final修饰符修饰的终结器(以称析构器——finalize()方法,是在对象被删除前进行收尾工作的方法)也是不能更改的。

3、试写出一个语句创建一个名为myPackage的包,这个语句应该放在程序的什么位置? package MyPackage;应该在程序第一句。

四、编程题。

1、打印出所有的“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153是一个“水仙花数”,因为153=13+53+33。

#include

int main(){ //所谓水仙花数是指一个三位数,其各位数字立方和等于该数

int i;

int a=0,b=0,c=0; //a表示百位上的数,b表示十位上的数,c表示个位上的数,printf("打印三位数的所有水仙花数\n");

for (i=100;i<1000;i++)

{

a=i/100;

b=i/10;

c=i;

if(i==a*a*a+b*b*b+c*c*c)

{

printf("%d\n",i);

}

}

return 0;

}

2、编程创建一个Cube类,在其中定义三个变量表示一个立方体的长、宽和高,定义一个构造方法对这三个变量进行初始化,然后定义一个方法求立方体的体积。创建一个对象,求给定尺寸的立方体的体积。

public class Box{

double length;//长

double width;//宽

double height;//高

public Box(){//构造函数

length=0;

width=0;

height=0;

}

public void setLength(double length){//设置长

this.length=length;

}

public double getLength(){//得到长

return length;

}

public void setWidth(double width){//设置宽 this.width=width;

}

public double getWidth(){//得到宽

return width;

}

public void setHeight(double height){//设置高 this.height=height;

}

public double getHeight(){//得到高

return height;

}

public double volumn(){//求容积

double volumnValue;

volumnValue=length*width*height;

return volumnValue;

}

public double surfaceArea(){//求表面积

double surfaceAreaValue;

surfaceAreaValue=length*width*2+width*height*2+height*length*2; return surfaceAreaValue;

}

利用for循环,计算1+2+34+5+…+100的总和public class Add{

public static void main(String[] args){ int n, result;

n = 100;

result = add1(n);

}

public static int add1(int n){

int i, result = 0;

for (i = 1; i <= n; i++) {

result += i;

}

return result;

}

}

利用while语句,计算1+3+5+7+9...+99的总和

public class Sum {

public static void main(String args[]){

int i,j,sum=0;r=1;

while(i<=20){

for(j=1;j<=i;j++){

r=r*i;

}

sum+=r;

i++;

}

}

}

相关文档