数组参考答案.docx

上传人:b****7 文档编号:10247702 上传时间:2023-02-09 格式:DOCX 页数:16 大小:20.16KB
下载 相关 举报
数组参考答案.docx_第1页
第1页 / 共16页
数组参考答案.docx_第2页
第2页 / 共16页
数组参考答案.docx_第3页
第3页 / 共16页
数组参考答案.docx_第4页
第4页 / 共16页
数组参考答案.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

数组参考答案.docx

《数组参考答案.docx》由会员分享,可在线阅读,更多相关《数组参考答案.docx(16页珍藏版)》请在冰豆网上搜索。

数组参考答案.docx

数组参考答案

一、【必做题】

1.编写一个简单程序,要求数组长度为5,分别赋值10,20,30,40,50,在控制台输出该数组的值。

/*例5-1

*数组使用范例

*/

publicclassArrayDemo

{

publicstaticvoidmain(String[]args)

{

int[]buffer=newint[5];

buffer[0]=10;

buffer[1]=20;

buffer[2]=30;

buffer[3]=40;

buffer[4]=50;

for(inti=0;i<5;i++)

{

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

}

}

}

2.输出一个double型二维数组(长度分别为5、4,值自己设定)的值。

/*例5-3

*多维数组范例

*/

publicclassArrayTwoDimension

{

publicstaticvoidmain(String[]args)

{

double[][]buffer=newdouble[5][4];

for(inti=0;i

{

for(intj=0;j

{

System.out.print(buffer[i][j]);

}

System.out.println();

}

}

}

3.将一个字符数组的值(neusofteducation)考贝到另一个字符数组中。

publicclassArrayCopyDemo{

publicstaticvoidmain(String[]args){

//定义源字符数组

char[]copyFrom={'n','e','u','s','o','f','t','e','d','u','c','a','t','i','o','n'};

char[]copyTo=newchar[7];

System.arraycopy(copyFrom,2,copyTo,0,7);

System.out.println(newString(copyTo));

}

}

4.给定一个有9个整数(1,6,2,3,9,4,5,7,8})的数组,先排序,然后输出排序后的数组的值。

publicclassArraySortDemo{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

int[]point={1,6,2,3,9,4,5,7,8};

java.util.Arrays.sort(point);

for(inti=0;i

{

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

}

}

}

5.在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标。

publicclassArraymax{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

int[]a={18,25,7,36,13,2,89,63};

intmax=a[0];

intmaxIndex=0;

for(inti=1;i

{

if(max<=a[i]){

max=a[i];

maxIndex=i;

}

}

System.out.println("最大值为:

"+max+"最大值下标为:

"+maxIndex);

}

}

6、有一个已经排好序的数组。

现输入一个数,要求按原来的规律将它插入数组中。

importjava.util.Scanner;

 

publicclassArrayinsert{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//定义

inta[]={1,2,4,8,16,32,64,128,256,512,0};

Scanners=newScanner(System.in);

a[11]=s.nextInt();

java.util.Arrays.sort(a);

for(inti=0;i

{

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

}

}

}

7.输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

packagecom.neusoft.javaTest;

importjava.util.*;

publicclassAnswer{

publicstaticvoidmain(String[]args){

inti,min,max,n,temp1,temp2;

inta[];

System.out.println("输入数组的长度:

");

Scannerkeyboard=newScanner(System.in);

n=keyboard.nextInt();

a=newint[n];

for(i=0;i

System.out.print("输入第"+(i+1)+"个数据");

a[i]=keyboard.nextInt();

}

//以上是输入整个数组

max=0;

min=0;

//设置两个标志,开始都指向第一个数

for(i=1;i

if(a[i]>a[max])

max=i;//遍历数组,如果大于a[max],就把他的数组下标赋给max

if(a[i]

min=i;//同上,如果小于a[min],就把他的数组下标赋给min

}

//以上for循环找到最大值和最小值,max是最大值的下标,min是最小值的下标

temp1=a[0];

temp2=a[min];//这两个temp只是为了在交换时使用

a[0]=a[max];

a[max]=temp1;//首先交换a[0]和最大值a[max]

if(min!

=0){//如果最小值不是a[0],执行下面

a[min]=a[n-1];

a[n-1]=temp2;//交换a[min]和a[n-1]

}else{//如果最小值是a[0],执行下面

a[max]=a[n-1];

a[n-1]=temp1;

}

for(i=0;i

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

}

}

}

8.将一个数组中的元素逆序存放

publicclassAnswer{

publicstaticvoidmain(String[]args){

Scanners=newScanner(System.in);

inta[]=newint[20];

System.out.println("请输入多个正整数(输入-1表示结束):

");

inti=0,j;

do{

a[i]=s.nextInt();

i++;

}while(a[i-1]!

=-1);

System.out.println("你输入的数组为:

");

for(j=0;j

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

}

System.out.println("\n数组逆序输出为:

");

for(j=i-2;j>=0;j=j-1){

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

}

}

}

 

9.将一个数组中的重复元素保留一个其他的清零。

publicclassAnswer{

publicstaticvoidmain(String[]args){

int[]a={1,2,2,3,4,5,6,4,7,2,10};

for(inti=0;i

for(intj=i+1;j

if(a[i]==a[j]){

a[j]=0;

}

}

}

}

}

10、写一个方法,功能:

定义一个一维的int数组,长度为3,把任意三个整数a,b,c赋值给数组,然后将它们按从小到大的顺序输出(使用冒泡排序)

publicstaticvoidsort(int[]data){

//数组长度  

intlen=data.length;

inttemp=data[0];//临时变量

for(inti=0;i

for(intj=len-1;j>i;j--){

//如果data[j]小于data[j-1],交换  

if(data[j]

temp=data[j];

data[j]=data[j-1];

data[j-1]=temp;

}

}

}

}

//数组打印 

publicstaticvoidprint(int[]data){

for(inti=0;i

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

}

System.out.print("\n");

}

11、给定一维数组{-10,2,3,246,-100,0,5},计算出数组中的平均值、最大值、最小值。

inta[]=newint[]{-10,23,246,-100,0,5};

intmax=a[0];

intmin=a[0];

intadd=a[0];

for(inti=1;i

if(a[i]

min=a[i];

}elseif(a[i]>max){

max=a[i];

}

add=add+a[i];

}

System.out.println("最小值:

"+min);

System.out.println("最大值:

"+max);

System.out.println("平均值:

"+add/a.length);

二、【选做题】

1.利用随机数生成一个整数数组,数组共有10个元素,每个元素的值都在0-9之间,打印该数组并求平均数,多运行几次,看每次运行的结果是否相同。

publicclassRandomArr

{

publicstaticvoidmain(String[]args)

{

int[]arr=newint[10];//声明一个10个元素的int型数组

for(inti=0;i

{

arr[i]=(int)(Math.random()*10);//随机的数乘以10,再强制转换成整形

System.out.print(arr[i]+"");//打印数组

}

}

}

注:

利用Math.random()方法可以生成一个随机小数(0

2.用一个二维数组构造并打印一个有n行的杨辉三角形,n由命令行输入,如一个有6行杨辉三角形如下:

1

11

121

1331

14641

1510101

packagecom.neusoft.javaTest;

importjava.util.Scanner;

 

publicclassAnswer{

publicvoidfun(intnum){

int[][]m=newint[num][];

for(inti=0;i

m[i]=newint[i+1];

m[i][0]=1;m[i][i]=1;

for(intj=0;j

if(j>=1&&i>1)

m[i][j]=m[i-1][j-1]+m[i-1][j];

}

}

for(inti=0;i

for(intj=0;j

System.out.print(m[i][j]);

System.out.print('\t');

}

System.out.println();

}

}

publicstaticvoidmain(String[]args){

Scannerscan=newScanner(System.in);

intnum=scan.nextInt();

newAnswer().fun(num);

}

}

3、二维数组的排序,每一个一维数组单独排序

int[][]a={{23,1,34},{77,89,12,35},{23,20}};

for(intk=0;k

for(inti=0;i

for(intj=0;j

if(a[k][j]>a[k][j+1]){

inttemp=a[k][j];

a[k][j]=a[k][j+1];

a[k][j+1]=temp;

}

}

}

}

4.求一个3*3矩阵对角线元素之和

publicclassAnswer{

publicstaticvoidmain(String[]args){

int[][]a={{1,2,3},{4,5,6},{7,8,9}};

intsum1=0;

intsum2=0;

for(inti=0;i

for(intj=0;j

if(i==j)

sum1+=a[i][j];

if(i+j==2)

sum2+=a[i][j];

}

}

System.out.println("对角线1:

"+sum1+",对角线2:

"+sum2);

 

}

5、有一分数序列:

2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

(不使用数学公式,要求用递归)

doublefirst=2,second=1,temp=0,sum=0;

for(inti=0;i<20;i++)

{

temp=first;

System.out.print(first+"/"+second+"+");

sum=sum+first/second;

first=first+second;

second=temp;

}

System.out.print("="+sum);

6.有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。

例如1234567移动4个就变成4567123

/**

*@paramargs

*/

publicstaticfinalintN=7;

publicstaticvoidmain(String[]args){

int[]a=newint[N];

Scanners=newScanner(System.in);

System.out.println("pleaseinputarraya,tennumbers:

");

for(inti=0;i

a[i]=s.nextInt();

}

System.out.println("pleaseinputm,onenumber:

");

intm=s.nextInt();

int[]b=newint[N];

for(inti=N-m,j=0;i

b[j]=a[i];

}

for(inti=0;i

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

}

for(inti=0,j=m;j

b[j]=a[i];

}

for(inti=0;i

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

}

}

6.

有2个多维数组分别是234和1528

4685910-3

27-5-18

按照如下方式进行运算。

生成一个2行4列的数组。

此数组的第1行1列是2*1+3*5+4*2

第1行2列是2*5+3*9+4*7第2行1列是4*1+6*5+8*2依次类推。

packagecom.neusoft.javaTest;

publicclassArray2{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

inta[][]={{2,3,4},{4,6,8}};

intb[][]={{1,5,2,8},{5,9,10,-3},{2,7,-5,-18}};

for(intk=0;k

for(inti=0;i

intnum=0;

for(intj=0;j

num+=a[k][j]*b[j][i];

}

System.out.print(num+"");

}

System.out.println("");

}

}

}

 

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

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1