`
sealbird
  • 浏览: 586232 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自测一下你的Java掌握得怎么样

    博客分类:
  • JAVA
阅读更多
引用
自测一下你的Java掌握得怎么样?

====================================================================

注:

以下是我为北京理工大学计算机学院2008级学生设计的Java试题,感兴趣的朋友不妨自我测试一下,看看你能得多少分。

目前我正在批改学生的试卷,此工作完成后,过几天我会发布试题点评以及对考试结果的分析,其中会有一些比较值得关注的东西。

                                                                                                                    金旭亮

建议朋友先自己做,然后,点击以下链接看:

本套试题参考答案及点评

另外,CSDN的博客存在着不少BUG,如果使用FireFox浏览此网页,可能看不到网页上的试题,换用IE就好了。

====================================================================


 


北京理工大学计算机科学技术学院 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 分)
 

说明:
       ( 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 把书还了,再次显示图书馆中图书信息。

 

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


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/bitfan/archive/2010/12/13/6072690.aspx
分享到:
评论

相关推荐

    如何测试自己是否掌握了Java

    通过以上这些方面的自测,你可以对自己的Java技能有一个较为全面的认识。当然,除了理论知识外,实践操作也是非常重要的一部分。建议多参与实际项目,不断积累经验,这样才能真正成为Java领域的高手。

    数据结构自测题(java版)

    本套自测题集是专为Java编程语言设计的,涵盖了数据结构的基础到高级主题,适合计算机专业的在校学生进行考试复习。以下是各章自测题及详细答案的概述: 1. **数据结构绪论**: 这一部分通常会介绍数据结构的基本...

    java自测项目

    【Java 自测项目详解】 Java 是一种广泛使用的高级编程语言,以其“一次编写,到处运行”的跨平台特性闻名。这个自测项目旨在提供一个实践平台,帮助开发者加深对 Java 语言的理解,提升编程技能。通过参与这样的...

    JAVA自测题,相当于sun认证考试

    总之,Java自测题对于准备Java认证考试的人来说是一份宝贵的资源,它可以帮助你巩固所学,提高编程能力和解决问题的技巧。结合实际项目经验,不断练习和探索,你将能够更好地掌握这门强大的编程语言。

    JAVA在线考试自测系统,毕设源码+sql

    【标题】:“JAVA在线考试自测系统,毕设源码+sql” 【描述】:“JAVA在线考试自测系统,毕设源码+sql,无密码,注意sql语句的导入” 这个项目是一个基于Java开发的在线考试自测系统,通常用于毕业设计或教学实践...

    掌握Java的标准 引导Java学习

    为了真正掌握Java,你需要深入了解并熟练应用其标准和关键概念。以下是一些学习Java的重要知识点: 1. **语法**:Java语法是基础,它规定了如何编写有效的代码。你应该能够熟练地识别和修正语法错误,例如括号不...

    java自测题

    【Java自测题详解】 Java是一种广泛使用的面向对象的编程语言,对于初学者来说,掌握其...通过这些自测题,初学者可以对自己的Java知识掌握程度有一个初步的评估。在学习过程中,不断实践和理解这些概念是非常重要的。

    Java从入门到项目实战【配套资源】自测题目.rar

    本资源"Java从入门到项目实战【配套资源】自测题目.rar"为Java初学者和开发者提供了一套完整的自测题目,旨在巩固基础,提升实践能力,并为面试准备提供便利。以下是基于该资源涵盖的知识点的详细讲解: 1. **基础...

    Java正则表达式测试工具

    这款工具的出现使得这个过程变得更加便捷。 首先,我们需要了解Java运行环境JRE(Java Runtime Environment)。JRE是Java应用程序的执行环境,它包含了Java虚拟机(JVM)、Java核心类库以及其他必要的组件。在描述...

    Java 实现 时序预测 ARIMA模型 DEMO

    ARIMA(自回归整合滑动平均模型)是一种广泛...通过这个DEMO,开发者不仅可以学习ARIMA模型的基本概念,还能掌握在Java环境中实现这一模型的实践技巧。这对于任何需要对时间序列数据进行预测的项目都是非常有价值的。

    java程序员需要掌握的知识点

    ### Java程序员需要掌握的知识点 在当今竞争激烈的IT行业中,作为一名Java程序员,掌握全面而深入的技术知识至关重要。根据提供的信息,我们将重点分析几个关键的知识领域,这些领域在百度、阿里巴巴和京东等大公司...

    JAVA程序设计自测题库及答案

    通过这份“JAVA程序设计自测题库及答案”,你可以测试自己对上述知识点的掌握程度,找出薄弱环节并进行针对性的学习。同时,解题过程也是巩固和深化理解的好方法。不断实践和练习,将使你成为Java编程的专家。

    ARIMA模型销售预测JAVA版

    ARIMA模型,全称为自回归整合滑动平均模型(Autoregressive Integrated Moving Average),是时间序列分析中的一个重要工具,尤其在销售预测、...理解并掌握ARIMA模型的原理和JAVA实现,对于提升数据分析能力非常有益。

    java单元自测.pdf

    Java单元自测主要涵盖以下几个核心知识点: 1. **Java源程序和字节码**:Java源程序文件的扩展名是`.java`,编译后生成的字节码文件扩展名为`.class`。Java源代码通过Java编译器(javac)转化为字节码,字节码可以在...

    java 测试自我学习

    在自我学习Java测试时,我们需要掌握以下几个核心知识点: 1. JUnit:JUnit是Java中最流行的单元测试框架,它允许开发者编写可重复运行的测试用例。通过断言(assertions)来验证方法的输出是否符合预期。例如,...

    java串口通信实例,经过测试使用Java实用源码整理learns

    通过学习这个Java串口通信实例,你不仅可以掌握串口通信的基本概念,还能了解到如何在Java中实现串口通信,这对于开发涉及硬件交互的应用非常有价值。记得在实际操作时,要根据自己的硬件环境和需求调整参数,确保...

    软件工程测试用例实验示例代码 Java学习资料

    - 掌握JUnit框架的使用,编写和运行测试。 - 理解如何设计和组织测试代码以实现高效的测试覆盖。 - 了解如何通过测试来暴露和修复软件中的问题。 - 实践软件工程的流程,从测试角度理解项目的完整生命周期。 总的来...

    Java单元测试(基础)

    在Java编程中,单元测试是确保代码质量的重要环节。它允许开发者验证代码的各个部分是否按预期工作,有助于尽早...实践是掌握这些概念的关键,尝试为自己的代码编写测试,你会发现它能显著提高代码的稳定性和可靠性。

    java程序自动重新启动

    在Java编程中,有时我们需要设计一个程序来实现自动重启的功能,比如在系统出现异常或者更新后需要自动恢复服务。在给定的标题"java程序自动重新启动"中,我们可以理解这是一个实现了自动重启逻辑的Java程序。描述...

Global site tag (gtag.js) - Google Analytics