《java语言程序设计课后习题内容答案.doc》由会员分享,可在线阅读,更多相关《java语言程序设计课后习题内容答案.doc(7页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、习题 23使用“= =”对相同内容的字符串进行 比较,看会产生什么样的结果。 答:首先创建一个字符串变量有两种方式:String str = new String(“abc“); String str = “abc“; 使用“= =”会因为创建的形式不同而产生 不同的结果: String str1 = “abc“; String str2 = “abc“; System.out.println(str1= =str2); /trueString str1 = new String(“abc“); String str2 = “abc“; System.out.println(str1= =st
2、r2); /falseString str1 = new String(“abc“); String str2 = new String(“abc“); System.out.println(str1= =str2); /false 因此自符串如果是对内容进行比较,使用 equals 方法比较可靠。 String str1 = “abc“; String str2 = “abc“; System.out.println(str1= =str2); /trueString str1 = new String(“abc“); String str2 = “abc“; System.out.prin
3、tln(str1.equals(str2); /trueString str1 = new String(“abc“); String str2 = new String(“abc“); System.out.println(str1.equals(str2); /true5编写一个程序,把变量 n 的初始值设置 为 1678,然后利用除法运算和取余运算把 变量的每位数字都提出来并打印,输出结 果为:n=1678。n 的每位数字是 1,6,7,8。若 n 为任意值呢? 法一:public class Exercise5public static void main(String args)in
4、t n=1678;int unit;int decimal;int hundred;int thousand;int count;thousand=n/1000;count=n%1000;hundred=count/100;count=count%100;decimal=count/10;count=count%10;unit=count;System.out.println(“1678 包含的数 字分别是:“+thousand+,+hundred+,+decimal+, +unit); /如果 n 为任意值import java.io.*; public class Exercise51pu
5、blic static void main(String args) throws IOExceptionSystem.out.print(“请输入一个整数:“);InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bfReader=new BufferedReader(isStream);String input=bfReader.readLine();int length=input.length()-1;int n=new Integer(input).intValue();while(le
6、ngth=0) int divisor=(int) Math.pow(10,length); length=length-1;int output=n/divisor;n=n%divisor;System.out.print(output+“,“); 法二:(建议使用)public class Exercise5public static void main(String args)int n=1678;int unit;int decimal;int hundred;int thousand;thousand=n/1000%10;hundred=n/100%10;decimal=n/10%1
7、0;unit=n%10;System.out.println(“1678 包含的数 字分别是:“+thousand+,+hundred+,+decimal+, +unit); /如果 n 为任意值import java.io.*; public class Exercise51public static void main(String args) throws IOExceptionSystem.out.print(“请输入一个整数:“);InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bf
8、Reader=new BufferedReader(isStream);String input=bfReader.readLine();int length=input.length()-1;int n=new Integer(input).intValue();while(length=0) int divisor=(int) Math.pow(10,length); length=length-1;int output=n/divisor%10;System.out.print(output+“,“);6.编写 Java 程序,接受用户输入的 1-12 之间的整数,若不符合条件则重新输入
9、, 利用 switch 语句输出对应月份的天数。import java.io.*; public class Exercise6public static void main(String args) throws IOExceptionint n;doSystem.out.print(“请输入 1-12 之 间的整数:“);InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bfReader=new BufferedReader(isStream);String input=bfReader.r
10、eadLine();n=new Integer(input).intValue();while(n12|nintArrayj)min=intArrayj;System.out.println(“最大值为:“+max);System.out.println(“最小值为:“+min);/从小到大排序int temp;for(int i=0;iintArrayj)temp=intArrayi;intArrayi=intArrayj;intArrayj=temp;/将排序后的结果打印System.out.println(“排序后的数组为:“);for(int i=0;imax) max=arrayij
11、;System.out.println(“4*4 数组的最大 值“+max); 15创建一个程序把输入字符串的大小互 换。import java.io.*; public class Exercise15public static void main(String args) throws IOExceptionSystem.out.print(“请输入字符串:“);InputStreamReader isStream=new InputStreamReader(System.in);BufferedReader bfReader=new BufferedReader(isStream);St
12、ring input=bfReader.readLine();char change=input.toCharArray();for(int i=0;iinput.length();i+)if (Character.isUpperCase(changei)changei=Character.toLowerCase( changei); elsechangei=Character.toUpperCase( changei);System.out.print(“转化后的字符串:“);for(int i=0;iinput.length(); i+)System.out.print(changei);
13、System.out.println();16用一段代码检测两个 double 型的数 x 和 y 是否相等。代码应能分辨这两个数是 否是无穷大或 NaN.如果它们相等,代码能 正确显示这个数。public class Exercise16public static void main(String args)double x=2.0/0.0;double y=0;if(x=Double.POSITIVE_INFINITY|y=Do uble.POSITIVE_INFINITY)System.out.println(“x 或 y 无穷大!“); if(Double.isInfinite(x)|
14、Double.isInf inite(y)System.out.println(“x 或 y 无穷大!“); /不要用/(x=Double.NaN|y=Double.NaN) /对于 NaN 的检测,不能使用 Double 的NaN /常量,而必须用 Double.isNaN 方法if(Double.isNaN(x)|Double.isNaN(y) System.out.println(“x 或 y 非法!“); 17.编写一个方法,把命令行输入的字符串 转化为相应的 int 值。思考:如果字符串 不能代表整数时该怎么办?import java.io.*; public class Exerc
15、ise17public static void main(String args) throws NumberFormatExceptionint array=new intargs.length;for(int i=0;iargs.length;i+)trynew Integer(argsi).intValue();catch(Exception e)continue;arrayi=new Integer(argsi).intValue();for(int i=0;iargs.length;i+)System.out.print(arrayi+“*“); 19创建一个有两个方法的程序。标准的
16、 main()方法初始化两个变量,一个是 String 型,另一个是 StringBuffer 型,它 们将作为第二个方法的输入参数,这个方 法将把一个字符串连接在两个变量后面。public class Exercise19 public static String connect(String str,StringBuffer strBuf)String con=str+strBuf+“123“;return con; public static void main(String args)String str=“this is a String! “;StringBuffer strBuf
17、=new StringBuffer(“this is a StringBuffer! “);String con=connect(str,strBuf);System.out.println(“连接后的字 符串为:“+con); 20创建一个简单的成绩单程序,帮助老 师评估学生的表现。该程序用 double 数组 存放成绩来计算平均成绩。 /输入 120 个学生成绩,以“”号结 束import java.io.*; public class Exercise20 public static void main(String args) throws IOException int i=0; d
18、ouble score=new double20; String str=“; do System.out.print(“请输入第 “+i+“个学生的成绩:“);InputStreamReader input=new InputStreamReader(System.in); BufferedReader reader=new BufferedReader(input); str=reader.readLine(); try double scoreTemp=new Double(str).doubleValue(); scorei=scoreTemp; i+; catch(Exception e) continue; while(!str.equals(“#“); for(int j=0;ji;j+) System.out.print(scorej+“/“ ); double scoreSum=0; for(int j=0;ji;j+)scoreSum=scoreSum+scorej; System.out.println(“输入的“+i+“个 同学平均成绩是:“+scoreSum/i);