北京理工大学 java 试题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

================================================ 北京理工大学计算机科学技术学院 2010 -2011 学年第一学期Java技术与应用考试试题(A)班级学号姓名成

绩 _

说明:

(1)本次考试为开卷考试,允许学生携带相关的书籍及其他纸面资料,但不

得使用计算机、智能手机等电子设备。

(2)考试时间为2小时。

(3)简答题和编程题写在试卷后所附的答题纸上,标明题号。

(4)特设卷面整洁分,凡卷面不整洁导致代码及文字难于识别者,扣

除5分。

(5)部分题目没有标准答案,只要言之成理,均可给分。

*********************************************************************

一、判断题(正确的描述打钩,错误的打叉,每题1分,共10分)

1.一个Java源文件中只能定义一个公有类,并且类名必须与文件名一致。

()

2.通过在程序中引入“import javax.swing.*;”语句,就可以使

用javax.swing包中的所有类(包括其嵌套的子包中的类)。()

3.J2SE的功能是J2ME的一个子集。()

4.Java字节码只有被装入到内存中之后,才能被执行。()

5.Swing是一套GUI组件,采用了新的思路设计Java应用程序的界面,它

完全地替换掉了原有的AWT。()

6.在编程时编写过多的注释,会使编译之后生成的程序文件变大。()

7.Java Applet可运行于浏览器中,这意味着浏览器本身就可以直接执

行Applet程序。()

8.JDK 5.0增加的枚举类型(enum)是一个原始数据类型。()

9.Java规定所有的方法都必须放到某个类中,不存在独立于类的方法。()

10.面向对象软件系统设计师们经常用到的UML是一种编程语言。()

二、简答题(请将答案写到答题纸上,注明题号。每题4分,共40分)

1.现代编程语言有很多种分类方法,以下是我们常见的一种划分方法:

(1)“编译型”编程语言:比如C,程序源码必须经过编译才能运行;

(2)“解释型”编程语言:这种类型的语言(比如早期的Basic)通常都拥有一个交互环境,用户输入一句代码计算机就执行一句代码。

Java属于上述哪种类型?如果你认为Java不属于上述任何一种类型,那么它是不是属于另外一种编程语言类型?

2.Java中有两个关键字:void和null,它们有什么区别?

3.简述“类(class)”、“类库(class library)”、“包

(package)”、“jar文件”这四个概念间的联系。

4.面向对象的程序在运行时会创建多个对象,这些对象之间通常可以相

互“发送消息”,谈谈你对“对象之间发送消息”这句话的理解,并编写几句Java示例代码展示对象之间发送消息的具体编程实现方法。

5.加法运算符“+”可以施加于原始数值类型(比如int)的变量,但我们发

现一些对象类型(比如Integer)的变量,也支持“+”运算:

Integer v1 = 100;

Integer v2 = 200;

System.out.println(v1 + v2 ); // 输出: 300

这看上去好象Integer类型重载了“+”运算符,一些编程语言比如C++可以重载运算符,但Java本身并不支持这一特性。依你的理解或猜测,Java采用什么方法处理两个Integer对象直接“+”的语句?

6.在一个很大的循环(比如循环100000次)中,如果需要进行大量字符串的

连接操作,通常人们会使用StringBuffer(或StringBuilder)而不

是String类型,请解释这么做的理由。

7.现有两个长度不同的数组:

int[] arr1 = new int[10];

int[] arr2 = new int[100];

那么以下语句能通过编译吗?

arr1 = arr2;

如果你认为可以通过编译,得到这个结论的依据是什么?如果不能通过编译,你认为其原因是什么?

8.请看以下代码:

double d1 = 100.1;

double d2 = 1001/10;

System.out.println(d1 == d2); // 输出: false

明明d1与d2是相等的,为什么程序运行时会输出一个让人意外的结果:false?

9.当使用多个catch语句捕获多个异常时,Java规定捕

获Exception的catch语句必须排在最后,如下所示:

try { …… }

catch(ClassCastException ex){ …… }

catch(NumberFormatException ex){ …… }

catch(Exception ex){ …… } // 此句必须放在最后!

为什么会有这个限制?谈谈你的理解。

10.请看以下示例代码:

String s1 = "Hello";

String s2 = "Hello";

System.out.println(s1 == s2); //输出: true

String s3 = new String("Hello");

String s4 = new String("Hello");

System.out.println(s3 == s4); //输出: false

请解释一下为什么上述代码中“System.out …”两句代码输出完全不同的结果?

三编程题(共50分)

说明:

相关文档
最新文档