Java语言程序设计教程习题答案.docx
- 文档编号:30185232
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:31
- 大小:39.62KB
Java语言程序设计教程习题答案.docx
《Java语言程序设计教程习题答案.docx》由会员分享,可在线阅读,更多相关《Java语言程序设计教程习题答案.docx(31页珍藏版)》请在冰豆网上搜索。
Java语言程序设计教程习题答案
《Java语言程序设计教程》习题参考答案
第1章习题参考答案
一、选择题
1.B2.D3.C4.B5.A
6.C7.A8.B9.C10.D
二、填空题
1.归纳方法2.映射和体现3.信息4.数据和方法5.包容关系
6.面向对象的设计7.“获得”8.继承关系9.多种语义10.关联关系
第2章习题参考答案
一、选择题
1.D2.C3.B4.C5.C
6.B7.A8.B9.A10.D
二、填空题
1.public2.多重3.JavaAPI4.appletviewer5.Java虚拟机
6.class7.垃圾自动回收8.JavaApplet9.字节码10.Object
三、编程题
1.编写Java程序,要求在主方法中显示另一个类中的“这是Java程序的第二个例子”字符串。
注意:
另一个类中的字符串应是静态的(有关问题在今后的学习中将会逐渐介绍)。
参考源代码如下:
importjava.io.*;
publicclassProgramming0201
{publicstaticvoidmain(Stringargs[])
{
System.out.println(user0101.mM);
}
}
classuser0101
{staticStringmM="这是Java程序的第二个例子!
";}
Programming0201.java程序运行结果如下。
这是Java程序的第二个例子!
2.仿照教材例2.2程序编写Applet程序,在窗体上输出“Java是面向对象的程序设计语言!
”。
参考源代码如下:
importjava.applet.Applet;
importjava.awt.Graphics;
/*
publicclassProgramming0202extendsApplet
{publicvoidpaint(Graphicsg)
{
g.drawString("Java是面向对象的程序设计语言!
",30,30);
}
}
Programming0202.java程序运行界面如图1-2-1所示。
图1-2-1Programming0202.java程序运行界面
第3章习题参考答案
一、选择题
1.D2.D3.C4.D5.C
6.B7.B8.D9.C10.C
二、填空题
1.2/162.十六进制数3.long和double
4.doubledValue=12.34;5.boolean/1
6.longintLong=1000000000L;7.5
8.3/3.59.–32768~3276710.void
三、编程题
1.编写求圆的面积和周长的程序,半径r由用户在键盘上随机输入。
参考源代码如下:
importjava.io.*;
publicclassProgramming0301
{publicstaticvoidmain(Stringargs[])
{doubler=0.0,cl,area;
System.out.print("请输入圆的半径:
");
BufferedReaderrr=newBufferedReader(newInputStreamReader(System.
in));
try
{r=Double.valueOf(rr.readLine()).doubleValue();}
catch(IOExceptione)
{}
cl=2*3.1415926*r;
area=3.1415926*r*r;
System.out.println("半径为"+r+",圆的周长为"+cl+";圆的面积为"+area);
}
}
Programming0301.java程序运行结果如下。
请输入圆的半径:
10
半径为10.0,圆的周长为62.831852;圆的面积为314.15926
2.编写程序,将用户输入的华氏温度以摄氏温度输出。
其公式为:
C=5*(F-32)/9。
参考源代码如下:
importjava.io.*;
publicclassProgramming0302
{publicstaticvoidmain(Stringargs[])
{floatf=0.0f,c;
System.out.print("请输入一个华氏温度:
");
BufferedReaderrr=newBufferedReader(newInputStreamReader(System.
in));
try
{f=Float.valueOf(rr.readLine()).floatValue();}
catch(IOExceptione)
{}
c=5*(f-32)/9;
System.out.println("华氏"+f+"度对应于"+c+"度。
");
}
}
Programming0302.java程序运行结果如下。
请输入一个华氏温度:
78
华氏78.0度对应于25.555555度。
第4章习题参考答案
一、选择题
1.B2.C3.D4.A5.A
6.C7.B8.A9.B10.B
二、填空题
1.02.乘法3.824.运算符/操作数(项)5.&&/!
6.new7.对象8.5089.equals()10.变量,表达式
三、编程题
1.有“inta=5,b=10;”语句,编写求“c=(a++)+(++b)+a*b;”的Java程序。
参考源代码如下:
importjava.io.*;
publicclassProgramming0401
{publicstaticvoidmain(String[]args)
{inta=5,b=10,c;
c=(a++)+(++b)+a*b;
System.out.println("c=(a++)+(++b)+a*b的值为"+c);
}
}
Programming0401.java程序运行结果如下。
c=(a++)+(++b)+a*b的值为82
2.在“inta=3,b=4,c=5;”时,若a的平方加上b的平方等于c的平方,则将c的值向左移(b-a)位,编写实现上述功能的Java程序。
参考源代码如下:
publicclassProgramming0402
{publicstaticvoidmain(String[]args)
{inta=3,b=4,c=5;
if(a*a+b*b==c*c)c=c<<(b-a);
System.out.println("5向左移(b-a)位为"+c);
}
}
Programming0302.java程序运行结果如下。
5向左移(b–a)位为10
第5章习题参考答案
一、选择题
1.D2.C3.B4.B5.C
6.D7.C8.C9.A10.A
二、填空题
1.选择结构,循环结构2.If…else语句,switch语句3.常量
4.循环控制表达式5.执行表达式16.循环体
7.关系8.switch9.Break10.多层循环
三、编程题
1.用二分法求方程2x3–4x2+3x–6=0在(–10,10)之间的根。
参考源代码如下:
importjava.io.*;
publicclassProgramming0501
{publicstaticvoidmain(Stringargs[])
{doublex0=0,x1=0,x2=0,fx0,fx1,fx2;
BufferedReaderrr=newBufferedReader(newInputStreamReader(System.
in));
do
{System.out.println("请输入x0,x1的数值:
");
try
{x1=Integer.parseInt(rr.readLine());
x2=Integer.parseInt(rr.readLine());
}
catch(IOExceptione){}
fx1=x1*((2*x1-4)*x1+3)-6;
fx2=x2*((2*x2-4)*x2+3)-6;
}while(fx1*fx2>0);
do
{x0=(x1+x2)/2;
fx0=x0*((2*x0-4)*x0+3)-6;
if(fx0*fx1<0)
{x2=x0;fx2=fx0;}
else
{x1=x0;fx1=fx0;}
}while(Math.abs(fx0)>1e-5);
System.out.print("方程的根是:
"+x0);
}
}
Programming0501.java程序的运行结果如下。
请输入x0,x1的数值:
–10
10
方程的根是:
2.000000476837158
2.用牛顿迭代法求方程2x3–4x2+3x–6=0在1.5附近的根。
参考源代码如下:
importjava.io.*;
publicclassProgramming0502
{publicstaticvoidmain(Stringargs[])
{doublex,x0,f,f1;
x=1.5;
do
{x0=x;
f=((2*x0-4)*x0+3)*x0-6;
f1=(6*x0-8)*x0+3;
x=x0-f/f1;
}while(Math.abs(x-x0)>=1e-5);
System.out.print("\n方程的根为:
"+x);
}
}
Programming0502.java程序运行结果如下。
方程的根为:
2.0000000000163607
第6章习题参考答案
一、选择题
1.A2.B3.C4.D5.A6.B
二、填空题
1.奇数2.中华人民共和国3.true
4.程5.Java语言程序设计6.C#语言程序设计
三、编程题
1.编写Java程序,求3×3矩阵的主对角线上元素之和,矩阵数据由随机函数自动生成。
参考源代码如下:
importjava.io.*;
publicclassProgramming0601
{publicstaticvoidmain(Stringargs[])
{inti,j,s=0;
inta[][]=newint[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=(int)(Math.random()*100+10);
System.out.println("矩阵A的各个元素为:
");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
System.out.print(a[i][j]+"");
System.out.println();
}
for(i=0;i<3;i++)
s+=a[i][i];
System.out.print("矩阵的主对角线之和为:
"+s);
}
}
Programming0601.java程序运行结果如下。
矩阵A的各个元素为:
934373
947320
658943
矩阵的主对角线之和为:
209
2.编写Java程序,求3×3矩阵的次对角线上元素之和,矩阵数据由随机函数自动生成。
参考源代码如下:
importjava.io.*;
publicclassProgramming0602
{publicstaticvoidmain(Stringargs[])
{inti,j,s=0;
inta[][]=newint[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=(int)(Math.random()*100+10);
System.out.println("矩阵A的各个元素为:
");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
System.out.print(a[i][j]+"");
System.out.println();
}
for(i=0;i<3;i++)
s+=a[i][2-i];
System.out.print("矩阵的次对角线之和为:
"+s);
}
}
Programming0602.java程序运行结果如下。
矩阵A的各个元素为:
593121
2848106
1028067
矩阵的次对角线之和为:
171
本题的源代码也可以如下所示:
importjava.io.*;
publicclassProgramming0602
{publicstaticvoidmain(Stringargs[])
{inti,j,s=0;
inta[][]=newint[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=(int)(Math.random()*100+10);
System.out.println("矩阵A的各个元素为:
");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
{System.out.print(a[i][j]+"");
if((i+j)==2)
s+=a[i][j];
}
System.out.println();
}
System.out.print("矩阵的次对角线之和为:
"+s);
}
}
Programming0602.java程序运行结果如下。
矩阵A的各个元素为:
587510
809967
843121
矩阵的次对角线之和为:
193
第7章习题参考答案
一、选择题
1.C2.D3.A4.A5.B6.B
二、填空题
1.方法名2.调用语句3.实参的修改
4.final5.static6.明确的结束条件
三、读程题
1.程序运行结果为:
GreastCommonDivisorof24and16is8
LeastCommonMultipleof24and16is48
2.程序运行结果为:
调用convert()方法前的情况
123
456
789
调用convert()方法后的情况
147
258
369
3.程序运行结果为:
2的5次方=32
4.程序运行结果为:
该程序输出3~100之间的所有素数。
3571113171923
2931374143475359
6167717379838997
5.程序运行结果为:
输出含有九行的杨辉三角形。
1
11
121
1331
14641
15101051
1615201561
172135352171
18285670562881
6.计设序程#C
四、编程题
1.采用递归调用的方式编写计算mn的方法,然后在主方法中调用该方法计算53的值。
参考程序如下:
importjava.io.*;
publicclassProgramming0701
{publicstaticvoidmain(String[]args)
{intm=0,n=0;
System.out.println("请输入求m的n次方参数m和n的整型数值:
");
BufferedReaderrr=newBufferedReader(newInputStreamReader(System.
in));
try
{m=Integer.parseInt(rr.readLine());
n=Integer.parseInt(rr.readLine());
}
catch(IOExceptione){}
System.out.println(m+"的"+n+"次方为"+fact(m,n));
}
staticintfact(intm,intn)
{if(n==0)
return1;
else
returnm*fact(m,n-1);
}
}
Programming0701.java程序运行结果如下。
请输入求m的n次方参数m和n的整型数值:
5
3
5的3次方为125
2.找出一个二维数组中的鞍点,即该位置上的元素在该行上为最大,在该列上为最小;也可能没有鞍点。
参考源代码如下:
importjava.io.*;
publicclassProgramming0702
{publicstaticvoidmain(Stringargs[])
{inti,j,s=0;
inta[][]=newint[3][3];
for(i=0;i<3;i++)
for(j=0;j<3;j++)
a[i][j]=(int)(Math.random()*100+10);
System.out.println("二维数组A的各个元素为:
");
for(i=0;i<3;i++)
{for(j=0;j<3;j++)
System.out.print(a[i][j]+"");
System.out.println();
}
intf1,f2=0,max,maxj=0;
for(i=0;i<3;i++)
{max=a[i][0];
for(j=0;j<3;j++)
if(a[i][j]>max)
{
max=a[i][j];
maxj=j;
}
for(j=0,f1=1;j<3&&f1==1;j++)
if(max>a[j][maxj])
f1=0;
if(f1==1)
{System.out.println("第"+i+"行第"+maxj+"列的"+max+"是鞍点");
f2=1;
}
}
if(f2==0)
System.out.print("本矩阵无鞍点!
");
}
}
Programming0702.java程序运行结果如下。
二维数组A的各个元素为:
608038
789363
1013255
本矩阵无鞍点!
D:
\Java>javaProgramming0702
二维数组A的各个元素为:
3569100
497341
506522
第2行第1列的65是鞍点
第8章习题参考答案
一、选择题
1.B2.C3.B4.C5.B6.C
二、填空题
1.单重/多重2.抽象3.“.”
4.成员变量、方法参数5.构造方法6.创建对象
三、读程题
1.程序运行结果为:
12,20.0
2.程序运行结果为:
11,12,13
1,1
3.程序运行结果为:
x=6
4.程序运行结果为:
a=12,b=45;a=100,b=200
5.程序运行结果为:
Helloworld!
6.程序运行结果为:
abcde,ABCZE
四、编程题
1.定义一个Circle类,包括属性Radius,带参的构造方法Circle(floatradius)和求面积的方法GetArea(),实现并测试该类的正确性。
参考源代码如下:
importjava.io.*;
publicclassProgramming0801
{publicstaticvoidmain(Stringargs[])
{floatm;
Circlec=newCircle(10.0f);
m=c.GetArea();
System.out.println("调用Circle类的方法:
GetArea="+m);
}
}
classCircle
{floatRadius;floatPI=3.1415926f;
Circle(floatradius)
{Radius=radius;}
floatGetArea()
{returnPI*Radius*Radius;}
}
Programming0801.java程序运行结果如下。
调用Circle类的方法:
GetArea=314.15924
2.定义一个Dog类,其中包含Age、Weight属性,GetAge()、SetAge()、GetWeight()、SetWeight()方法,实现并测试该类的正确性。
参考源代码如下:
importjava.io.*;
publicclassProgramming0802
{publicstaticvoidmain(Stringargs[])
{intm,n;
Dogd=newDog();
d.SetAge(55);
d.SetWeight(120);
m=d.GetAge();
n=d.GetWeight();
System.out.println("调用Dog类的方法:
Age="+m);
System.out.println("调用Dog类的方法:
Weight="+n);
}
}
classDog
{intAge;intWeight;
voidSetAge(intage)
{Age=age;}
voidSetWeight(intweight)
{Weight=weight;}
intGetAge()
{returnAge;}
intGetWeight()
{returnWeight;}
}
Programming0802.java程序运行结果如下。
调用Dog类的方法:
Age=55
调用Dog类的方法:
Weight=120
第9章习题参考答案
一、选择题
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 语言程序设计 教程 习题 答案