JAVA 皮常德2-7章答案.doc

上传人:豆**** 文档编号:33492181 上传时间:2022-08-11 格式:DOC 页数:22 大小:286.50KB
返回 下载 相关 举报
JAVA 皮常德2-7章答案.doc_第1页
第1页 / 共22页
JAVA 皮常德2-7章答案.doc_第2页
第2页 / 共22页
点击查看更多>>
资源描述

《JAVA 皮常德2-7章答案.doc》由会员分享,可在线阅读,更多相关《JAVA 皮常德2-7章答案.doc(22页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-作者xxxx-日期xxxxJAVA 皮常德2-7章答案【精品文档】二1. 角谷猜想:任何一个正整数n,如果它是偶数则除以二,如果是奇数则乘以3再加上1,这样得到一个新的整数,如此继续进行上述处理,则最后得到的数一定是1,编写应用程序和小程序分别验证:310000之间任何正整数都满足上述规则。2. 编写一个程序模拟同时掷2个骰子。程序要用()模拟产生第一个骰子,然后再产生第二个骰子,将2个结果相加。和等于7的可能性最大,等于2和12的可能性最小。 下图表示了出现36种情况组合。程序模拟掷3600次骰子,判断求和结果是否合理,共有6种情况的和是7,故在3600次掷骰子的结果中应当有1/6的可能性

2、是7。123456123456723456783456789456789105678910116789101112一、 实验步骤:1. 应用程序:package cp2;public class a4 public static void main(String args) boolean a=true; int j; for(int i=3;i1;) if(j%2=0) j=j/2; else j=j*3+1; if(j!=1) a=false;break; (a); 运行结果:true小程序:package cp2;import .*;import .*;public class a5 e

3、xtends Applet Label lab1; TextField input1; int num1=1; public void init() lab1=new Label(任意输入310000的一个整数); input1=new TextField(10); add(lab1); add(input1); public boolean action(Event e,Object o) num1=(input1.getText(); showStatus(); input1.setText(); repaint(); showStatus(这个数是+num1); return true;

4、 public void paint(Graphics g) int xpos=50,ypos=50,i=0; int xpos1=xpos; while(num1!=1) if(num1%2=0) num1=num1/2; (num1), xpos, ypos); else num1=num1*3+1; (num1), xpos, ypos); xpos=xpos+50; i+; if(i%5=0) ypos=ypos+10; xpos=xpos1; 运行结果:2.程序:package cp2;import .*;import .*;public class a6 extends Apple

5、t Label lab; TextField input; int a,b,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12; double i2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12; public void init() lab=new Label(输入次数); input=new TextField(10); add(lab); add(input); public boolean action(Event e,Object o) int time=(); showStatus(); (); showStatus(模拟次数+time);

6、t2=t3=t4=t5=t6=t7=t8=t9=t10=t11=t12=0; for(int i=1;i=0;t-) (bt),j*20-t*20,55); for(i=0;ib.length;i+) bi=0; 运行结果:* * * * * *2:程序:package cp3;import .*;import .*;public class a6 extends Applet Label lab1,lab2; TextField input1,input2; int a,b,i; double sum=0; public class aa int mult(int n) int s=1; f

7、or(int j=1;j=n;j+) s*=j; return s; public void init() lab1=new Label(输入x大小); input1=new TextField(10); lab2=new Label(输入n值); input2=new TextField(10); add(lab1); add(input1); add(lab2); add(input2); public boolean action(Event e,Object o) a=(input1.getText(); b=(input2.getText(); input1.setText(); i

8、nput2.setText(); showStatus(); sum=0; aa c=new aa(); for(i=0;i=b;i+) sum+=(double)(a,i)/(double)(i); showStatus(结果为+sum); return true; 输入x=1,n=30时的运行结果:四二、 实验内容:1. 定义一个类,它包含了一个int类型的变量x、若干个构造函数(根据你的需要)和一个输出方法show()。 编程:从键盘输入一个数,将这个数传递给这个类的x,采用方法show()逆序输出这个数。2. 定义一个整形集合类integerSet。这种类型的对象可以存储10个20至8

9、0之间的整数,即它的内部有一个整形数组存储数据。编程: (1)判断两个integerSet类对象S1和S2是否相等。提示:集合相等的前提是所有元素相等。 (2)输出两个集合对象的交集。(3)输出两个集合对象的并集。 (4)将一个整形数据插入到一个集合对象中。 (5)从一个集合中删除某一个元素。三、实验步骤:1.程序 package cp4; class aa int x; aa(int n) x=n; void show() int b=0; for(;x!=0;) b=b*10+x%10; x/=10; (b); public class a1 public static void main

10、(String args) int value=CP4.readInt(); aa a1=new aa(value); a1.show(); 运行结果:1234554321成功构建 (总时间: 3 秒)2.package cp4;class integer int a=new int10; public void input() int i; for(i=0;i=9;i+) ai=CP4.readInt(); if(ai=0) break; public void output() int i; for(i=0;i=9;i+) (ai); ( ); (); class uninteger in

11、t a=new int20; public void output() int i; for(i=0;i=19;i+) (ai); ( ); (); class means int i,j; public boolean eq(integer a1,integer a2) for(i=0;i=9;i+) if(a1.ai=0) break; for(j=0;j=9;j+) if(a2.aj=0) break; if(i!=j) return false; else for(i=0;i=9;i+) if(a1.ai!=a2.ai) return false; return true; publi

12、c void mix(integer a1,integer a2,integer mix) int t=0; for(i=0;i=9;i+) for(j=0;j=9;j+) if(a1.ai=a2.aj) t+=a1.ai; else if(a1.aia2.aj) break; public void union(integer a1,integer a2,uninteger union) int t,s; i=0; for(s=0,t=0;s=9&t=9&a1.as!=0&a2.at!=0;) if(a1.asa2.at) i+=a2.at; t+; else i+=a1.as; s+;t+

13、; if(a1.as=0|s9)&(t=9&a2.at!=0) for(;t9)&(s=9&a1.as!=0) for(;s=9;) i+=a1.as+; public void insert(integer a1,int a) for(i=0;i=9;i+) if(a1.ai=0) break; if(i=10) (此表已满不能插入); else if(a=1;i-) a1.ai=a1.ai-1; a1.a0=a; else if(a=a1.ai-1) a1.ai=a; else for(j=0;j+) if(a=a1.aj&aj+1;i-) a1.ai=a1.ai-1; a1.aj+1=a

14、; (插入后的表一变为:);a1.output(); public void delete(integer a2,int a) for(i=0;i=9;i+) if(a2.ai=0) break; if(a2.aa=0) (所删位置无元素); else for(j=a;ji;j+) a2.aj=a2.aj+1; (删除后的表二变为:);a2.output(); public class a5 public static void main(String args) boolean f; int a,b; integer mix=new integer(); uninteger union=ne

15、w uninteger(); integer a1=new integer(); integer a2=new integer(); (请以从小到大顺序输入两组(每组个数小于11个)2080之间的整数,分别以0,0结束); a1.input(); a2.input(); (表一为:);a1.output(); (表二为:);a2.output(); means m1=new means(); f=m1.eq(a1,a2); if(f) (两个集合相等); else (两个集合不相等); m1.mix(a1,a2,mix); m1.union(a1,a2,union); (两个集合的交为:);(

16、); (两个集合的并为:);(); (请输入要插入表一的整数:);a=CP4.readInt(); m1.insert(a1,a); (请输入要删除表二元素的下标:);b=CP4.readInt(); m1.delete(a2,b); *运行结果:请以从小到大顺序输入两组(每组个数小于11个)2080之间的整数,分别以0,0结束2132445678800314656800表一为:21 32 44 56 78 80 0 0 0 0 表二为:31 46 56 80 0 0 0 0 0 0 两个集合不相等两个集合的交为:56 80 0 0 0 0 0 0 0 0 两个集合的并为:21 31 32 4

17、4 46 56 78 80 0 0 0 0 0 0 0 0 0 0 0 0 请输入要插入表一的整数:46插入后的表一变为:21 32 44 46 56 78 80 0 0 0 请输入要删除表二元素的下标:6所删位置无元素成功构建 (总时间: 1 分钟 38 秒)五三、 实验内容1 写一个类,它具有一个protected数据成员。在同一个文件内再写第二个类,在这个类内编写一个方法, 以操作第一类内的protected数据;2. 采用public、private、protected以及友员等成员创建一个类,然后定义这个类的一个对象。观察在访问所有类成员时会出现哪种类型的编译错误。三、实验步骤 1.

18、程序/* a4.java*/package cp5;public class a4 public static void main(String args) a4_2 b=new a4_2(); (); /* a4_1.java*/package cp5;public class a4_1 int a1=1; public int a2=1; private int a3=1; protected int a4=1; /* a4_2.java*/package cp5;public class a4_2 a4_1 a=new a4_1(); public void datause() (dat

19、a=+a.a1); (public data=+a.a2); / (privite data=+a.a3); /拒绝访问 (protected data=+a.a4); 运行结果;data=1public data=1protected data=1成功构建 (总时间: 0 秒)2.程序:package cp5;class Test public String pub; private String pri; protected String prot; String fri; Test() this.pub=public; =private; =protected; =friendly; p

20、ublic class a5 public static void main(String args) Test tmp=new Test(); (tmp.pub); (); (); (); 运行结果;publicException in thread main : Uncompilable source code - pri可以在中访问privateat cp5.a5.main(a5.java:23)Java Result: 1成功构建 (总时间: 3 秒)六四、 实验内容:1. 编写一个采用随机函数生成句子的游戏。现有4个字符串数组:article、noun、verb、prepositio

21、n,它们的内容分别是:the、a、one、some、any;boy、girl、dog、town、car;drove、jumped、ran、walked、skipped;to、from、over、under、依照句法要求:article+noun+verb+preposition+article+noun产生20个句子。2. 从键盘输入几行文本做如下处理:(1) 显示各元音字母出现的次数。(2) 统计各个单词的长度。五、 实验步骤:1.程序package cp6;public class a3 public static void main(String args) String article

22、=the,a,one,some,any; String noun=boy,girl,dog,town,car; String verb=drove,jumped,ran,walked,skipped; String preposition=to,from,over,under,on; for(int i=0;i=19;i+) (article(int)()*4)+ ); (noun(int)()*4)+ ); (verb(int)()*4)+ ); (preposition(int)()*4)+ ); (article(int)()*4)+ ); (noun(int)()*4); (); 实验

23、结果:the girl ran from one dogthe boy walked to some dogthe boy walked over the dogthe dog walked under a boysome girl ran under one boythe town ran under a towna town ran over the dogthe dog walked from some towna boy walked under a towna girl ran under the townone boy jumped from a dogone girl jumpe

24、d from the townthe girl drove from one girlthe boy ran under the boythe girl walked under one dogone boy drove over a towna boy ran to a townthe town drove under the girlsome boy ran to a boysome dog jumped to some dog成功构建 (总时间: 0 秒)2.程序package cp6;class aa public void a1(String s) int i=0,j=0,t=0; int a=new int8; for(;i=()-1;) if(i)!= )i+; else break; if(i=()(字母个数为+()+t);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com