数组参考答案.docx
- 文档编号:10247702
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:16
- 大小:20.16KB
数组参考答案.docx
《数组参考答案.docx》由会员分享,可在线阅读,更多相关《数组参考答案.docx(16页珍藏版)》请在冰豆网上搜索。
数组参考答案
一、【必做题】
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 参考答案