Java第2版习题参考答案.docx
- 文档编号:9463765
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:68
- 大小:45.04KB
Java第2版习题参考答案.docx
《Java第2版习题参考答案.docx》由会员分享,可在线阅读,更多相关《Java第2版习题参考答案.docx(68页珍藏版)》请在冰豆网上搜索。
Java第2版习题参考答案
习题参考答案
——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.2Java在语法中取消了C/C++中具有的不安全的特性,如取消了指针,使得非法访问被杜绝。
用户不可能造成内存分配错误,也用不着专门提防可能出现的内存漏洞。
1.3主要是由于Java程序可以方便地被移植到网络上的不同机器。
另外,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。
1.4对象是类的特例。
1.5略。
1.6略。
第2章绪论
2.1略。
2.2略。
2.3进行SETPATH设置是为了让系统找到Java.exe、Javac.exe在什么文件夹中;SETCLASSPATH设置的作用是查找类路径变量的。
2.4Java程序被分为两类,一类是JavaApplication程序,另一类是JavaApplet程序。
JavaApplication程序是完整的程序,程序中有main()方法是其显著标志,仅需要解释器来解释运行。
JavaApplet程序中没有main()方法,它不能独立运行,它是嵌入到HTML网页(Web页面)中的非独立程序,必须依靠Web浏览器内部包含的Java解释器来解释运行。
2.5第一步,使用某种编辑器编写程序源代码;第二步,将源程序编译为字节码文件,第三步,执行。
2.6请参考例2.1和例2.2。
2.7请参考例2.9。
2.8略。
第3章Java语言基础
3.1合法的变量名:
$UstatenewsAddMyNum_B2变量1addMyNumabc数int
非法的变量名:
A=bbyte3ABC'abc'3.1460xab43e1k*j
3.2⑴20⑵false⑶false⑷true⑸6⑹0
3.3a=2b=1
3.4y=2.0
将程序中的double改为float,其他不变是不行的。
因为,x=2.0后面没有F作为后缀,是默认为double型数据的。
3.5图案1源程序:
//第3章习题5图案1,程序名:
X03_051_菱形五星.java
publicclassX03_051_菱形五星{
publicstaticvoidmain(Stringargs[]){
intm,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<=2*m-1;k++)System.out.print("☆");
System.out.println("");
}
for(m=Ceng-1;m>=1;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("");
}
}
}
图案2源程序:
//第3章习题5图案2,程序名:
X03_052_倒三角五星.java
publicclassX03_052_倒三角五星{
publicstaticvoidmain(String[]args){
//Ceng是上三角的层数,zx是为了使图案居中的空格数
intm,k,zx=20,Ceng=4;
for(m=Ceng;m>=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<=2*m-1;k++){
if(m>1&&m if(1==k||2*m-1==k) System.out.print("☆"); else System.out.print(""); }else System.out.print("☆"); } System.out.println(""); } } } 图案3源程序: //第3章习题5图案3,程序名: X03_053_倒实三角五星.java publicclassX03_053_倒实三角五星{ publicstaticvoidmain(String[]args){ //Ceng是上三角的层数,zx是为了使图案居中的空格数 intm,k,zx=20,Ceng=4; for(m=Ceng;m>=1;m--){ for(k=1;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;k System.out.print(""); for(k=1;k<=2*m-1;k++) System.out.print("☆"); System.out.println(""); } } } 图案4源程序: //第3章习题5图案4,程序名: X03_054_倒空三角五星.java publicclassX03_054_倒空三角五星{ publicstaticvoidmain(String[]args){ //Ceng是上三角的层数,zx是为了使图案居中的空格数 intm,k,zx=20,Ceng=4; for(m=Ceng;m>=1;m--){ for(k=1;k System.out.print(""); for(k=1;k<=2*m-1;k++){ if(m if(k! =1&&k! =2*m-1) System.out.print(""); else System.out.print("☆"); else System.out.print("☆"); } System.out.println(""); } for(m=2;m<=Ceng;m++){ for(k=1;k System.out.print(""); for(k=1;k<=2*m-1;k++){ if(m if(k! =1&&k! =2*m-1) System.out.print(""); else System.out.print("☆"); else System.out.print("☆"); } System.out.println(""); } } } 3.6 //第3章习题6,程序名: X03_06_Sum.java publicclassX03_06_Sum{ publicstaticvoidmain(String[]args){ intn; longsum=0,fct=1;//请考虑为什么要将fct声明为long型数据 for(n=1;n<=20;n++){ fct*=n; sum+=fct; if(1==n) System.out.print("sum="+n+"! "); else System.out.print("+"+n+"! "); } System.out.println("="+sum); } } 3.7 //第3章习题3.7,计算100(含100)以内的所有偶数的和、所有奇数的和。 //程序名: X03_07_OuJiSum.java publicclassX03_07_OuJiSum{ publicstaticvoidmain(String[]args){ intk,sumOu=0,sumJi=0; for(k=1;k<=100;k++){ if(k%2! =0){ sumJi+=k; System.out.print("奇数: "+k); } else{ sumOu+=k; System.out.println("\t\t偶数: "+k); } } System.out.println("100以内所有奇数的和="+ sumJi+"\t\t所有偶数的和="+sumOu); } } 3.8 //第3章习题8,水仙花数,习题3.8。 程序名: X03_08_ShuiXianHua.java publicclassX03_08_ShuiXianHua{ publicstaticvoidmain(Stringargs[]){ intm,j,k,n; m=j=k=0; for(n=100;n<1000;n++){ m=n/100;//求出该数的百位上数字 j=n/10-m*10;//求出该数的十位上数字 k=n%10;//求出个位上数字 if(n==m*m*m+j*j*j+k*k*k) System.out.println(n+"\t"); } } } 3.9 //第3章习题9,用while循环语句写程序求e的值,要求直到最后一项的值小于10-4。 //程序名: X03_09_CalculateE.java publicclassX03_09_CalculateE{ publicstaticvoidmain(String[]args){ intn=1; finaldoubleE1=0.0001; doublesumE=1.0,temp=1.0; temp=1/fct(n); while(temp>=E1){ sumE+=temp; n++; temp=1.0/fct(n); } System.out.println("n="+(n-1)+",sumE="+sumE); } staticlongfct(intn){//计算n! longJieCheng=1; for(intk=1;k<=n;k++){ JieCheng*=k; } returnJieCheng; } } 3.10 //第3章习题10,从公元1900年到2100年所有闰年的年号。 //程序名: X03_10_LeapYear.java publicclassX03_10_LeapYear{ publicstaticvoidmain(String[]args){ intk,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.java publicclassX04_01_Array{ publicstaticvoidmain(Stringargs[]){ intArr[][]={{999,888,777,666}, {11,22,33,44,55}, {1,2,3,4,5,6}, {8000,7000,6000}, }; for(inti=0;i System.out.println("\t\t\t\tArr["+i+"]"+": "); for(intj=0;j System.out.print("Arr["+i+"]["+j+"]="+Arr[i][j]+"\t"); } System.out.println(); } } } 4.2 //第4章习题2,程序名: X04_02_HasError.java classX04_02_HasError{ publicstaticvoidmain(Stringargs[]){ StringbArr[]={"I'mastudent.", "You'reateacher.", "They'remyfriends." }; for(inti=0;i System.out.println(bArr[i]); System.out.println(bArr[i].toLowerCase());//tolowerCase中的l改为大写 System.out.println(bArr[i].toUpperCase());//touowerCase中的u改为大写 } } } 4.3 //第4章习题3,程序名: X04_03_StudentScore.java importjavax.swing.JOptionPane; publicclassX04_03_StudentScore{ publicstaticvoidmain(Stringargs[]){ intcount=6; doublescore[]=newdouble[count]; StringstrArr[]={"数学","语文","英语","物理","化学","信息技术"}; Stringstr; doubledoubleSum=0.0,doubleAver=0.0;//学生的总成绩和平均成绩 booleancontiGo=true; for(intk=0;k while(contiGo){ str=JOptionPane.showInputDialog("请输入"+strArr[k]+"课程的成绩: "); try{//处理输入非数值数据或输入的数是0 score[k]=Double.parseDouble(str); if(0>score[k]||100 JOptionPane.showMessageDialog(null, "成绩不应该<0或大于100,请重新输入。 ","提示信息", JOptionPane.QUESTION_MESSAGE); }else break; }catch(Exceptionne){ JOptionPane.showMessageDialog(null, "输入的不是数据,不符合规定,请重新输入。 ", "提示信息",JOptionPane.QUESTION_MESSAGE); } } doubleSum+=score[k]; } 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.java publicclassX04_04_ArrayCoverse{ publicstaticvoidmain(String[]args){ intiArray[]={9,5,7,4,8},temp,count; count=iArray.length; System.out.println("数组原有数据: "); for(intk=0;k System.out.print(iArray[k]+"\t"); } System.out.println(); for(intk=0;k temp=iArray[k]; iArray[k]=iArray[count-k-1]; iArray[count-k-1]=temp; } System.out.println("逆序重置后的数组数据: "); for(intk=0;k System.out.print(iArray[k]+"\t"); } System.out.println(); } } 4.5 //第4章习题5,程序名: X04_05_StringCat.java publicclassX04_05_StringCat{ publicstaticvoidmain(String[]args){ StringstrArr[]={"Iam","astudent.","我是中国人。 "}; Stringstr=""; intcount=strArr.length; for(intk=0;k str=str.concat(strArr[k]); } 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.java importjavax.swing.JOptionPane; publicclassX04_06_CharCount{ publicstaticvoidmain(String[]args){ intcount=0,k=0,spaceV=0,charV=0,numberV=0; Stringstr; charcArr[]; str=JOptionPane.showInputDialog("请输入一个字符串: "); cArr=str.toCharArray(); count=cArr.length; for(k=0;k if(''==cArr[k]) spaceV++;//统计空格个数 elseif(cArr[k]>'@'&&cArr[k]<'['|cArr[k]>'\''&&cArr[k]<'{') charV++;//统计字母A~Z和a~z的个数 elseif(cArr[k]>'/'&&cArr[k]<': ') numberV++;//统计数字的个数 } System.out.println("输入的字符串是: "+str+",\t字符串长度是: "+str.length()); Sy
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 习题 参考答案
![提示](https://static.bdocx.com/images/bang_tan.gif)