• 112.00 KB
  • 2022-04-22 11:47:27 发布

java2简明教程部分课后习题答案.doc

  • 30页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'JAVA2简明教程习题答案第二章课堂习题: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整除则为偶数,除以2m=m/2;else//如果不被2整除则为奇数,乘以3再加1{m=m*3+1;}}while(n!=1)//假设最后得到的数一定是1,则如果不为1就换算{if(n%2==0)//如果被2整除则为偶数,除以2n=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转换成字符串对象strm=Long.parseLong(str.trim());//数字转换成整数}catch(Exceptione){}//catch语气,Exception为异常类while(m!=1)//假设最后得到的数一定是1,则如果不为1就换算{if(m%2==0)//如果被2整除则为偶数,除以2m=m/2;else//如果不被2整除则为奇数,乘以3再加1{m=m*3+1;}}System.out.println("换算后的值为:t"+m);}}1、EX_2.5importjava.applet.Applet;importjava.awt.*;publicclasscompareNumbersextendsApplet{Labell1,l2;TextFieldin1,in2;inta,b;publicvoidinit(){l1=newLabel("第一个整数:");l2=newLabel("第二个整数:");in1=newTextField(8);in2=newTextField(8);add(l1);add(in1);add(l2);add(in2);} publicbooleanaction(Evente,Objecto){if(e.target==in1||e.target==in2){a=Integer.parseInt(in1.getText());b=Integer.parseInt(in2.getText());if(a==b){showStatus("thetwonumbersareequal!");}elseif(a>b){showStatus(a+"islarger!");}elseshowStatus(b+"islarger!");}returntrue;}}2-6publicclassMain{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时对应计数器加1two++;elseif((a[m]+b[n])==7)//当相加和为7时对应计数器加1sev++;elseif((a[m]+b[n])==12)//当相加和为12时对应计数器加1twe++;else//当相加和为其他数时对应计数器加1oth++;}//terminationphase终止段//输出结果//((float)two/3600)为将two/3600的结果强制转换成浮点数输出,否则输出为0System.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-1importjava.applet.Applet;importjava.awt.*;publicclassDisplayextendsApplet{Labellab;TextFieldinput;longnum;longm=0;longn=0;inti=0;//数字个数的计数器publicvoidinit(){ lab=newLabel("请输入任意整数:");//提示标签input=newTextField(20);//输入文本框add(lab);//在网页中显示标签labadd(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-2publicclassMain{publicstaticvoidmain(String[]args) {System.out.println("整数t"+"平方t"+"立方");//范围0~10for(inti=0;i<=10;i++){//依次打印输出整数,平方,立方System.out.println(i+"t"+i*i+"t"+i*i*i);}}}3-3publicclassMain{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-4importjava.applet.Applet;importjava.awt.*;publicclassRectangleextendsApplet{Labellab;TextFieldinput;intwidth;//矩形的长publicvoidinit(){lab=newLabel("请输入矩形的长(整数):");//请示标签input=newTextField(20);//输入文本框add(lab);//在网页中显示标签labadd(input);//在网页中显示文本框}publicbooleanaction(Evente,Objecto){//当用户按下Enter时把输入的字符串转换成整形if(e.target==input)width=Integer.parseInt(input.getText());System.out.println("下面是得到的矩形:");//矩形的上底for(inti=0;i="a"&&text.charAt(j)<="z")||(text.charAt(j)>="A"&&text.charAt(j)<="Z")){str.append(text.charAt(j));j++;}else{if(str.toString().length()>0){System.out.println(str.toString()+"的长度为:"+str.toString().length());j++;str=newStringBuffer();}elsej++;}if(j==text.length()-1){str.append(text.charAt(j));System.out.println(str.toString()+"的长度为:"+str.toString().length());}}} publicstaticvoidmain(String[]args){Texttx=newText();Stringtext="";Scannersc=newScanner(System.in);System.out.println("请输入文本:");text=sc.nextLine();tx.countYYZM(text);tx.WordLength(text);}}第7章、Ex_7.2importjava.io.*;publicclassCircle{staticdoubleradius;doublelength;doublearea;publicCircle(doubler){this.radius=r;}publicstaticStringreadString(){BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in),1);Stringstring="";try{string=br.readLine();}catch(IOExceptionex){System.out.println(ex);}returnstring;}publicstaticdoubleinput()throwsmyException{doubler;System.out.print("请输入圆的半径:t");r=Integer.parseInt(readString());if(r<0){myExceptionex=newmyException("请输入大于0的数!");throwex;}returnr; }voidLength(doubler){System.out.println("圆的周长为:t"+Math.PI*r*2);}voidArea(doubler){System.out.println("圆的面积为:t"+Math.PI*r*r);}publicstaticvoidmain(String[]args){try{Circler=newCircle(input());r.Area(radius);r.Length(radius);}catch(myExceptione){e.printStackTrace();}}}classmyExceptionextendsException{myException(){};myException(Stringa){super(a);}}第8章、Ex_8.1importjava.io.*;publicclassFileInput{Filefile=null;FileInput(Filef){this.file=f;};StringreadFile()throwsIOException{FileReaderfin=null;BufferedReaderin;Stringstring="";try{fin=newFileReader(file); in=newBufferedReader(fin);Strings=in.readLine();while(s!=null){string+=s;s=in.readLine();}}catch(FileNotFoundExceptionex){System.out.println("文件不存在!");}finally{fin.close();}returnstring;}char[]toArray(Strings){returns.toCharArray();}voidprintArray(char[]c){for(inti=c.length-1;i>=0;i--){System.out.print(c[i]);}}publicstaticvoidmain(String[]args)throwsIOException{Filefile=newFile("D:/text.txt");FileInputfi=newFileInput(file);Stringtext=fi.readFile();char[]array=fi.toArray(text);fi.printArray(array);}}实验题目实验一(略)实验二(略)实验三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);//将输入的字符串轮换成整形//当输入的数字与随机生成的数不相等时while(yourGuess!=realNumber){//输入的数大于随机生成的数if(yourGuess>realNumber){str=JOptionPane.showInputDialog("猜大了,再输入你的猜测:");yourGuess=Integer.parseInt(str);//重置当前输入的值}//输入的数小于随机生成的数elseif(yourGuessc)&&((b+c)>a)&&(a+c)>b){boo=true;//标记为真}else{boo=false;//否则标记为假}}//三角形的周长doublegetLength(){//如果标记为真,即能构成三角形if(boo){length=sideA+sideB+sideC;//求周长的公式returnlength;//返回周长}//否则返回0else{System.out.println("不是三角形,不能计算周长");return0;}}//三角形边1doublegetsideA(){if(boo){returnsideA;}else{System.out.println("边不符合要求,不能计算周长");return0;}}//三角形边2 doublegetsideB(){if(boo){returnsideB;}else{System.out.println("边不符合要求,不能计算周长");return0;}}//三角形边3doublegetsideC(){if(boo){returnsideC;}else{System.out.println("边不符合要求,不能计算周长");return0;}}//三角形的面积publicdoublegetArea(){//如果标记为真,即能构成三角形if(boo){doublep=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC));//求面积公式returnarea;//返回面积}//否则返回0else{System.out.println("不是三角形,不能计算面积");return0;}} publicvoidsetABC(doublea,doubleb,doublec){sideA=a;sideB=b;sideC=c;if(((a+b)>c)&&((a-b)