




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
自测一下你的Java掌握得怎么样?=注:以下是我为北京理工大学计算机学院2008级学生设计的Java试题,感兴趣的朋友不妨自我测试一下,看看你能得多少分。目前我正在批改学生的试卷,此工作完成后,过几天我会发布试题点评以及对考试结果的分析,其中会有一些比较值得关注的东西。 金旭亮= 北京理工大学计算机科学技术学院 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 int10; int arr2 = new int100; 那么以下语句能通过编译吗? 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 分) 说明: ( 1 )编程题共分为两组:简单编程题与综合编程题。 ( 2 )请在试卷后所附的答题纸上书写程序代码,注明题号。 ( 3 )要求代码书写规范,并添加相应的注释。 第 1 部分:简单编程题(每题 5 分,共 35 分) 1. 编写一个程序,用户输入任何一个字符串之后,反转输出其结果。其运行结果如下所示: 请输入一个字串:我在学习 Java 程序设计 您输入了:计设序程 avaJ 习学在我 2. 编写一个方法,它接收一个 int 数组作为参数,外界只需调用一次这个方法,可以马上得到这个数组的最大值、最小值和平均值信息。 3. 请编写一个方法,其声明如下: public static int getRandomizeNumbers(int begin, int end, int count) 此方法将生成一个数组 , 包容 count 个 begin,end) 范围内的随机整数 . 4. 数学中,一个复数包容着一个实部( Real )和一个虚部( Imaginary )。请设计一个 Complex 类,它的实例代表一个复数,并且用户可以这样使用它: / 创建一个实部为 3 ,虚部为 4 的复数 Complex obj = new Complex(3,4); /Complex 对象具备按照数学中复数的习惯表示形式输出的能力。 System.out.println(obj); / 输出: 3+4i 5. A 、 B 、 C 是三个类,它们之间有着以下的组合关系( 图 1 ): 图 1 请编写一个示例程序,这个程序可以完成对 A 对象的深复制( deep copy )。 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 把书还了,再次显示图书馆中图书信息。 注意: 在满足题目要求实现功能的前提下,你可以依据自己的考虑修改系统设计方案(比如给某个类添加或修改类的方法,甚至是添加新的类)。 企业 一个德国中型银行的IT部门 职位 JAVA程序员,中高级 大家看看是不是比国内的相同职位的面试要简单. 问题 非技术类 请描述什么是你理想的一天工作日? 你认为大学所学的对你的职业生涯有多大帮助? 你最大的技术上的成就 你最大的非技术上的成就 如果要建立一个大型超市,要修多少停车位. 技术综合类 你上一个公司JAVA架构,有什么优点,缺点,如何改进 考察 JUnit, HttpUnit, Struts, Apache Tomcat的熟悉程度 考察对 development and build process
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 抵押车辆担保借款合同书4篇
- 2025年人间诗歌赏析题目及答案
- 2025年度吊车租赁及现场施工协调服务合同范本
- 2025二手房买卖合同修订版:智能家居设施交易
- 四川省南充市2024-2025学年八年级下学期期末历史试题 (含答案)
- 铁路局网络安全考试题库及答案
- 2025年河北省衡水市辅警考试题库(附答案)
- 环境保护设备操作指南标准模板操作规程明确版
- 课程培训课件包括什么
- 个人用品供应链优化协议
- 红楼梦(英文版)
- 蘑菇和木耳(课件)六年级上册科学青岛版
- 〈药品召回管理办法〉培训
- 甘肃华夏文明简介课件
- 房屋建筑学-墙和基础-砌块墙构造课件
- 工程项目投资与融资完整全套课件
- 输电线路智能间隔棒在线监测技术
- 贸易经营类企业生产安全事故应急预案
- 绘本教学故障鸟
- 《月下过小修净绿堂试吴客所饷松萝茶》赏析
- 数据中心负荷计算方法
评论
0/150
提交评论