《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 页