Java程序设计教程(第2版)课后习题及答案04课后习题_第1页
Java程序设计教程(第2版)课后习题及答案04课后习题_第2页
Java程序设计教程(第2版)课后习题及答案04课后习题_第3页
Java程序设计教程(第2版)课后习题及答案04课后习题_第4页
Java程序设计教程(第2版)课后习题及答案04课后习题_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章课后习题参考答案:

1,编写程序,将一个数组按逆序存放。

答:

importjava.util.*;

publicclassexercise04_01

(

publicstaticvoidmain(String[]args)

(

intdata[J={1,2,34,5,6,7,8,8,9,10,11,12};

inti,tmp,size;

size=data.length;

for(i=0;i<data.length/2;i++)

(

tmp=data[i];

datalij=data[size-1-i];

data[size-l-i]=tmp;

)

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

(

System.out.println(data[i]);

2.已知一个由小到大已排好序的数组,采用二分法将一个数据插入到这个数组中,使插入后的

数组仍然按由小到大的顺序排列。

答:

importjava.util.*;

publicclassexercise04_02

(

publicstaticvoidmain(String[]args)

{

intdata[]={1,2,3,4,5,6,7,8,8,9,10,11,12);

Scannerreader=newScanner(System.in);

inta,i,j,tmp,size;

size=data.length;

intdatal[]=newint[size+l];

a=reader.nextlnt();

i=0;

j=data.length-l;

while(i!=j)

tmp=(i+j)/2;

if(a>=data[tmpj)i=tmp+l;

elsej=tmp-l;

//System.out.println("j="+j);

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

datal[il=data[i];

datal[j]=a;

for(i=j;i<size;i++)

data1[i+1]=data[i];

for(i=0;i<=size;i++)System.out.println(datalfi]);

3.编写程序实现对矩阵的加法、减法和乘法运算。

答:

importjava.util.*;

publicclassexercise04_03

(

publicstaticvoidmain(String[]args)

(

inta[][],b[][],c[][]=null;

inti,j,m,n,k;

Scannerreader=newScanner(System.in);

m=reader.nextlnt();

n=reader.nextlnt();

k=reader.nextlnt();

a=newint[m][n];

b=newint[n][k];

c=newint[m][k];

fbr(i=O;i<m;i++)

for(j=0;j<n;j++)

afi][j]=reader.nextlnt();

fbr(i=O;i<n;i++)

for0=O;j<k;j++)

b[i]|j]=reader.nextlnt();

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

for(j=0;j<k;j++)

(

c[i][j]=O;

fbr(intii=0;ii<n;ii++)

c[i][j]+=a[i][ii]*b[ii][j];

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

for(j=0;j<k;j++)

(

System.out.print(c[i][j]+"");

)

System.out.printlnO;

I

4.〃只猴子选大王。选举方法如下:所有猴子按1、2、3……〃的顺序围坐一圈,从第1个猴子

开始报数,报到m的退出圈子。如此循环报数,直到圈中只剩下一个猴子,即为大王。编程实

现。

答:

importjava.util.*;

publicclassexercise04_04

(

publicstaticvoidmain(String[]args)

(

inta[];

inti,j,m,n,k;

Scannerreader=newScanner(System.in);

n=reader.nextlnt();

m=reader.nextlnt();

a=newint[nJ;

for(i=0;i<n;i++)a[i]=0;

intpos=0,num=0,times=1;

while(times<n)

(

if(a[pos]==0)num++;

if(num==m){

a[pos]=l;

num=0;

times++;

//System.out.print(Hpos="+pos);

)

pos++;

if(pos>=n)pos=0;

}

System.out.println();

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

if(a[i]==O)System.out.print(i+1);

)

5.求出以下形式的算式,每个算式中有9个数位,正好用尽1〜9这九个数字。

000+000=000(共有168种可能的组合)

答:

importjava.util.*;

publicclassexercise04_05

(

publicstaticvoidmain(String[]args)

(

longt=System.currentTimeMillis();

int

for(i=103;i<=498;i++)

(

for(j=i+l;j<=987;j++)

(

k=i+j;

if(k>987)

break;

int[]arr={0,0,00,0,0,0,0,0,0};

arrfi%10]+=l;

arr(i/100]+=l;

arr[i/10%10]4-=l;

arr|j%10J+=l;

arrfj/100]+=l;

arr|j/10%10]+=l;

arr[k%10]+=l;

arr[k/100]+=l;

arr[k/10%10]+=l;

for(l=0;l<10;1++)

(

if(arr[l]>=2)

break;

if(arr[O]>=l)

break;

if(l>9)

System.out.println(i+,,+,,+j+,,=1,+k);

t=System.currentTimeMillis()-t;

System.out.println(Htime=n+t);

6.从键盘输入4个整数,按由小到大的顺序输出。

答:

importjava.util.*;

publicclassexercise04_06

(

publicstaticvoidmain(String[]args)

(

inta[]=newint[41;

intij,t,pos=0;

Scannerreader=newScanner(System.in);

a[OJ=reader.nextInt();

for(i=l;i<=3;i++)

(

t=reader.nextlnt();

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

if(t<a[j])

(

pos=j;

break;

(elsepos++;

for(j=i;j>pos;j-)afjl=a[j-l];

a[pos]=t;

}

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

System.out.println("u+a[i]);

7.在一个方阵中找出马鞍数。所谓马鞍数是这样一个数,在它所在行是最小的数,在它所在列

是最大的数。方阵中也可能没有马鞍数。

答:

importjava.util.*;

publicclassexercise04_07

publicstaticvoidmain(String[Jargs)

(

inta[][];

inti,j,t,n,m,min=O;

Scannerreader=newScanner(System.in);

n=reader.nextlnt();

m=reader.nextlnt();

a=newint[n][m];

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

fbr(j=O;j<m;j++)

a[i]|j]=reader.nextlnt();

fbr(i=O;i<n;i++)

(

1=0;

min=a[i][0];

for(j=l;j<m;j++)

(

if(a[i][j]<min)

(

min=a[i]|j];

t=j;

)

)

for(j=0;j<n;j++)

(

if(a[j][t]>min)

break;

)

if(j==n)

(

System.out.printf(H(%d,%d)%dM,j,t,niin);

break;

}

8.下面的程序从键盘接收任意6个数,假设这6个数为:138756,则要输出一个具有如下

形式的方阵:

138756

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论