《java程序设计》题库

更新时间:2023-12-13 14:31:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

JAVA程序设计题库

《Java程序设计》

目录

选择题 ............................................................................................... 3 填空题 ............................................................................................ 10 问答题 ............................................................................................ 12 编程题 ............................................................................................ 13

第 2 页

《Java程序设计》

选择题

答题要求:单选题,每题只有一个正确答案,选择正确给分,不正确不给分。

1、 下面( A )数据类型可用于main()方法中传递的参数

A、String B、Integer C、Boolean D、Variant

2、以下的选项中能正确表示Java语言中的一个整型常量的是( B )

A、12. B、-20 C、1,000 D、4 5 6 3、下列的变量定义中,正确的是( D )

A、boolean b1=\ B、float x=6.6; C、byte i=200; D、double y;

4、在屏幕上显示的消息正确的语句是( A )

A、System.out.println(\ B、system.out.println(\ C、System.Out.Println(\ D、System.out.println('I am Java Expert');

5、下面( B )命令可用于编译Java程序

A、java B、javac C、appletviewer D、javadoc 6、Java编译器会将Java程序转换为( A )

A、字节码 B、可执行代码

C、机器代码 D、以上所有选项都不正确 7、以下字符常量中不合法的是( C )

A、'@' B、'&' C、\ D、'整'

8、以下的选项中能正确表示Java语言中的一个double型常量的是( C )

A、Float.MIN_VALUE B、1.8e-6F C、2.0 D、'abc'

9、以下的变量定义语句中,合法的是( C )。

A、float $_*5= 3.4F; B、byte b1= 15678; C、int $abc=5; D、int class=5;

10、在一个类中定义的成员变量和成员方法时,不允许( A )。

A. 两个成员变量名相同.

B. 成员变量与成员方法名相同. C. 两个成员方法名相同

D. 成员方法中的参数与成员变量名相同 11、下列叙述正确的是 ( B )

A. 在类中的构造方法的名字与类的名字相同, 而且不能重载 B.. 在类中的构造方法的名字与类的名字相同,但没有返回类型. C. 在类中的构造方法的名字与类的名字相同,而且有返回类型. D. 在类中的构造方法的名字与类的名字相同,而且不能初始化.

12、Java application中的主类需包含main方法,main方法的返回类型是什么?(A、int B、float C、double D、void

第 3 页

D )

《Java程序设计》

13、给出如下代码: class Test{ private int m; public static void fun() { // some code... } }

如何使成员变量m 被函数fun()直接访问?( C )

A、将private int m 改为protected int m B、将private int m 改为 public int m C、将private int m 改为 static int m D、将private int m 改为 int m

14、在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数个数、类型或顺序各不相同,传回的值也可以不相同。这种面向对象程序的特性称为(C )。

A、隐藏 B、覆盖 C、重载 D、Java不支持此特性 15、执行下面的程序,输出结果是( B )。 public class Test { int x= 12;

public void method(int x) { x+=x;

System.out.println(x); }

public static void main(String[] args){ Test t = new Test(); t.method(5); }}

A. 5 B. 10 C. 12 D. 17 E. 24

16、若在某一个类定义中定义有如下的方法: final void aFinalFunction( ); 则该方法属于( C)。 。

A. 本地方法. B. 解态方法. C. 最终方法 D. 抽象方法 17、下列叙述正确的是 ( D)

A. 子类可以继承父类的所有成员。

B.. 除了继承父类的成员以外,子类不可以创建自己的成员。 C. 当实例化子类时,父类的构造方法不被调用。 D. 子类只能继承父类的非私有成员。.

18、某java程序的类定义如下: public class MyClass extends BaseClass{ } 则该java源文件在存盘时的源文件名应为如下哪一种:( D )

A. myclass.java B. Myclass.java C. MYCLASS.java D. MyClass.java 19、给出如下代码: class A{ public A(){ System.out.print(\ }

第 4 页

《Java程序设计》

}

public class B extends A{ public B(){ System.out.print(\ } public static void main(String[ ] args){ new B( ); } }

程序的输出结果( A )

A、AB B、A C、B D、BA

20、以下哪个接口的定义是正确的?( D )。

A、 interface A

{ void print() { } ;} B、 abstract interface A { void print() ;}

C、 abstract interface A extends I1, I2 //I1、I2为已定义的接口 { abstract void print(){ };} D、 interface A { void print();}

21、下面选项中能把字符串转换成float类型的是?(B)

A. float value = new Float(str);

B. float value = Float.parseFloat(str); C. float value = Float.floatValue(str);

D. float value = (new Float()).parseFloat(str)

22、在某个类中存在一个方法:void getSort(int x),以下能作为这个方法的重载的声明的是( C )

A. public get (float x) B. int getSort(int y)

C. double getSort(int x,int y) D. void get(int x,int y)

23、下边程序运行的输出结果是( B )

class Base{ Base(){System.out.print(\}

public class Alpha extends Base { public static void main(String[] args){ new Alpha(); new Base(); } }

A、Base B、BaseBase C、程序编译失败 D、程序运行但没有任何输出 24、下列说法正确的是( C )。

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

第 5 页

《Java程序设计》

22. 对于下列描述,各写出一条语句完成要求的任务

(1)比较s1中的串和s2中的串的内容的相等性; ( s1.equals(s2) ; ) (2)用+=向串s1附加串; ( s1+=s2; ) (3)判断s1中串的长度; (s1.length(); )

23. 设x,y,max,min均为int型变量,x、y已赋值。用三目条件运算符求x、y的最大值和

最小值,并分别赋给变量max和min,这两个赋值语句分别是(max=a>b?a:b)和( min=a

int x = 5, y=5; y = ++x * - -y;

26. 在Java程序运行时,系统自动通过System类创建三个静态的I/O对象,它们是标准输入流对象( System.in )、标准输出流对象( System.out ) 和标准错误流对象( System.err )。

27. java中的异常处理通过5个关键字来实现:它们是try、catch、throw、throws和finally。进行异常监测的代码要放在try子句内:捕获异常需要使 ( catch )子句;在方法中宣布可能产生的异常应使用( throw)关键字。

28. 异常是一种运行时错误,在java中,异常是以对象的方法表示的,任何异常对象都是(Throwable)类或其子类的对象。

29. Java中,InputStream和OutputStream是以( 字节 )为数据读写单位的输入输出流的基类;Reader和Writer是以 ( 字符 )为数据读写单位的输入输出流的基类。 30. Java的异常处理模型以3种操作为基础:声明异常、抛出异常和捕捉异常。当程序语句导致错误时,包含语句的方法将创建异常对象并把它传递到系统,这个过程称为( 抛出异常 ),查找异常处理程序的过程称为( 捕捉异常 )。

31. 一般用( System.in)创建InputStream对象,表示从标准输入中获取数据。用( System.out)创建OutputStream对象,表示输出到标准输出设备中。

32. java把它能够识别的异常分为两大类:检查的和非检查的异常。非检查的异常是(Error)类和RuntimeException类的实例,它代表程序不必处理严重系统错误;检查异常是(Exception)类的子类,它代表程序应该而且能够处理的错误。

33. 将以( .java )为扩展名的Java源文件编译成字节码文件,字节码文件的扩展名为 (.class) 。 34. Java语言中的浮点数默认类型是(double或者双精度浮点型)。

35. Java语言以(类)为程序的基本单位,它是具有某些共同特性实体的集合,是一种抽象的概念。 36. 代码System.out.println(076)的输出结果是(62)。 37. 数组初始化分为(动态数组)和(静态数组)两种。

39. 类中的(构造)方法是一个特殊的方法,其名称与类名相同。 40. 在面向对象方法中,类的实例被称为(对象)。

第 11 页

《Java程序设计》

问答题

答题要求:按采分点给分,语言能符合采分点表达的含义。

1. 什么是变量?什么是常量?变量名和变量的数据类型各有什么意义?

答:常量是一个某种基本数据类型的数值(1分),变量是内存中一个存放数据的存储单元(1分)。变量名表示存放该变量的存储单元地址(1分),变量的数据类型表示该变量占用内存的大小(2分)。 2. 怎样构成一个合法的Java变量名?

答:Java要求变量名只能由英文字母、美元符号$或下划线_构成,且不能以数字开头,中间也不能有空格。(3分)不能以关键字作为变量名(1分)区分大小写(1分)。 3、简述构造方法的特殊性以及它的主要作用

答:构造方法的特殊性在于:该方法没有返回数据类型,创建对象时系统自动调用。该方法的作用(3分):为创建的对象分配存储空间,为对象的属性赋初始值。(2分) 4、类的主要修饰符有哪些?类的成员变量的修饰符有哪些?

答:类的修饰符有缺省、public、abstract、final等;(2分)成员变量的修饰符有public、private、缺省、protected、static、final等。(3分)

5、类包括哪些部分?类体包括哪些部分?方法定义包括哪些部分?方法声明包括哪些部分? 答:类包括类声明和类体两部分(2分)。类体包括变量定义和方法定义两部分(1分)。

方法定义包括方法声明和方法体两部分(1分)。方法声明包括方法名和返回类型两部分(1分)。

6.类和接口有什么不同

答:一个类只能有一个父类,但是可以有多个接口。接口中只能声明方法,不允许给出方法体,方法体要在实现接口的类中给出。(3分)在默认状态下接口中所有变量和方法都是public。所以当一个类实现了某个接口以后,便可以使用接口的所有变量和方法。(2分) 7.能不能将一个类既声明为abstract又声明为final?

答:不能。abstract类可能包含抽象方法,抽象方法只有方面声明,没有方法体。所以抽象类不能直接使用,只能通过继承,在子类中给出抽象方法的方法体。final类不能被继承,没有子类。所以,他们是矛盾的。

8.如果某子类和它的父类不在同一个包中,采用什么权限修饰符才能访问父类的成员?不加任何修饰符行不行?

答:需要用public或protected修饰(3分)。不行,不加任何修饰符的成员只能在同一个包中访问(2分)。

9.Java 是否支持多重继承,如何实现多重继承关系?

答:在Java程序中,通过类的定义只能实现单重继承(3分),但通过接口的定义可以实现多重继承关系。(2分)

10、字符串类String 和StringBuffer类有何不同?

答:从根本上来说应该是stringBuffer在做字符长度变动的时候将继续使用原来的内存空间,不新分配.(2分)而String的长度一旦变动,就如上面的例子一样,其内部将分配新的内存空间。(3分) 11.流是指数据的流动。输入流的数据从哪里流到哪里?输出流中的数据从哪里流到哪里?

答:对于输入流,数据从文件或输入设备流动到程序。(2分)对于输出流,数据从程序流动到文件或输出设备。(3分)

第 12 页

《Java程序设计》

程序分析题

1. 如果程序代码为:

public class Demo{ public static void main (String[ ] args){ String a=args[1]; System.out.println(a); } }

进行编译后,执行以下命令将得到什么结果?java Demo a1 a2 a3 答:a2 (5分)

2、现有一个类定义如下,请回答问题:

class Employee{ String name; int age;

double wage; static int No=0;

Employee(String a1,int a2,double a3){ name=a1; age=a2; wage=a3; No++; } }

在使用该类时,已使用下面语句生成了该类的对象: Employee e1,e2;

e1=new Employee(\王劲\e2=new Employee(\张山\问题:

1)e2.name,e2.age,e2.wage的值各是什么 ?

2)生成对象e1,e2后,e1.No值为多少 能否通过类名做前缀引用属性No和age? 答:1)(张山;30;3800.0) ;(3分)

2)(2; 可以访问No,不能访问age)(2分) 3、阅读以下程序,写出运行结果 。 class Q1{

public static void main(String args[ ]){ double d=1.23; Dec dec=new Dec( ); dec.decrement(d); System.out.println(d); }

classs Dec{

第 13 页

《Java程序设计》

public void decrement(double decMe){ decMe = decMe - 0.1; } }

答:1.23 (5分)

4、分析下列程序的执行结果: class Value{

public int i = 15; }

public class Test{

public static void main(String argv[]){ Test t = new Test(); t.first(); }

public void first(){ int i = 5;

Value v = new Value(); v.i = 25; second(v, i); System.out.println(v.i); }

public void second(Value v, int i){ i = 0; v.i = 20;

Value val = new Value(); v = val;

System.out.println(v.i + \ } }

答: 15 0 20

5、分析下列程序的执行结果: public class Test{

public static void main(){ int i = 1, j = 10; do{

if(i++ > --j) continue; }while(i < 5);

System.out.println(\ } }

结果是: 答:i=5,j=6

6、阅读程序后回答问题 。 public class ContinueTest {

第 14 页

《Java程序设计》

public static void main( String args[]) {

char c='i';

for (int n=6; n < 11; n++ ) {

if ( n == 8 ) continue; System.out.print(\ } } }

问题:1)程序的输出结果是什么?

2)若将if中的continue语句替换为break语句,输出结果是什么?

答:1)i j k l;(2分)

2)i j(3分)

7.分析下列程序的功能是: import java.io.File;

public class FileExercise{

public static void main(String[] args){ File fileObject = new File(\ if(fileObject.exists()){ System.out.println(\ }else{ System.out.println(\ } } }

答:测试程序所在的目录是否包含一个名为Sally.txt的文件。如果存在则输出There is a file named Sally.txt;如果不存在则输出There is no file named Sally.txt。 8. 下面程序输出结果为:

姓名:张三 性别:女 年龄:20

姓名:李四 性别:女 年龄:33

class Person{ String name; char sex; int age;

Person(String pName,char pSex,int pAge){//以下代码完成类属性赋值 ; ; ; }

public String toString(){

String s = (\姓名:\性别:\年龄:\ ; /返回s的值 }

第 15 页

《Java程序设计》

}

public class CreatePerson{

public static void main(String[] args){

Person p1 = new Person(\张三\男',20);

以下代码完成定义对象p2,各参数值分别为:李四,女,28 ; p1.sex = '女'; //将p1的sex属性改为女

System.out.println(p1.toString()); //输出p1的各个属性 //以下代码将p2的age改为33 ; //以下代码输出p2的各个属性 ; } }

答:1、name=pName(2分) sex=pSex(2分) age=pAge(2分)

2、return s(2分)

3、Person p2=new Person(“李四”,’女’,28) (2分) 4、p2.age=33(2分)

5、p2.toString( ) (2分) 9.分析程序的运行结果 public class Course{ private String cNumber; private String cName; private int cUnit;

public Course(String number,String name,int unit){ cNumber=number;cName=name;cUnit=unit; }

public void printCourseInfo(){

System.out.println (\课程号:\课程名:\学分:\} }

class CourseTest{

public static void main(String[]args){ Course c;

c=new Course(\c.printCourseInfo(); } }

答:课程号:001 课程名:Java 学分:3(5分)

第 16 页

《Java程序设计》

10. 下面的程序运行结果如下,请将代码填充完整: name:Tom salary:5000 name:Jerry salary:3000

public class Employee{ String name; int salary;

Employee(String n,int s){

__ __; //给变量name赋值 __ __; //给变量salary赋值 }

Employee(String n){

name = n; //给变量name赋值 }

void print(){

System.out.println(\ System.out.println(\ }

void setSalary(int s){

__ __; 给变量salary赋值 }

public static void main(String[] args){

Employee e1 = new Employee(\ Employee e2 = new Employee(\ e1.print();

e2.setSalary(3000); e2.print(); } }

答: 1、 name=n; //给变量name赋值 salary=s;

2、 salary=s; 11.分析程序的运行结果

public class Father{

String name,address,tel; int age;

public Father(String name,int age){ this.name=name;this.age=age; }

void out(){ System.out.print(\姓名:\

第 17 页

《Java程序设计》

System.out.print(\年龄:\ }

void outOther(){ System.out.print(\家庭住址:\ System.out.print(\电话:\ } }

class Son extends Father{ String school;

public Son(String name,int age){ super(name,age); }

void out(){ super.out(); super.outOther(); System.out.println (\学校:\ }

public static void main(String args[]){ Son son=new Son(\ son.address=\金水区\ son.school=\九中\ son.tel=\ son.out(); } }

答:姓名:Tom 年龄:15 家庭住址:金水区 电话:66123456 学校:九中12.阅读如下所示的3个JAVA类,分析它们之间的关系,写出运行结果。 class SuperClass{ int x;

SuperClass(){ x = 3;

System.out.println(\ }

void doSomething(){

System.out.println(\ } }

class SubClass extends SuperClass{ int x;

SubClass(){ super(); x = 5;

第 18 页

5分) ( 《Java程序设计》

System.out.println(\ }

void doSomething(){ super.doSomething();

System.out.println(\

System.out.println(\ } }

public class Inheritance{

public static void main(String[] args){ SubClass subC = new SubClass(); subC.doSomething(); } }

答:运行结果:

in SuperClass:x=3(2分) in SubClass:x=5(2分)

in SuperClass.doSomething()(2分) in SubClass.doSomething()(2分) super.x=3 sub.x=5(2分) 13.阅读如下程序,写出运行结果。

class StaticDemo {

static int x; int y;

public static int getX() { return x; }

public static void setX(int newX) { x=newX; } public int getY() {return y;}

public void setY(int newY) {y=newY; } }

public class MainDemo {

public static void main(String[] args) { System.out.println(\静态变量x=\ StaticDemo a=new StaticDemo(); StaticDemo b=new StaticDemo(); a.setX(1); a.setY(2);

第 19 页

《Java程序设计》

b.setX(3); b.setY(4); System.out.println(\静态变量a.x=\ System.out.println(\实例变量a.y=\ System.out.println(\静态变量a.x=\ System.out.println(\实例变量a.y=\ } }

答:运行结果:

静态变量x=0(2分) 静态变量a.x=3(2分) 实例变量a.y=2(2分) 静态变量a.x=3(2分) 实例变量a.y=4(2分)

14. 观察下面程序的运行结果,注意try语句中产生的异常与catch参数的匹配。 public class Test2{ static int a = 3,b = 0;

static String c[] = {\数组元素c[0]\ public static void main(String[] args){ try{

System.out.println(a); System.out.println(a/b);

System.out.println(c[b]);//若上条语句产生异常,本语句将不被运行 }

catch(ArithmeticException e){

System.out.println(\捕捉到一个算术异常\ }

catch(ArrayIndexOutOfBoundsException e){

System.out.println(\捕捉到一个数组下标越界异常\ }

catch(Exception e){

System.out.println(\捕捉到一个系统异常\ }

finally{

System.out.println(\程序结束\ } } }

答:运行结果: 3(2分)

捕捉到一个算术异常(2分) 程序结束(2分)

第 20 页

《Java程序设计》

编程题

答题要求:按采分点给分,要求代码编写有一定的规范性,完成采分点功能区代码则给分,未完成该采分点的,不给分。

1. 编写出一个程序,其中创建了数组abc,该数组的五个元素分别为“北京奥运会”五个汉字。要求程序运行后,能将五个元素显示在同一行上,并显示该数组的长度。(共10分) 编码规范2分;类和主方法的定义2分;数组的声明和赋值2分,汉字输出2分(注意:字符输出时一定要转为字符串后输出,没有转换的扣1分),数组长度输出2分。 答:

public class ShowChar{

public static void main (String[ ] args){ }

char ch[] = {'北','京','奥','运','会'};

System.out.println(\System.out.println(ch.length);

}

2. 设计一个动物类,它包含动物的基本属性。例如名称、大小、重量等,并设计相应的动作,例如跑、跳、走等。

编码规范2分;类定义2分;成员变量定义3分,成员函数定义3分。

答:public class Animal{ private String name; private double weight; private int length; privateString sex; public void run(){

System.out.println(\ }

public void jump(){

System.out.println(\ }

public void walk(){

System.out.println(\ } }

3. 定义一个环形类Ring,包含属性外半径outerRadius,内半径innerRadius,颜色,生成Get和Set方法,并定义一个方法求环形的面积getArea,定义一个含有三个参数的构造方法和一个参数为0的构造方法。

第 21 页

《Java程序设计》

编码规范2分;类的成员变量的定义3分;类的成员函数的定义5分; 答:public class Ring {

private double outerRaduis; private double innerRaduis; private String Color; public double getArea() {

return Math.PI*this.outerRaduis*this.outerRaduis- Math.PI*this.innerRaduis*this.innerRaduis; }

public Ring(double r1,double r2,String c) {

this.outerRaduis=r1; this.innerRaduis=r2; this.Color=c; }

public Ring() {

this.outerRaduis=50; this.innerRaduis=40; this.Color=\}

}

4. 设计一个三角形类,它包含三角形基本属性底和高,以及求三角形面积的方法。要求从键盘接收三角形的底和高的值,然后输出三角形的面积。(提示:可以使用键盘扫描类Scanner或命令行参数接收三角形的底和高的值)

编码规范2分;类的成员变量的定义2分;类的成员函数的定义3分;主方法的实现3分。 答:import java.util.*;

class Reta {

private double di; private double high;

public Reta(double di, double high) { this.di = di; this.high = high; }

public double area() { try {

return 0.5 * this.di * this.high; } catch (Exception e) {

第 22 页

《Java程序设计》

}

e.printStackTrace(); return 0; }

}

public class Ret{

public static void main(String[] args){ }

Scanner sc = new Scanner(System.in); double x = sc.nextDouble(); double y = sc.nextDouble(); Reta reta = new Reta(x,y); double area = reta.area() ; System.out.print(area);

}

5. 有三个字符串String s1= \ String s2= \ String s3= \,编写程序找出其中最大者。

编码规范2分;类定义2分;主方法的实现6分。 答:

public class max1 {

public static void main(String args[]) {

String s1= \ String s2= \ String s3= \ String s;

if(s1.compareTo(s2)<0) s=s2; else s=s1;

if(s.compareTo(s3)<0) s=s3;

Systrm.out.println(\ } }

6. 编写一个程序,设定一个有大小写字母的字符串String s1= \,先将字符串的大写字符输出,再将字符串中的小写字符输出。注:利用StringBuffer完成。 编码规范2分;类定义2分;主方法的实现6分。 答:

public class out {

第 23 页

《Java程序设计》

}

public static void main(String args[]) { String str=\ StringBuffer bufup=new StringBuffer(); StringBuffer buflow=new StringBuffer(); for(int i=0; i

7. 设定一个有大小写字母的字符串String s1=\和一个查找字符,使用类 String方法IndexOf()

来判断在该字符串中该字符出现的次数。

编码规范2分;类定义2分;主方法的实现6分。 答:

import java.util.*;

public class StringNum{

public static void main(String args[]){ Scanner input = new Scanner(System.in); System.out.println(\请输入一个字符串:\ String s1 = input.nextLine(); System.out.println(\请输入一个待查找的字符:\ String c1 = input.nextLine(); char[] cArr = c1.toCharArray(); char c = cArr[0]; int num = 0; int index; int i = 0; while(i < s1.length()){

第 24 页

《Java程序设计》

} }

index = s1.indexOf(c, i); if(index == -1){ break; }else{ i = index+1; num++; } }

System.out.print(\字符\的个数为\

8. 编写一个程序,要求:

1)在当前目录下创建目录Personal

2)将自己的学号、姓名、性别写入到目录Personal下的文件Info.txt中 3)将文件中的数据显示在屏幕上

编码规范2分;类定义2分;主方法的实现6分(其中题目要求的每个功能实现各2分)。 答:

import java.io.*; import java.util.*; public class FileExercise3{

public static void main(String[] args){

//create folder

String folderName = \String fileName = \File f=new File(folderName); f.mkdir(); //write file

PrintWriter outputStream = null;

try{

outputStream = new PrintWriter(new FileOutputStream(folderName + \ }catch(FileNotFoundException e){

System.out.println(\ System.exit(0); }

outputStream.println(\学号:0921404\ outputStream.println(\姓名:安文琪\

第 25 页

outputStream.println(\性别:男\

本文来源:https://www.bwwdw.com/article/s4e5.html

Top