JAVA 皮常德27章答案.docx

上传人:b****4 文档编号:6548258 上传时间:2023-05-10 格式:DOCX 页数:27 大小:19.91KB
下载 相关 举报
JAVA 皮常德27章答案.docx_第1页
第1页 / 共27页
JAVA 皮常德27章答案.docx_第2页
第2页 / 共27页
JAVA 皮常德27章答案.docx_第3页
第3页 / 共27页
JAVA 皮常德27章答案.docx_第4页
第4页 / 共27页
JAVA 皮常德27章答案.docx_第5页
第5页 / 共27页
JAVA 皮常德27章答案.docx_第6页
第6页 / 共27页
JAVA 皮常德27章答案.docx_第7页
第7页 / 共27页
JAVA 皮常德27章答案.docx_第8页
第8页 / 共27页
JAVA 皮常德27章答案.docx_第9页
第9页 / 共27页
JAVA 皮常德27章答案.docx_第10页
第10页 / 共27页
JAVA 皮常德27章答案.docx_第11页
第11页 / 共27页
JAVA 皮常德27章答案.docx_第12页
第12页 / 共27页
JAVA 皮常德27章答案.docx_第13页
第13页 / 共27页
JAVA 皮常德27章答案.docx_第14页
第14页 / 共27页
JAVA 皮常德27章答案.docx_第15页
第15页 / 共27页
JAVA 皮常德27章答案.docx_第16页
第16页 / 共27页
JAVA 皮常德27章答案.docx_第17页
第17页 / 共27页
JAVA 皮常德27章答案.docx_第18页
第18页 / 共27页
JAVA 皮常德27章答案.docx_第19页
第19页 / 共27页
JAVA 皮常德27章答案.docx_第20页
第20页 / 共27页
亲,该文档总共27页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA 皮常德27章答案.docx

《JAVA 皮常德27章答案.docx》由会员分享,可在线阅读,更多相关《JAVA 皮常德27章答案.docx(27页珍藏版)》请在冰点文库上搜索。

JAVA 皮常德27章答案.docx

JAVA皮常德27章答案

1.角谷猜想:

任何一个正整数n,如果它是偶数则除以二,如果是奇数则乘以3再加上1,这样得到一个新的整数,如此继续进行上述处理,则最后得到的数一定是1,编写应用程序和小程序分别验证:

3~10000之间任何正整数都满足上述规则。

2.编写一个程序模拟同时掷2个骰子。

程序要用( )模拟产生第一个骰子,    然后再产生第二个骰子,将2个结果相加。

和等于7的可能性最大,等于2和12的可能性最小。

 

  下图表示了出现36种情况组合。

程序模拟掷3600次骰子,判断求和结果是否合理,共有6种情况的和是7, 故在3600次掷骰子的结果中应当有1/6的可能性是7。

1

2

3

4

5

6

1

2

3

4

5

6

7

2

3

4

5

6

7

8

3

4

5

6

7

8

9

4

5

6

7

8

9

10

5

6

7

8

9

10

11

6

7

8

9

10

11

12

一、实验步骤:

1.

应用程序:

packagecp2;

publicclassa4{

publicstaticvoidmain(String[]args){

booleana=true;

intj;

for(inti=3;i<=10000;i++){

for(j=i;j>1;){

if(j%2==0){

j=j/2;

}

else{

j=j*3+1;

}

}

if(j!

=1){

a=false;break;

}

}

}

}

运行结果:

true

小程序:

packagecp2;

import.*;

import.*;

publicclassa5extendsApplet{

Labellab1;

TextFieldinput1;

intnum1=1;

publicvoidinit(){

lab1=newLabel("任意输入3~10000的一个整数");

input1=newTextField(10);

add(lab1);

add(input1);

}

publicbooleanaction(Evente,Objecto){

num1=());

showStatus("");

("");

repaint();

showStatus("这个数是"+num1);

returntrue;

}

publicvoidpaint(Graphicsg){

intxpos=50,ypos=50,i=0;

intxpos1=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.

程序:

packagecp2;

 

import.*;

import.*;

publicclassa6extendsApplet{

Labellab;

TextFieldinput;

inta,b,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12;

doublei2,i3,i4,i5,i6,i7,i8,i9,i10,i11,i12;

publicvoidinit(){

lab=newLabel("输入次数");

input=newTextField(10);

add(lab);

add(input);

}

publicbooleanaction(Evente,Objecto){

inttime=());

showStatus("");

("");

showStatus("模拟次数"+time);

t2=t3=t4=t5=t6=t7=t8=t9=t10=t11=t12=0;

for(inti=1;i<=time;i++){

a=(int)()*6+1);

b=(int)()*6+1);

switch(a+b){

case12:

t12++;break;

case11:

t11++;break;

case10:

t10++;break;

case9:

t9++;break;

case8:

t8++;break;

case7:

t7++;break;

case6:

t6++;break;

case5:

t5++;break;

case4:

t4++;break;

case3:

t3++;break;

case2:

t2++;break;

}

i12=(double)t12/i;

i11=(double)t11/i;

i10=(double)t10/i;

i9=(double)t9/i;

i8=(double)t8/i;

i7=(double)t7/i;

i6=(double)t6/i;

i5=(double)t5/i;

i4=(double)t4/i;

i3=(double)t3/i;

i2=(double)t2/i;

repaint();

}

+xn/n!

.

三、实验步骤:

1.程序:

packagecp3;

import.*;

import.*;

publicclassa1extendsApplet{

Labellab;

TextFieldinput;

inta,b[]=newint[20],i,j;

publicvoidinit(){

lab=newLabel("输入数字");

input=newTextField(10);

add(lab);

add(input);

}

publicbooleanaction(Evente,Objecto){

a=());

("");

repaint();

returntrue;

}

publicvoidpaint(Graphicsg){

for(inti=0;a!

=0;i++){

b[i]=a%10;

a/=10;

}

for(j=0;b[j]!

=0;j++);

for(intt=--j;t>=0;t--){

(b[t]),j*20-t*20,55);

}

for(i=0;i<;i++){

b[i]=0;

}

}

}

运行结果:

**

****

******

********

**********

2:

程序:

packagecp3;

import.*;

import.*;

publicclassa6extendsApplet{

Labellab1,lab2;

TextFieldinput1,input2;

inta,b,i;

doublesum=0;

publicclassaa{

intmult(intn){

ints=1;

for(intj=1;j<=n;j++)

s*=j;

returns;

}

}

publicvoidinit(){

lab1=newLabel("输入x大小");

input1=newTextField(10);

lab2=newLabel("输入n值");

input2=newTextField(10);

add(lab1);

add(input1);

add(lab2);

add(input2);

}

publicbooleanaction(Evente,Objecto){

a=());

b=());

("");

("");

showStatus("");

sum=0;

aac=newaa();

for(i=0;i<=b;i++){

sum+=(double)(a,i))/(double)(i);

}

showStatus("结果为"+sum);

returntrue;

}

}

输入x=1,n=30时的运行结果:

二、实验内容:

1.定义一个类,它包含了一个int类型的变量x、若干个构造函数(根据你的需要)和一个输出方法show( )。

 编程:

从键盘输入一个数,将这个数传递给这个类的x,采用方法show( )逆序输出这个数。

2.定义一个整形集合类integerSet。

这种类型的对象可以存储10个20至80之间的整数,即它的内部有一个整形数组存储数据。

编程:

 

(1) 判断两个integerSet类对象S1和S2是否相等。

提示:

集合相等的前提是所有元素相等。

  

(2) 输出两个集合对象的交集。

  

(3) 输出两个集合对象的并集。

  

(4) 将一个整形数据插入到一个集合对象中。

  

(5) 从一个集合中删除某一个元素。

三、实验步骤:

1.

程序

packagecp4;

classaa{

intx;

aa(intn){

x=n;

}

voidshow(){

intb=0;

for(;x!

=0;){

b=b*10+x%10;

x/=10;

}

}

}

publicclassa1{

publicstaticvoidmain(String[]args){

intvalue=();

aaa1=newaa(value);

();

}

}

运行结果:

12345

54321

成功构建(总时间:

3秒)

2.

packagecp4;

classinteger{

inta[]=newint[10];

publicvoidinput(){

inti;

for(i=0;i<=9;i++){

a[i]=();

if(a[i]==0)

break;

}

}

publicvoidoutput(){

inti;

for(i=0;i<=9;i++){

'');}

}

}

classuninteger{

inta[]=newint[20];

publicvoidoutput(){

inti;

for(i=0;i<=19;i++){

'');}

}

}

classmeans{

inti,j;

publicbooleaneq(integera1,integera2){

for(i=0;i<=9;i++){

if[i]==0)

break;

}

for(j=0;j<=9;j++){

if[j]==0)

break;

}

if(i!

=j){

returnfalse;

}

else{

for(i=0;i<=9;i++){

if[i]!

=[i])

returnfalse;

}

}

returntrue;

}

publicvoidmix(integera1,integera2,integermix){

intt=0;

for(i=0;i<=9;i++)

for(j=0;j<=9;j++){

if[i]==[j])

[t++]=[i];

elseif[i]<[j])

break;

}

}

publicvoidunion(integera1,integera2,unintegerunion){

intt,s;

i=0;

for(s=0,t=0;s<=9&&t<=9&&[s]!

=0&&[t]!

=0;){

if[s]<[t]){

[i++]=[s];

s++;

}

elseif[s]>[t]){

[i++]=[t];

t++;

}

else{

[i++]=[s];

s++;t++;

}

}

if([s]==0||s>9)&&(t<=9&&[t]!

=0)){

for(;t<=9;)

[i++]=[t++];

}

elseif([t]==0||t>9)&&(s<=9&&[s]!

=0)){

for(;s<=9;)

[i++]=[s++];

}

}

publicvoidinsert(integera1,inta){

for(i=0;i<=9;i++){

if[i]==0)

break;}

if(i==10)

"此表已满不能插入");

else{

if(a<=[0]){

for(;i>=1;i--){

[i]=[i-1];

}

[0]=a;

}

elseif(a>=[i-1])

[i]=a;

else{

for(j=0;;j++)

if(a>=[j]&&a<=[j+1])

break;

for(;i>j+1;i--){

[i]=[i-1];

}

[j+1]=a;

}

"插入后的表一变为:

");();

}

}

publicvoiddelete(integera2,inta){

for(i=0;i<=9;i++){

if[i]==0)

break;}

if[a]==0)

"所删位置无元素");

else{

for(j=a;j

[j]=[j+1];

}

"删除后的表二变为:

");();

}

}

}

publicclassa5{

publicstaticvoidmain(String[]args){

booleanf;

inta,b;

integermix=newinteger();

unintegerunion=newuninteger();

integera1=newinteger();

integera2=newinteger();

"请以从小到大顺序输入两组(每组个数小于11个)20~80之间的整数,分别以0,0结束");

();

();

"表一为:

");();

"表二为:

");();

meansm1=newmeans();

f=(a1,a2);

if(f)

"两个集合相等");

else

"两个集合不相等");

(a1,a2,mix);

(a1,a2,union);

"两个集合的交为:

");();

"两个集合的并为:

");();

"请输入要插入表一的整数:

");a=();

(a1,a);

"请输入要删除表二元素的下标:

");b=();

(a2,b);

}

}

**********************

运行结果:

请以从小到大顺序输入两组(每组个数小于11个)20~80之间的整数,分别以0,0结束

21

32

44

56

78

80

0

31

46

56

80

0

表一为:

2132445678800000

表二为:

31465680000000

两个集合不相等

两个集合的交为:

568000000000

两个集合的并为:

2131324446567880000000000000

请输入要插入表一的整数:

46

插入后的表一变为:

21324446567880000

请输入要删除表二元素的下标:

6

所删位置无元素

成功构建(总时间:

1分钟38秒)

三、实验内容

1.写一个类,它具有一个protected数据成员。

在同一个文件内再写第二个类,在这个类内编写一个方法, 以操作第一类内的protected数据;

2.采用public、private、protected以及友员等成员创建一个类,然后定义这个类的一个对象。

 观察在访问所有类成员时会出现哪种类型的编译错误。

三、实验步骤

1.程序

/**/

packagecp5;

publicclassa4{

publicstaticvoidmain(String[]args){

a4_2b=newa4_2();

();

}

}

/**/

packagecp5;

publicclassa4_1{

inta1=1;

publicinta2=1;

privateinta3=1;

protectedinta4=1;

}

/**/

packagecp5;

publicclassa4_2{

a4_1a=newa4_1();

publicvoiddatause()

{

"data="+;

"publicdata="+;

序:

packagecp5;

classTest{

publicStringpub;

privateStringpri;

protectedStringprot;

Stringfri;

Test(){

="public";

="private";

="protected";

="friendly";

}

}

publicclassa5{

publicstaticvoidmain(String[]args){

Testtmp=newTest();

}

}

运行结果;

public

Exceptioninthread"main"Uncompilablesourcecode-pri可以在中访问private

atResult:

1

成功构建(总时间:

3秒)

四、实验内容:

1.编写一个采用随机函数生成句子的游戏。

现有4个字符串数组:

article、noun、verb、preposition, 它们的内容分别是:

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.程序

packagecp6;

 

publicclassa3{

publicstaticvoidmain(String[]args){

String[]article={"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(inti=0;i<=19;i++)

{

"");

"");

"");

"");

"");

}

}

}

实验结果:

thegirlranfromonedog

theboywalkedtosomedog

theboywalkedoverthedog

thedogwalkedunderaboy

somegirlranunderoneboy

thetownranunderatown

atownranoverthedog

thedogwalkedfromsometown

aboywalkedunderatown

agirlranunderthetown

oneboyjumpedfromadog

onegirljumpedfromthetown

thegirldrovefromonegirl

theboyranundertheboy

thegirlwalkedunderonedog

oneboydroveoveratown

aboyrantoatown

thetowndroveunderthegirl

someboyrantoaboy

somedogjumpedtosomedog

成功构建(总时间:

0秒)

2.程序

packagecp6;

classaa{

publicvoida1(Strings){

inti=0,j=0,t=0;

int[]a=newint[8];

for(;i<=()-1;){

if(i)!

='')i++;

elsebreak;

}

if(i==())"字母个数为"+()+"\t");

else{

for(i=0;i<=()-1;i++){

if(i)!

='');

elseif(a[0]==0&&(i)=='')

{

a[j++]=i-t;

t=i;

}

else

{

a[j++]=i-t-1;

t=i;

}

}

a[j]=i-t-1;

"字母个数分别为");

for(i=0;a[i]!

=0;i++){

"\t");

}}

t=0;

for(i=0;i<=()-1;i++){

if(i)=='a'||(i)=='i'||(i)=='e'||(i)=='o'||(i)=='u')

t++;

}

"元音字母个数为"+t);

}

}

publicclassa6{

publicstaticvoidmain(String[]args){

aaa1=newaa();

"请输入几行字符串");

Strings1=newString();

Strings2=newString();

Strings3=newSt

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2