Java第2版-习题参考答案.doc_第1页
Java第2版-习题参考答案.doc_第2页
Java第2版-习题参考答案.doc_第3页
Java第2版-习题参考答案.doc_第4页
Java第2版-习题参考答案.doc_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

习题参考答案Java程序设计实用教程(第2版)第1章 绪论1.1 (1)简单性Java对系统软、硬件要求低;也比较容易学习。(2)面向对象Java是纯面向对象的语言。(3)分布性Java是面向网络的语言;支持数据分布和操作分布。(4)鲁棒性说明Java的健壮性很好,不会轻易造成系统崩溃。(5)安全性在防止非法入侵方面表现突出。(6)体系结构中立可以在任意的处理器上运行,也可在不同的平台上运行。(7)可移植性采用Java虚拟机机制,体现Java最初的开发理念,可跨平台运行。(8)解释型Java解释器直接对 Java字节码进行解释执行,在单机上运行时速度较慢。(9)高性能由于Java字节码的设计,使得它能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。用Java编写的程序在网络上运行时,其运行速度快。(10)多线程在Java中内置了对多线程的支持,使用多线程机制提高了程序性能,可以充分利用CPU。(11)动态性Java自身的设计使得它更适合于不断发展的环境,在Java类库中可以自由地加入新的方法和实例变量,而不会影响用户应用程序的执行。1.2 Java在语法中取消了C/C+中具有的不安全的特性,如取消了指针,使得非法访问被杜绝。用户不可能造成内存分配错误,也用不着专门提防可能出现的内存漏洞。1.3 主要是由于Java程序可以方便地被移植到网络上的不同机器。另外,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。1.4 对象是类的特例。1.5 略。1.6 略。第2章 绪论2.1 略。2.2 略。2.3 进行SET PATH设置是为了让系统找到Java.exe、Javac.exe在什么文件夹中;SET CLASSPATH设置的作用是查找类路径变量的。2.4 Java程序被分为两类,一类是Java Application程序,另一类是Java Applet程序。Java Application程序是完整的程序,程序中有main()方法是其显著标志,仅需要解释器来解释运行。Java Applet程序中没有main()方法,它不能独立运行,它是嵌入到HTML网页(Web页面)中的非独立程序,必须依靠Web浏览器内部包含的Java解释器来解释运行。2.5 第一步,使用某种编辑器编写程序源代码;第二步,将源程序编译为字节码文件,第三步,执行。2.6 请参考例2.1和例2.2。2.7 请参考例2.9。2.8 略。第3章 Java语言基础3.1 合法的变量名:$Ustate news AddMyNum _B2 变量1 addMyNum abc 数int非法的变量名:A=b byte 3ABC abc 3.146 -0xab4 -3e1 k*j3.2 20 false false true 6 03.3 a=2 b=13.4 y=2.0将程序中的double改为float,其他不变是不行的。因为,x=2.0后面没有F作为后缀,是默认为double型数据的。3.5 图案1源程序:/第3章习题5图案1,程序名:X03_051_菱形五星.javapublic class X03_051_菱形五星public static void main(String args)int m,k,zx=20,Ceng=4;/Ceng是上三角的层数,zx是为了使图案居中的空格数for(m=1;m=10;m+) System.out.println();for(m=1;m=Ceng;m+)for(k=1;k=zx-m;k+) System.out.print( );/引号中有2个空格for(k=1;k=1;m-)for(k=1;k=zx-m;k+) System.out.print( );/引号中有2个空格for(k=1;k= 2; m-) for (k = 1; k = zx - m; k+)System.out.print( );/ 引号中有2个空格for (k = 1; k = 2 * m - 1; k+)System.out.print();System.out.println();for (m = 1; m = Ceng; m+) for (k = 1; k = zx - m; k+)System.out.print( );/ 引号中有2个空格for (k = 1; k 1 & m =1;m-)for(k=1;kzx-m;k+)System.out.print( );for(k=1;k=2*m-1;k+)System.out.print();System.out.println();for(m=2;m=Ceng;m+)for(k=1;kzx-m;k+)System.out.print( );for(k=1;k= 1; m-) for (k = 1; k zx - m; k+)System.out.print( );for (k = 1; k = 2 * m - 1; k+) if (m Ceng)if (k != 1 & k != 2 * m - 1)System.out.print( );elseSystem.out.print();elseSystem.out.print();System.out.println();for (m = 2; m = Ceng; m+) for (k = 1; k zx - m; k+)System.out.print( );for (k = 1; k = 2 * m - 1; k+) if (m Ceng)if (k != 1 & k != 2 * m - 1)System.out.print( );elseSystem.out.print();elseSystem.out.print();System.out.println();3.6 /第3章习题6,程序名:X03_06_Sum.javapublic class X03_06_Sum public static void main(String args) int n;long sum = 0, fct = 1;/ 请考虑为什么要将fct声明为long型数据for (n = 1; n = 20; n+) fct *= n;sum += fct;if (1 = n)System.out.print(sum= + n + !);elseSystem.out.print(+ + n + !);System.out.println(= + sum);3.7 /第3章习题3.7,计算100(含100)以内的所有偶数的和、所有奇数的和。/程序名:X03_07_OuJiSum.javapublic class X03_07_OuJiSum public static void main(String args) int k,sumOu=0,sumJi=0;for(k=1;k=100;k+)if(k%2!=0)sumJi+=k;System.out.print(奇数:+k);elsesumOu+=k;System.out.println(tt偶数:+k);System.out.println(100以内所有奇数的和=+sumJi+tt所有偶数的和=+sumOu);3.8 /第3章习题8,水仙花数,习题3.8。程序名:X03_08_ShuiXianHua.javapublic class X03_08_ShuiXianHuapublic static void main(String args)int m,j,k,n;m=j=k=0;for(n=100;n=E1)sumE += temp;n+;temp=1.0/fct(n);System.out.println(n=+(n-1)+,sumE= + sumE);static long fct(int n)/计算n!long JieCheng=1;for (int k=1;k=n;k+)JieCheng*=k;return JieCheng;3.10 /第3章习题10,从公元1900年到2100年所有闰年的年号。/程序名:X03_10_LeapYear.javapublic class X03_10_LeapYear public static void main(String args) int k,n=0,year1=1900,year2=2100;System.out.println(从公元+year1+年到+year2+年所有闰年的年号:);for (k=year1;k=year2;k+)if(k%4=0 & k%100!=0) | k%400=0)System.out.print(+k+t);n+;if(n%5=0) System.out.println();第4章 数组和字符串4.1 /第4章习题1,程序名:X04_01_Array.javapublic class X04_01_Array public static void main(String args) int Arr=999,888,777,666,11,22,33,44,55,1,2,3,4,5,6,8000,7000,6000, ; for(int i=0;iArr.length;i+) System.out.println(ttttArr+i+:); for (int j=0;jArri.length;j+) System.out.print(Arr+i+j+=+Arrij+t); System.out.println(); 4.2 /第4章习题2,程序名:X04_02_HasError.javaclass X04_02_HasError public static void main(String args) String bArr= Im a student., Youre a teacher., Theyre my friends. ; for(int i=0;ibArr.length;i+) System.out.println(bArri); System.out.println(bArri.toLowerCase();/tolowerCase中的l改为大写 System.out.println(bArri.toUpperCase();/touowerCase中的u改为大写 4.3 /第4章习题3,程序名:X04_03_StudentScore.javaimport javax.swing.JOptionPane;public class X04_03_StudentScore public static void main(String args) int count = 6;double score = new doublecount;String strArr = 数学, 语文, 英语, 物理, 化学, 信息技术 ;String str;double doubleSum = 0.0, doubleAver = 0.0;/ 学生的总成绩和平均成绩boolean contiGo = true;for (int k = 0; k scorek | 100 scorek) JOptionPane.showMessageDialog(null,成绩不应该0或大于100,请重新输入。, 提示信息,JOptionPane.QUESTION_MESSAGE); elsebreak; catch (Exception ne) JOptionPane.showMessageDialog(null,输入的不是数据,不符合规定,请重新输入。,提示信息, JOptionPane.QUESTION_MESSAGE);doubleSum += scorek;doubleAver = Math.rint(doubleSum / count * 100.0) / 100.0;/ 平均成绩保留2位小数JOptionPane.showMessageDialog(null, 这个同学的总成绩是: + doubleSum+ ,平均成绩是: + doubleAver, 计算结果,JOptionPane.INFORMATION_MESSAGE);4.4 /第4章习题2,程序名:X04_04_ArrayCoverse.javapublic class X04_04_ArrayCoverse public static void main(String args) int iArray=9,5,7,4,8,temp,count;count=iArray.length;System.out.println(数组原有数据:);for(int k=0;kcount;k+)System.out.print(iArrayk+t);System.out.println();for(int k=0;kcount/2;k+)temp=iArrayk;iArrayk=iArraycount-k-1;iArraycount-k-1=temp;System.out.println(逆序重置后的数组数据:);for(int k=0;kcount;k+)System.out.print(iArrayk+t);System.out.println();4.5 /第4章习题5,程序名:X04_05_StringCat.javapublic class X04_05_StringCat public static void main(String args) String strArr = I am, a student., 我是中国人。 ;String str=;int count=strArr.length;for(int k=0;kcount;k+)str=str.concat(strArrk);System.out.println(str);System.out.println(新形成的字符串第8个字符是:+str.charAt(7);System.out.println(新形成的字符串第16个字符是:+str.charAt(15);System.out.println(“中”在这个字符串中的位置是:+str.indexOf(中);System.out.println(“中国”在这个字符串中的位置是:+str.indexOf(中国);System.out.println(字符全部大写后:+str.toUpperCase();4.6 /第4章习题6,程序名:X04_06_CharCount.javaimport javax.swing.JOptionPane;public class X04_06_CharCount public static void main(String args) int count = 0, k = 0,spaceV=0,charV=0,numberV=0;String str;char cArr;str = JOptionPane.showInputDialog(请输入一个字符串:);cArr = str.toCharArray();count = cArr.length;for(k=0;k & cArrk & cArrk/ & cArrk:)numberV+;/统计数字的个数System.out.println(输入的字符串是:+str+,t字符串长度是:+str.length();System.out.println(字母的个数:+charV+,t空格的个数:+spaceV+,t数字的个数:+numberV); 4.7 /* 第4章习题7,杨辉三角形打印输出。程序名:X04_07_YangHui.java * 编制日期:2003年5月8日 * 最后一次修订:2007年8月18日。主要增加了可变输出行数功能。 */import java.io.*;import javax.swing.JOptionPane;public class X04_07_YangHui public static void main(String args) throws IOException / n是三角形的行数,Kong是两数字之间空格数n=9,int k, j, h, n, Zhong = 40, m = 0, Kong = 0;final int N = 15;/ 三角形的行数是N-1,所以n应小于N-1String str=JOptionPane.showInputDialog(null,请输入行数(15):,打印杨辉三角形,JOptionPane.QUESTION_MESSAGE);n = Integer.parseInt(str);if(15=n)JOptionPane.showMessageDialog(null,0行及以下的杨辉三角形是没有意义的。,JOptionPane.INFORMATION_MESSAGE);elsefor(k = 1; k = Zhong; k+)System.out.print( );/ Zhong为中心的位置System.out.println(1);int y = new intNN;/ 考虑此处y数组最大下标所以n不能大于Nfor(k = 1; k = n - 1; k+) m = Zhong - 2 * k;/ 每行前面的空格数yk1 = 1;for(j = 1; j = m; j+)System.out.print( );/ 输出每行开头的空格数System.out.print(1);for(j = 1; j = k; j+) yk + 1j + 1 = ykj + 1 + ykj;if (yk + 1j + 1 10)Kong = 3;/ 当数字小于10时空格数elseKong = 2;/ 当数字大于10时空格数for(h = 1; h = Kong; h+)System.out.print( );/ 输出空格数System.out.print(yk + 1j + 1);System.out.println(); 4.8 /第4章习题8,程序名:X04_08_Fibonacci.javapublic class X04_08_Fibonacci public static void main(String args) int k, N = 60, StrLen = 14;long Fi = new longN;String Str = ;for (k = 0; k 25; k+)System.out.print( );System.out.println(菲波那契数列的前 + N + 项是:);Fi0 = Fi1 = 1;for (k = 2; k N; k+)Fik = Fik - 2 + Fik - 1;for (k = 0; k N; k+) Str = String.valueOf(Fik);if (k % 5 = 0)System.out.println();for (int j = 0; j = 17 & birthday SQFTCUTOFF)cost = HIGHCOST;elsecost = LOWCOST;public String toString() String output = A + type + loan costs $ + cost + per month;return output;/ 第5章习题17,程序名:X05_17_CarLoan.javaimport javax.swing.*;public class X05_17_CarLoan extends X05_17_PersonalLoan final int AGECUTOFF = 3;final int LOWCOST = 180;final int HIGHCOST = 295;public X05_17_CarLoan() super(Car);setCost();public void setCost() String input = JOptionPane.showInputDialog(null,How many years old is the car?);int age = Integer.parseInt(input);if (age AGECUTOFF)cost = LOWCOST;elsecost = HIGHCOST;public String toString() String output = A + type + loan costs $ + cost + per month;return output;/ 第5章习题17,程序名:X05_17_UseLoan.javaimport javax.swing.*;public class X05_17_UseLoan public static void main(String args) int loan;String output = ;String input = JOptionPane.showInputDialog(null,Enter 1 to view fees for a Home Loannor 2 to view fees for a Car Loan);loan = Integer.parseInt(input);if (loan = 1)output = loanHome();elseoutput = loanCar();JOptionPane.showMessageDialog(null, output);System.exit(0);public static String loanHome() X05_17_HomeLoan home = new X05_1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论