《Java基础入门》 - 课后习题

博学谷——让IT教学更简单,让IT学习更有效

10、已知 sb 为 StringBuffer 的一个实例,且 sb.toString() 的值为 \, 则执行sb. reverse()后,sb.toString()的值为_”edcba_”___。

二、判断题

1、String对象和StringBuffer对象都是字符串变量,创建后都可以修改。错

2、用运算符“==”比较字符串对象时,如果两个字符串的值相同,结果为true。错 3、System类中的currentTimeMillis()方法返回一个long类型的值。对

4、Date、Calendar以及DateFormat类都位于java.util包中。错 分别java.util.Date java.util.Calendar java.text.DateFormat 5、String类的方法 replace (CharSequence srt1, CharSequence srt2)返回一个新的字符串,它是通过用srt2替换此字符串中出现的所有 srt1得到的。对 三、选择题。

1、先阅读下面的程序片段:C

String str = \ String[] arr = str.split(\ System.out.println(arr.length);

程序执行后,打印的结果是几?

A、2个 B、 3个 C、4个 D、 5个

2、以下都是Math类的常用方法,其中用于计算绝对值的方法是哪个?C

A、ceil() B、 floor() C、 abs() D、random() 3、Random对象能够生成以下哪种类型的随机数?D

A、int B、string C、double D、A和C

4、String s = \则s.substring(3,4)返回的字符串是以下选项中的哪个?C A、cd B、de C、d D、e

5、假若indexOf()方法未能找到所指定的子字符串,则返回以下选项中的哪个?C

A、 false B、 0 C、-1 D、以上答案都不对 6、要产生[20,999]之间的随机整数可以使用以下哪个表达式?B

A.(int)(20+Math.random()*97) B. 20+(int)(Math.random()*980) C. (int)Math.random()*999 D. 20+(int)Math.random()*980

7、以下Math类的方法中,-4.4通过哪个方法运算后,结果为-5.0?D(C)

A. round()四舍五入 B. min() C. floor() 小于参数最大整数 D. ceil()大于参数最小整数 8、下面的程序段执行后,输出的结果是以下哪个选项?A

StringBuffer buf=new StringBuffer(\ buf.insert(7,\

System.out.println(buf.toString());

A、Beijing@2008 B、@Beijing2008 C、Beijing2008@ D、Beijing#2008 9、阅读下面的程序:A

public class test {

public static void main(String args[]) { int i;

float f = 2.3f;

double d = 2.7;

i = ((int)Math.ceil(f)) * ((int)Math.round(d));

博学谷——让IT教学更简单,让IT学习更有效

System.out.println(i); } }

程序执行后,运行结果为以下哪个选项?

A、 9 B、 5 C、6 D、 6.1 10、先阅读下面的程序片段:B

String str1=new String(\String str2=new String(\

StringBuffer str3=new StringBuffer(\

对于上述定义的变量,以下表达式的值为true的是哪个?

A、 str1==str2; B、str1.equals(str2); C、str1==str3; D、以上都不对 四、程序分析题。

阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通 过,请说明原因。

代码一:5 7.0 -8.0 -5 8.1 -6.1

public class A {

}

public static void main(String[] args) { }

System.out.println(Math.abs(-5)); System.out.println(Math.ceil(6.6)); System.out.println(Math.floor(-7.8)); System.out.println(Math.round(-4.9)); System.out.println(Math.max(8.1, -8.1)); System.out.println(Math.min(6.1, -6.1));

代码二:str.length():15 str.charAt(0):d lastIndexOf(m):\substring(2,4):fe indexOf(g):5

public class B {

public static void main(String[] args) { }

String s = \System.out.println(\System.out.println(\

System.out.println(\System.out.println(\System.out.println(\

博学谷——让IT教学更简单,让IT学习更有效

}

五、简答题

1、String和StringBuffer有什么区别? String类是不可变类,即字符串值一旦初始化后就不可能改变。StringBuffer是可变字符串类,类似String的缓冲区,可以修改字符串的值。

2、Date和Calender类有什么区别和联系?

Date类用来表示某个特定的瞬间,能够精确到毫秒。而在实际应用中,往往需要把一个日期中的年、月、日等信息单独返回进行显示或处理,这个类中的大部分方法都已被标记过时。Calender类基本取代了Date类,该类中定义了一系列用于完成日期和时间字段操作的方法。

Calendar的getTime()方法,getTime()返回一个表示Calendar时间值的Date对象,同时Calendar有一个setTime(Date date)方法,setTime()方法接收一个Date对象,将Date对象表示的时间值设置给Calendar对象,通过这两个方法就可以完成Date和Calendar对象之间的转换。

六、编程题

请按照题目的要求编写程序并给出运行结果

1、 编写一个程序,实现字符串大小写的转换并倒序输出,要求如下

1)使用for循环将字符串“HelloWorld”从最后一个字符开始遍历。

2)遍历的当前字符如果是大写字符,就使用toLowerCase()方法将其转换为小写字符,反之则使用toUpperCase() 方法将其转换为大写字符

3)定义一个StringBuffer对象,调用append()方法依次添加遍历的字符,最后调用StringBuffer对象的toString()方法,并将得到的结果输出。

2、 计算从今天算起,100天以后是几月几号,并格式化成xxxx年x月x日的形式打印出来。

提示:

1)调用Calendar类的add()方法计算100天后的日期 2)调用Calendar的getTime() 方法返回Date类型对象

2)使用FULL格式的DateFormat对象,调用format() 方法格式化Date对象

3、利用Random类来产生5个20~50之间的随机整数。

提示:[n-m](n、m均为整数,n

第7章 集合类

一、填空题

1、JDK中提供了一系列可以存储任意对象的类,统称为 。

2、在创建TreeSet对象时,可以传入自定义的比较器,自定义比较器需要实现 接口。

3、Collection有两个子接口分别是List和Set,List集合的特点是 ,Set集合的特点是 。 4、使用Iterator遍历集合时,首先需要调用 方法判断是否存在下一个元素,若存在下一个元素,则调用 方法取出该元素。

5、集合按照存储结构的不同可分为单列集合和双列集合,单列集合的根接口是 ,双列集合的根接口是 。

6、Map集合中的元素都是成对出现的,并且都是以 、 的映射关系存在。

7、Iterator有一个子类,不仅可以对集合进行从前向后遍历,还可以从后向前遍历,该类是 。

博学谷——让IT教学更简单,让IT学习更有效

8、List集合的主要实现类有 、 ,Set集合的主要实现类有 、 Map集合的主要实现类有 、 。 9、Map集合中存储元素需要调用 方法,要想根据该集合的键获取对应的值需要调用 方法。 10、java.util包中提供了一个专门用来操作集合的工具类,这个类是 ,还提供了一个专门用于操作数组的工具类,这个类是 。

二、判断题

1、Set集合是通过键值对的方式来存储对象的。

2、集合中不能存放基本数据类型,而只能存放引用数据类型。

3、如果创建的TreeSet集合中没有传入比较器,则该集合中存入的元素需要实现Comparable接口。 4、使用Iterator迭代集合元素时,可以调用集合对象的方法增删元素。

5、LinkedList在内部维护了一个双向循环链表,每一个元素节点都包含前一个元素节点和后一个元素节点的引用。

三、选择题

1、要想保存具有映射关系的数据,可以使用以下哪些集合?(多选) A、ArrayList B、TreeMap C、HashMap D、TreeSet 2、Java语言中,集合类都位于哪个包中?

A、java.util B、java.lang C、java.array D、java.collections 3、使用Iterator时,判断是否存在下一个元素可以使用以下哪个方法? A、next() B、hash() C、hasPrevious() D、hasNext() 4、关于foreach循环的特点,以下说法哪些是正确的?(多选) A、foreach循环在遍历集合时,无需获得容器的长度

B、foreach循环在遍历集合时,无需循环条件,也无需迭代语句 C、foreach循环在遍历集合时非常繁琐

D、foreach循环的语法格式为:for(容器中元素类型 临时变量 :容器变量)。 5、在程序开发中,经常会使用以下哪个类来存储程序中所需的配置? A、HashMap B、TreeSet C、Properties D、TreeMap 6、使用Enumeration遍历集合时,需要使用以下哪些方法?(多选) A、hasMoreElements() B、nextElement() C、next() D、hashNext()

7、要想集合中保存的元素没有重复并且按照一定的顺序排列,可以使用以下哪个集合? A、LinkedList B、 ArrayList C、hashSet D、TreeSet

8、下列哪些说法是正确的?(多选)

A、LinkedList集合在增删元素时效率较高 B、ArrayList集合在查询元素时效率较高

C、HashMap不允许出现一对null键null值 D、HashSet集合中元素可重复并且无序

9、以下哪些方法是LinkedList集合中定义的?(多选) A、getLast() B、getFirst() C、remove (int index) D、next() 10、获取单列集合中元素的个数可以使用以下哪个方法? A、length() B、size() C、get(int index) D、add(Object obj) 四、分析题

阅读下面的程序,分析代码是否能编译通过,如果能编译通过,请列出运行的结果。如果不能编译通过,请说明原因。 代码一:

import java.util.*;

联系客服:779662525#qq.com(#替换为@)