北京理工大学Java 技术与应用考试试题.docx

上传人:b****2 文档编号:1576928 上传时间:2023-05-01 格式:DOCX 页数:11 大小:57.91KB
下载 相关 举报
北京理工大学Java 技术与应用考试试题.docx_第1页
第1页 / 共11页
北京理工大学Java 技术与应用考试试题.docx_第2页
第2页 / 共11页
北京理工大学Java 技术与应用考试试题.docx_第3页
第3页 / 共11页
北京理工大学Java 技术与应用考试试题.docx_第4页
第4页 / 共11页
北京理工大学Java 技术与应用考试试题.docx_第5页
第5页 / 共11页
北京理工大学Java 技术与应用考试试题.docx_第6页
第6页 / 共11页
北京理工大学Java 技术与应用考试试题.docx_第7页
第7页 / 共11页
北京理工大学Java 技术与应用考试试题.docx_第8页
第8页 / 共11页
北京理工大学Java 技术与应用考试试题.docx_第9页
第9页 / 共11页
北京理工大学Java 技术与应用考试试题.docx_第10页
第10页 / 共11页
北京理工大学Java 技术与应用考试试题.docx_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

北京理工大学Java 技术与应用考试试题.docx

《北京理工大学Java 技术与应用考试试题.docx》由会员分享,可在线阅读,更多相关《北京理工大学Java 技术与应用考试试题.docx(11页珍藏版)》请在冰点文库上搜索。

北京理工大学Java 技术与应用考试试题.docx

北京理工大学Java技术与应用考试试题

  

北京理工大学计算机科学技术学院 2010 -2011 学年第一学期

Java 技术与应用考试试题 ( A )

班级           学号            姓名            成绩   _     

 

说明:

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

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

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

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

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

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

 

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

 

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

 

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

(     )

 

2.        通过在程序中引入 “importjavax.swing.*;” 语句,就可以使用 javax.swing 包中的所有类(包括其嵌套的子包中的类)。

 (     )

 

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

(     )

 

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

(     )

 

5.        Swing 是一套 GUI 组件,采用了新的思路设计 Java 应用程序的界面,它完全地替换掉了原有的 AWT 。

(     )

 

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

(     )

 

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

(     )

 

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

(     )

 

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

(     )

 

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

(     )

 

二、简答题(请将答案写到答题纸上,注明题号。

每题 4 分,共 40 分)

 

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

       ( 1 ) “ 编译型 ” 编程语言:

 比如 C ,程序源码必须经过编译才能运行;

       ( 2 ) “ 解释型 ” 编程语言:

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

      Java 属于上述哪种类型?

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

 

2.        Java 中有两个关键字:

 void 和 null ,它们有什么区别?

 

3.        简述 “ 类( class ) ” 、 “ 类库 (classlibrary)” 、 “ 包( package ) ” 、 “jar 文件 ” 这四个概念间的联系。

 

4.        面向对象的程序在运行时会创建多个对象,这些对象之间通常可以相互 “ 发送消息 ” ,谈谈你对 “ 对象之间发送消息 ” 这句话的理解,并编写几句 Java 示例代码展示对象之间发送消息的具体编程实现方法。

 

5.        加法运算符 “+” 可以施加于原始数值类型(比如 int )的变量,但我们发现一些对象类型(比如 Integer )的变量,也支持 “+” 运算:

 

   Integerv1=100;

   Integerv2=200;

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

 300

 

       这看上去好象 Integer 类型重载了 “+” 运算符,一些编程语言比如 C++ 可以重载运算符,但 Java 本身并不支持这一特性。

依你的理解或猜测, Java 采用什么方法处理两个 Integer 对象直接 “ + ” 的语句?

 

6.        在一个很大的循环(比如循环 100000 次)中,如果需要进行大量字符串的连接操作,通常人们会使用 StringBuffer (或 StringBuilder )而不是 String 类型,请解释这么做的理由。

 

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

 

   int[]arr1=newint[10];

   int[]arr2=newint[100];

   

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

 

   arr1=arr2;

 

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

如果不能通过编译,你认为其原因是什么?

8.   请看以下代码 :

 

   doubled1=100.1;

   doubled2=1001/10;

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

 false

 

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

 false ?

 

9.        当使用多个 catch 语句捕获多个异常时, Java 规定捕获 Exception 的 catch 语句必须排在最后,如下所示:

 

   try{ …… }

   catch(ClassCastExceptionex){ …… }

   catch(NumberFormatExceptionex){ …… }

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

 

   为什么会有这个限制?

谈谈你的理解。

 

10. 请看以下示例代码:

 

   Strings1="Hello";

   Strings2="Hello";

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

 true

 

   Strings3=newString("Hello");

   Strings4=newString("Hello");

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

 false

 

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

 

三 编程题(共 50 分)

 

说明:

       ( 1 )编程题共分为两组:

简单编程题与综合编程题。

       ( 2 )请在试卷后所附的答题纸上书写程序代码,注明题号。

       ( 3 )要求代码书写规范,并添加相应的注释。

 

第 1 部分:

简单编程题(每题 5 分,共 35 分)

 

1.        编写一个程序,用户输入任何一个字符串之后,反转输出其结果。

其运行结果如下所示:

       请输入一个字串:

我在学习 Java 程序设计

       您输入了:

计设序程 avaJ 习学在我

 

 

2.        编写一个方法,它接收一个 int 数组作为参数,外界只需调用一次这个方法,可以马上得到这个数组的最大值、最小值和平均值信息。

 

3.        请编写一个方法,其声明如下:

 

    publicstaticint[]getRandomizeNumbers(intbegin,intend,intcount)

 

     此方法将生成一个数组 , 包容 count 个 [begin,end) 范围内的随机整数 .

 

4.        数学中,一个复数包容着一个实部( Real )和一个虚部( Imaginary )。

请设计一个 Complex 类,它的实例代表一个复数,并且用户可以这样使用它:

 

    // 创建一个实部为 3 ,虚部为 4 的复数

   Complexobj=newComplex(3,4);

   //Complex 对象具备按照数学中复数的习惯表示形式输出的能力。

   System.out.println(obj); // 输出:

 3+4i

 

5.        A 、 B 、 C 是三个类,它们之间有着以下的组合关系( 图 1 ):

 

图 1

 

       请编写一个示例程序,这个程序可以完成对 A 对象的深复制( deepcopy )。

 

6.        我们可以调用 Integer.parseInt() 方法将一个字串转换为 int 类型,但当要转换的字串不是一个有效的数字时(比如 “a123” ),此方法会抛出一个 NumberFormatException 。

你需要编写一个程序,当程序运行时让用户从键盘上输入一个字串,代表考试成绩,然后调用 Integer.parseInt() 方法将其转换为 int类型,并给出是否通过的提示:

       请输入您的考试成绩:

 76

       恭喜您通过了考试!

       由于无法控制用户的输入,因此可能出现以下两种出错情况:

(1)     用户输入了一个无法转换为 int 类型的字符串。

(2)     用户输入的数字不在 [0,100] 区间内。

       请设计一个自定义的异常类 InvalidScoreException ,当出现上述出错情景时能抛出此异常对象。

要求程序运行时,对用户的错误输入能给以明确的提示。

 

 

7.   设计一个类,实现以下的状态机( 图 2 ):

 

图 2

 

       提示:

       图 2 说明,当使用 new 关键字创建此类对象时,对象居于 Created 状态(这是初始状态),这时,调用对象的 open() 方法,对象转换到 Opened 状态,再调用对象的 close() 方法,对象转入“ Closed ”状态,这是终止状态。

 

       第 2 部分:

 综合编程题( 15 分)

 

       一个图书管理系统的面向对象设计方案如 图 3 所示:

 

 

图 3

 

      Book 代表书,有 “Name (书名) ” 、 “Author (作者名) ” 、 “Price (单价) ” 和 “IsBorrowed (是否被借 出) ” 四个属性。

       类 Library 代表图书馆,其内部字段 books 用于保存图书馆中所有的书。

它的 FindBook() 方法依据书名查找同名的书(可能有多本)。

另一个 Get AllBooks() 方法获取馆藏所有书的详细信息。

       类 Reader 代表读者, Name 字段代表其姓名,读者可以 “ReturnBook (还书) ” 和 “BorrowBook (借书) ” 。

       请编程完成以下工作:

1.              用 Java 编程实现上述 3 个类。

( 12 分)

2.              在 main() 方法内书写以下测试代码:

( 3 分)

(1)     创建一个 Library 类的实例 myLittleLibrary ,其中预存有以下 3 本书:

             Java 程序设计,张三著, 45 元

            Java 核心技术,李四著, 50 元

            Java 程序设计,王五著, 38 元

(2)     显示图书馆中所有图书的信息,输出样例如下:

            Java 程序设计,张三著, 45 元,可借

            Java 核心技术,李四著, 50 元,可借

            Java 程序设计,王五著, 38 元,未还

(3)     创建一个 Reader 类的实例 oneBeautifulGirl ,她先在 myLittleLibrary 中查找《 Java 程序设计》

(4)     oneBeautifulGirl 借了张三著的那一本书。

现在显示图书馆中所有图书的信息 .

(5)     oneBeautifulGirl 把书还了,再次显示图书馆中图书信息。

 

注意:

       在满足题目要求实现功能的前提下,你可以依据自己的考虑修改系统设计方案(比如给某个类添加或修改类的方法,甚至是添加新的类)。

部分答案:

第一大题:

1. 正确

2. 错误,无法使用子包的类

3. 错误,j2se比j2me庞大

4. 正确

5. 正确

6. 错误

7. 错误,需要JRE

8. 错误,是引用类型,所有的枚举都隐式继承自java.lang.Enum类

二大题

1. java属于解释形,java程序都是伪编译的

2. void定义用于方法无返回值需要传递给方法调用者,null说明变量未指向类实例变量。

3. class是OOP模拟现实世界的最小单位,类库是一堆类的集合,包是为了防止类重名问题的,jar是把一堆.class文件打了个压缩包(便于发布)

4. Sysout.out.println(this);

5. 包装器类做的自动转换

6. String指向的字符串是常量,StringBuffer或者StringBuilder是变长字符串处理类

7. 可以,变量指向实例

8. 因为d2的结果是两个int类型数据1001和10运算的结果,结果还是int类型

9. 因为Exception是所有异常类的超类,任何一种异常抛出时使用instanceof判断时都符合条件,所以可以捕获所以的异常,那就必须放在最后一位。

10. S1和s2是编译器优化的结果,指向的是一份数据,s3和s4对应内存的两份数据

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2