(完整word版)Java-2实用教程(第5版)习题解答 下载本文

5.\的值是true吗?

6.\的值是多少?\的值是多少?

String 对象的字符序列索引位置从0开始。String对象调用方法indexOf(String str)从当前String对象的字符序列的0索引位置开始检索首次出现str的字符序列的位置,并返回该位置。如果没有检索到,该方法返回的值是-1。 7.执行Integer.parseInt(\会发生异常吗?

1.不是。\是。 2.4和3。

3.false和true。 4.负数。 5.是true。 6.3和-1。

7.会发生NumberFormatException异常。 二、选择题

1.下列哪个叙述是正确的?a

A. String 类是final 类,不可以有子类。 B. String 类在java.util包中。 C. \的值是false . D. \的值是true String类在java.lang包中;”abc”==”abc”的值是true,字符常量存储在常量池中,他们的引用是相同的;而”abc”.equals(“Abc”)的值是false,区分大小写的。

2.下列哪个表达式是正确的(无编译错误)?b A. int m =Float.parseFloat(\ B. int m =Short.parseShort(\C. byte m =Integer.parseInt(\

D. float m =Float.parseDouble(\

parseXXX(String s)方法是将由“数字”字符组成的字符序列转化成对应的数据类型。 A中不能将float类型赋值给int C中不能讲int赋值给byte

D中Float类不存在parseDouble方法

3.对于如下代码,下列哪个叙述是正确的?b A. 程序编译出现错误。

B. 程序标注的【代码】的输出结果是bird。 C. 程序标注的【代码】的输出结果是fly。 D. 程序标注的【代码】的输出结果是null。

public class E{

public static void main(String[] args){ String strOne=\ String strTwo=strOne; strOne=\

System.out.println(strTwo); } }

4.对于如下代码,下列哪个叙述是正确的?a A. 程序出现编译错误。

B.无编译错误,在命令行执行程序:“java E I love this game”,程序输出this。 C.无编译错误,在命令行执行程序:“java E let us go”,程序无运行异常。 D.无编译错误,在命令行执行程序:“java E 0 1 2 3 4 5 6 7 8 9”程序输出3。 public class E {

public static void main (String args[]) { String s1 = args[1]; String s2 = args[2]; String s3 = args[3]; System.out.println(s3); } }

B选项输出的实际是game,因为下标从0开始;

C选项发生数组下标越界异常,因为并没有给arg[3]赋值

5.下列哪个叙述是错误的?c

A. \的值是true。

B.\返回的字符串是@hello@。 C. new Date(1000)对象含有的时间是公元后1000小时的时间 D. \是正确的字符串常量。

String对象调用public boolean matches(String regex)方法可以判断当前String对象的字符序列是否和参数regex指定的正则表达式匹配。\\d代表0-9中的任何一个数字。所以A选项是匹配的。

replaceAll(String regex,String replacement)方法返回一个新的String对象,把当前String对象的字符序列中所有和参数regex匹配的子字符序列,用参数replacement的字符序列替换后得到字符序列。

B选项中将1-9数字序列替换为@,返回的字符串就是@hello@。

C选项1000表示公元后1000毫秒的时间,公元时间是1970-01-01 0时。

1.A。2.C。3.B。4.D。5.C。 三、阅读程序 1.【代码】:苹果。 2.【代码】:Love:Game。 3.【代码1】:15。【代码2】:abc我们。 4.【代码】:13579。 5.【代码】:9javaHello。

6.属于上机实习程序,解答略。 7.属于上机实习程序,解答略。

四、编程题

1.字符串调用public String toUpperCase()方法返回一个字符串,该字符串把当前字符串中的小写字母变成大写字母;.字符串调用public String toLowerCase()方法返回一个字符串,该字符串把当前字符串中的大写字母变成小写字母。String类的public String concat(String str)方法返回一个字符串,该字符串是把调用该方法的字符串与参数指定的字符串连接。编写一个程序,练习使用这3个方法。

2.String类的public char charAt(int index)方法可以得到当前字符串index位置上的一个字符。编写程序使用该方法得到一个字符串中的第一个和最后一个字符。

3.计算某年、某月、某日和某年、某月、某日之间的天数间隔。要求年、月、日使用main方法的参数传递到程序中(见例子4)。 4.编程练习Math类的常用方法。

5.编写程序剔除一个字符串中的全部非数字字符,例如,将形如“ab123you”的非数字字符全部剔除,得到字符串“123”(参看例子10)。

6.使用Scanner类的实例解析字符串:\数学87分,物理76分,英语96分\中的考试成绩,并计算出总成绩以及平均分数(参看例子14)。

1.public class E {

public static void main (String args[ ]) { String s1,s2,t1=\ s1=t1.toUpperCase(); s2=t1.toLowerCase(); System.out.println(s1); System.out.println(s2); String s3=s1.concat(s2); System.out.println(s3); } }

2. public class E {

public static void main (String args[ ]) { String s=\

char cStart=s.charAt(0);

char cEnd = s.charAt(s.length()-1); System.out.println(cStart); System.out.println(cEnd); } }

3. import java.util.*;

public class E {

public static void main (String args[ ]) { int year1,month1,day1,year2,month2,day2; try{ year1=Integer.parseInt(args[0]); month1=Integer.parseInt(args[1]); day1=Integer.parseInt(args[2]); year2=Integer.parseInt(args[3]); month2=Integer.parseInt(args[4]); day2=Integer.parseInt(args[5]); }

catch(NumberFormatException e) { year1=2012; month1=0; day1=1; year2=2018; month2=0; day2=1; }

Calendar calendar=Calendar.getInstance(); calendar.set(year1,month1-1,day1); long timeYear1=calendar.getTimeInMillis(); calendar.set(year2,month2-1,day2); long timeYear2=calendar.getTimeInMillis();

long 相隔天数=Math.abs((timeYear1-timeYear2)/(1000*60*60*24)); System.out.println(\年\月\日和\

year2+\年\月\日相隔\相隔天数+\天\ } }

4. import java.util.*;

public class E {

public static void main (String args[ ]) { double a=0,b=0,c=0; a=12; b=24;

c=Math.asin(0.56); System.out.println(c); c=Math.cos(3.14);