《JAVA简明教程》习题答案.docx
- 文档编号:11590540
- 上传时间:2023-03-19
- 格式:DOCX
- 页数:33
- 大小:21.62KB
《JAVA简明教程》习题答案.docx
《《JAVA简明教程》习题答案.docx》由会员分享,可在线阅读,更多相关《《JAVA简明教程》习题答案.docx(33页珍藏版)》请在冰豆网上搜索。
《JAVA简明教程》习题答案
JAVA简明教程习题答案
第二章
课堂习题:
publicclassMain
{
publicstaticvoidmain(String[]args){
//initializationphase初始段
floatf1=2.5f;
floatf2;
inta=7;
intb=2;
intc;
//processingphase处理段
f2=f1+(a/b);
c=(a/b);
//terminationphase终止段
System.out.println("f2的值为:
"+f2);
System.out.println("c的值为:
"+c);
}
}
课后习题:
2-4
(小程序部分)
importjava.applet.*;
importjava.awt.*;
publicclassGessextendsApplet
{
publicvoidpaint(Graphicsg)
{
//3~10000中的任意数
intm=20;
intn=9993;
g.drawString("本程序仅对3~10000中任意取的整数:
",80,50);
g.drawString("20",80,65);
g.drawString("9993",80,80);
g.drawString("进行测试!
",80,95);
while(m!
=1)//假设最后得到的数一定是1,则如果不为1就换算
{
if(m%2==0)//如果被2整除则为偶数,除以2
m=m/2;
else//如果不被2整除则为奇数,乘以3再加1
{
m=m*3+1;
}
}
while(n!
=1)//假设最后得到的数一定是1,则如果不为1就换算
{
if(n%2==0)//如果被2整除则为偶数,除以2
n=n/2;
else//如果不被2整除则为奇数,乘以3再加1
{
n=n*3+1;
}
}
g.drawString("20换算后的值为:
"+m,80,110);
g.drawString("9993换算后的值为:
"+m,80,125);
}
}
(程序部分)
importjava.io.*;//引入java.io中的所有类(含输入输出类),因为程序中要用到输入类的read()方法
publicclassMain
{
publicstaticvoidmain(String[]args)
{
byte[]buf=newbyte[50];//50个字节的数组用于存字符串
Stringstr;
longm=0;
System.out.println("请输入3~10000中的任意整数(回车确认):
");
try//try语气
{
System.in.read(buf);//从键盘读入一数字串保存于buf中
str=newString(buf);//buf转换成字符串对象str
m=Long.parseLong(str.trim());//数字转换成整数
}catch(Exceptione){}//catch语气,Exception为异常类
while(m!
=1)//假设最后得到的数一定是1,则如果不为1就换算
{
if(m%2==0)//如果被2整除则为偶数,除以2
m=m/2;
else//如果不被2整除则为奇数,乘以3再加1
{
m=m*3+1;
}
}
System.out.println("换算后的值为:
\t"+m);
}
}
2-6
publicclassMain
{
publicstaticvoidmain(String[]args)
{
//initializationphase//初始段
intj=1;
int[]a;//用于存放第一个骰子的点数的整形数组
int[]b;//用于存放第二个骰子的点数的整形数组
inttwo=0;//相加和为2的计数器
intsev=0;//相加和为7的计数器
inttwe=0;//相加和为12的计数器
intoth=0;//相加和为其他数的计数器
a=newint[6];//分配数组空间
b=a;//骰子的点数相同,这里将数组a赋给数组b(这时b和a同用一块内存空间)
//processingphase处理段
for(inti=0;i<6;i++)//通过循环赋值方式初始化数组
{
a[i]=j++;
}
for(inti=0;i<3600;i++)//测试3600次
{
//生成0~5随机数
intm=(int)(((Math.random())*6));
intn=(int)(((Math.random())*6));
if((a[m]+b[n])==2)//当相加和为2时对应计数器加1
two++;
elseif((a[m]+b[n])==7)//当相加和为7时对应计数器加1
sev++;
elseif((a[m]+b[n])==12)//当相加和为12时对应计数器加1
twe++;
else//当相加和为其他数时对应计数器加1
oth++;
}
//terminationphase终止段
//输出结果
//((float)two/3600)为将two/3600的结果强制转换成浮点数输出,否则输出为0
System.out.println("相加的和为2的次数是:
\t"+two
+";\t可能性为:
\t"+((float)two/3600));
System.out.println("相加的和为12的次数是:
\t"+twe
+";\t可能性为:
\t"+((float)twe/3600));
System.out.println("相加的和为7的次数是:
\t"+sev
+";\t可能性为:
\t"+((float)sev/3600));
System.out.println("相加的和为其他数的次数是:
\t"
+oth+";\t可能性为:
\t"+((float)oth/3600));
}
}
第三章
课堂习题
随机产生26个英文字母a-z,直到大于u为止,用while或for语气实现
publicclassMain{
publicstaticvoidmain(String[]args)
{
intletter=0;
System.out.println("用while语句实现:
");
while(letter<'u')
{
letter=(int)(Math.random()*26)+'a';
System.out.println((char)letter);
}
System.out.println("用for语句实现:
");
for(letter=97;letter<'u';letter++)
{
letter=(int)(Math.random()*26)+'a';
System.out.println((char)letter);
}
}
}
课后习题
3-1
importjava.applet.Applet;
importjava.awt.*;
publicclassDisplayextendsApplet
{
Labellab;
TextFieldinput;
longnum;
longm=0;
longn=0;
inti=0;//数字个数的计数器
publicvoidinit()
{
lab=newLabel("请输入任意整数:
");//提示标签
input=newTextField(20);//输入文本框
add(lab);//在网页中显示标签lab
add(input);//在网页中显示文本框
}
publicbooleanaction(Evente,Objecto)
{
if(e.target==input)
{
num=Long.parseLong(input.getText());//字符串转换成整形
//把得到的数倒置
do
{
m=num%10;//求余得最后一个数字
num=num/10;//取整去掉最后一个数字
n=n*10+m;//把倒置后的数存到n中
i++;//同时计数器自加
}while(num!
=0);
System.out.println("下面是得到的结果:
"+i);
//间隔加空格后输出
do
{
System.out.print(""+n%10);
n=n/10;
}while((i--)>1);
}
returntrue;
}
}
3-2
publicclassMain{
publicstaticvoidmain(String[]args)
{
System.out.println("整数\t"+"平方\t"+"立方");
//范围0~10
for(inti=0;i<=10;i++)
{
//依次打印输出整数,平方,立方
System.out.println(i+"\t"+i*i+"\t"+i*i*i);
}
}
}
3-3
publicclassMain
{
publicstaticvoidmain(String[]args)
{
//把图分成三部分左中右三部分打印
for(inti=0;i<5;i++)
{
//循环打印出左边部分
for(intj=0;j<=i;j++)
{
System.out.print("*");
}
//循环打印出中间部分
for(intk=2*i;k<18;k++)//空格要考虑前后各少一个所以从2*i开始
{
System.out.print("");
}
//循环打印出右边部分
for(intm=0;m<=i;m++)
{
System.out.print("*");
}
System.out.println();
}
System.out.println();
}
}
3-4
importjava.applet.Applet;
importjava.awt.*;
publicclassRectangleextendsApplet
{
Labellab;
TextFieldinput;
intwidth;//矩形的长
publicvoidinit()
{
lab=newLabel("请输入矩形的长(整数):
");//请示标签
input=newTextField(20);//输入文本框
add(lab);//在网页中显示标签lab
add(input);//在网页中显示文本框
}
publicbooleanaction(Evente,Objecto)
{
//当用户按下Enter时把输入的字符串转换成整形
if(e.target==input)
width=Integer.parseInt(input.getText());
System.out.println("下面是得到的矩形:
");
//矩形的上底
for(inti=0;i { System.out.print("*"); } //矩形的边 for(intk=0;k { System.out.println(); System.out.print("*"); //矩形的中间为空 for(intm=0;m { System.out.print(""); } System.out.print("*"); } System.out.println(); //矩形的下底 for(intj=0;j { System.out.print("*"); } returntrue; } } 第四章 4-1 importjava.io.*; publicclassReverOrder { staticintx; intnum; intm; intn; //从键盘读入字符串 publicstaticStringreadString() { BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in),1); Stringstring=""; try { string=br.readLine(); } catch(IOExceptionex) { System.out.println(ex); } returnstring; } //将读入的字符串转换为整形 publicstaticintinput() { System.out.print("请输入一串数字: \t"); returnInteger.parseInt(readString()); } //倒序输入的字符串 intRorder(intb) { num=b; do { m=num%10;//求余得最后一个数字 num=num/10;//取整去掉最后一个数字 n=n*10+m;//把倒置后的数存到n中 }while(num! =0); returnn; } //输出结果 voidshow(inta) { System.out.println("倒序输出为: \t"+a); } //主方法 publicstaticvoidmain(String[]args) { intvalue; ReverOrderorder=newReverOrder(); x=ReverOrder.input();//将输入的数传递给x value=order.Rorder(x);//将x倒置 order.show(value);//输出 } } 4-3 packagehomework4_3; importjava.io.*; publicclassCircle { staticdoubleradius; doublelength; doublearea; staticbooleancheckr; //构造函数初始化半径 publicCircle(doubler) { if(r<0) { checkr=false; } else { radius=r; checkr=true; } } //从键盘读入字符串 publicstaticStringreadString() { BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in),1); Stringstring=""; try { string=br.readLine(); } catch(IOExceptionex) { System.out.println(ex); } returnstring; } //将读入的字符串转换为整形 publicstaticdoubleinput() { System.out.print("请输入圆的半径: \t"); returnDouble.parseDouble(readString()); } //计算圆的周长的方法 voidLength(doubler) { System.out.println("圆的周长为: \t"+Math.PI*r*2); } //计算圆的面积 voidArea(doubler) { System.out.println("圆的面积为: \t"+Math.PI*r*r); } //主方法 publicstaticvoidmain(String[]args) { doublevalueinput; doublevaluer; Circler=newCircle(input()); //如果半径为正则求周长和面积 if(checkr) { r.Area(radius); r.Length(radius); } else System.out.println("输入圆的半径的值不能为负数! "); } } 4-4 publicclassDate { staticintyear; staticintmonth; staticintday; publicDate() { //无参数的构造函数 } //有三个参数的构造函数 publicDate(intx,inty,intz) { day=x; month=y; year=z; } //主方法 publicstaticvoidmain(String[]args) { year=2008; month=06; day=21; //(1)三种格式输出今天的日期 System.out.print("今天是: "); System.out.println("\t"+year+""+month+""+day); System.out.println("\t"+month+""+day+""+year); System.out.println("\t"+day+""+month+""+year); // (2)调用重载构造函数创建对象date Datedate=newDate(22,06,2008); System.out.print("\n明天是: "); System.out.println("\t"+year+""+month+""+day); System.out.println("\t"+month+""+day+""+year); System.out.println("\t"+day+""+month+""+year); } } 4-6 //基类 classbase { //方法一 voidFirst() { System.out.println("这是基类base的第一个方法! "); Second(); } //方法二 voidSecond() { System.out.println("这是基类base的第二个方法! "); } } //派生类 classderivedextendsbase { voidSecond() { System.out.println("这是派生类derived的方法! "); } } publicclassUpCasting { //主方法 publicstaticvoidmain(String[]args) { //派生类derived对象test,test对象里有覆盖了基类的Second()方法的Second()方法 derivedtest=newderived(); baseup=test;//向上类型转换,基类对象up里有有First()方法和被覆盖的Second() //baseup=newbase();//基类对象up里仅有First()方法和未被覆盖的Second() up.First();//调用基类的第一个方法 } } 实验题目 实验一(略) 实验二(略) 实验三 importjavax.swing.JOptionPane; publicclassGuessNumber { publicstaticvoidmain(String[]args) { System.out.println("给你一个1到100的整数,请猜测这个数"); intrealNumber=(int)(Math.random()*100)+1;//随机生成1~100的整数 intyourGuess=0;//初始化输入的值 Stringstr=JOptionPane.showInputDialog("输入你的猜测: "); yourGuess=Integer.parseInt(str);//将输入的字符串轮换成整形
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JAVA简明教程 JAVA 简明 教程 习题 答案