一、填空题(每空1分,共10分)
1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、 编译生成字节码 和 解释运行字节码 。
2.在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占
用 2 字节内存空间。
3.若x = 5,y = 10,则x < y和x >= y的逻辑值分别为 true 和 false 。
4.设 x = 2 ,则表达式 ( x + + )/3 的值是 1 。
5.定义类的保留字是 class ,定义接口的保留字是interface 。
6.Java中用于定义小数的关键字有两个:float 和 double ,后者精度高于前者。
7.著名计算机科学家沃斯曾提出过一个经典的公式:数据结构 + __算法__ = 程序。
8.Java源程序的扩展名是.java,经过编译后的程序的扩展名是 .class 。
二、单项选择题:(在每小题的四个备选答案中选出一个正确答案要,并将其号码填在题干上的括号内。每小题2分,本大题共40分)
l、关于选择结构下列哪个说法正确? ( )
A.if语句和 else语句必须成对出现
B.if语句可以没有else语句对应
C.switch结构中每个case语句中必须用break语句
D.switch结构中必须有default语句
2、while循环和 do…while循环的区别是: ( )
A.没有区别,这两个结构任何情况下效果一样
B.while循环比 do…while循环执行效率高
C.while循环是先循环后判断,所以循环体至少被执行一次
D.do…while循环是先循环后判断,所以循环体至少被执行一次
3、关于 for循环和 while循环的说法哪个正确? ( )
A.while循环先判断后执行,for循环先执行后判断。
B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果
C.两种循环任何时候都不可以替换
D.两种循环结构中都必须有循环体,循环体不能为空
4、void的含义: ( )
A.方法没有返回值 B. 方法体为空
C.没有意义 D. 定义方法时必须使用
5、return语句: ( )
A.只能让方法返回数值 B.方法都必须含有
C.方法中可以有多句return D.不能用来返回对象
6、下列说法哪个正确?
A.不需要定义类,就能创建对象
B.对象中必须有属性和方法
C.属性可以是简单变量,也可以是一个对象
D、属性必须是简单变量
7、关于方法main()的说法哪个正确?( )
A.方法main()只能放在公共类中
B main()的头定义可以根据情况任意更改
C.一个类中可以没有main()方法
D.所有对象的创建都必须放在main()方法中
8、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )。
A. java B. .class
C. html D. .exe
9、设 x = 1 , y = 2 , z = 3,则表达式 y+=z--/++x 的值是( )。
A. 3 B. 3. 5
C. 4 D. 5
10、如下哪个是Java中有效的关键字()
A、name B、hello C、false D、good
11、定义一个类,必须使用的关键字是( )
A、public B、class C、interface D、static
12、定义一个接口必须使用的关键字是( )
A、public B、class C、interface D、static
13、下面哪一个import命令可以为我们提供编写网络应用程序的类()
A、import java.sql.*; B、import java.util.*;
C、import java.io.*; D、import java.net.*;
14、以下哪项不是计算机操作系统中所用到的系统( )
A) DOS B) Symbin C) Windows D) Unix
15、若需要定义一个类域或类方法,应使用哪种修饰符?( )
A、static B、package C、private D、public
16、下列哪些语句关于Java内存回收的说明是正确的? ( )
A、程序员必须创建一个线程来释放内存
B、内存回收程序负责释放无用内存
C、内存回收程序允许程序员直接释放内存
D、内存回收程序可以在指定的时间释放内存对象
17、在编写Java Applet程序时,需在程序的开头写上( )语句。
A、import java.awt.* ; B、import java.applet.Applet ;
C、import java.io.* ; D、import java.awt.Graphics ;
18、以下为变量赋初值的方式中哪项是错误的( )
A.int a=4 , b , c=5; B.int a ; a=3; C.int a=b=c=3; D.int a=3;
19、下列哪项运算符不属于逻辑运算符( )
A.! B. <= C. && D. ||
20、以下由 for 语句构成的循环执行的次数是( B )。
for ( int i = 0; true ; i++) ;
A. 有语法错,不能执行 B. 无限次
C. 执行1次 D. 一次也不执行
三、程序分析题 (本大题共10分,5个值每个值2分) 阅读下列程序,将输出结果写到空白处。
1、
public class TestArray
{
public static void main(String args[ ]){
int i , j ;
int a[ ] = { 5,9,6,8,7};
for ( i = 0 ; i < a.length-1; i ++ ) {
int k = i;
for ( j = i ; j < a.length ; j++ )
if ( a[j]<a[k] ) k = j;
int temp =a[i];
a[i] = a[k];
a[k] = temp;
}
for ( i =0 ; i<a.length; i++ )
System.out.print(a[i]+" ");
System.out.println( );
}
}
请将程序输出结果下在下方:
5 6 7 8 9 _________________________________
四、简答题(本题共两小题,每题10分,共20分)
1、简述Java中异常处理的机制?
答:首先Java的异常是面向对象的。一个Java的Exception是一个描述异常情况的对象.当出现异常情况时,一个Exception对象就产生了,并放到异常的成员函数里。
Java的异常处理是通过5个关键词来实现的:try,catch,throw,throws和finally。
1.异常处理:在Java语言的错误处理结构由try,catch,finally三个块组成。其中try块存放将可能发生异常的Java语言,并管理相关的异常指针;catch块紧跟在try块后面,用来激发被捕获的异常;finally块包含清除程序没有释放的资源,句柄等。不管try块中的代码如何退出,都将执行 finally块。
2.抛出异常:Java语言可以不在方法中直接捕获,而用throw语句将异常抛给上层的调用者。Throw语句就是来明确地抛出一个异常;首先你必需得到一个Throwable的实例句柄,通过参数传到catch中,或者采用new操作符来创建一个。
2、什么是继承?
答:通过必要的说明能够实现某个类无需重新定义就拥有另一个类的某些属性和方法,并把这种关系称为继承,先定义的类称为父类,后定义的类称为子类,并且允许多层的继承关系。
五、程序设计题 (本题共一小题,共20分)
1、按以下要求编写程序
(1) 创建一个Rectangle类,添加width和height两个成员变量
(2) 在Rectangle中添加两种方法分别计算矩形的周长和面积
(3) 编程利用Rectangle输出一个矩形的周长和面积
解答:
public class Rectangle {
float width, height;
public Rectangle(float width, float height) {
this.width = width;
this.height = height;
}
public float getLength(){
return (this.width + this.height) * 2;
}
public float getArea(){
return this.width * this.height;
}
public static void main(String [] args) {
Rectangle rect = new Rectangle(10, 20);
System.out.println("周长是:" + rect.getLength());
System.out.println("面积是:" + rect.getArea());
}
}