数组-参考答案Word版.doc

上传人:doc321 文档编号:14392735 上传时间:2022-02-05 格式:DOC 页数:11 大小:71.50KB
返回 下载 相关 举报
数组-参考答案Word版.doc_第1页
第1页 / 共11页
数组-参考答案Word版.doc_第2页
第2页 / 共11页
数组-参考答案Word版.doc_第3页
第3页 / 共11页
数组-参考答案Word版.doc_第4页
第4页 / 共11页
数组-参考答案Word版.doc_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数组-参考答案Word版.doc》由会员分享,可在线阅读,更多相关《数组-参考答案Word版.doc(11页珍藏版)》请在三一文库上搜索。

1、一、【必做题】1 编写一个简单程序,要求数组长度为5,分别赋值10,20,30,40,50,在控制台输出该数组的值。/*例5-1 *数组使用范例 */public class ArrayDemo public static void main(String args) int buffer=new int5; buffer0=10; buffer1=20; buffer2=30; buffer3=40; buffer4=50; for(int i=0;i5;i+) System.out.println(bufferi); 2 输出一个double型二维数组(长度分别为5、4,值自己设定)的值。

2、/*例5-3 *多维数组范例 */public class ArrayTwoDimension public static void main(String args) double buffer=new double54; for(int i=0;ibuffer.length;i+) for(int j=0;jbuffer0.length;j+) System.out.print(bufferij); System.out.println(); 3将一个字符数组的值(neusofteducation)考贝到另一个字符数组中。public class ArrayCopyDemo public

3、static void main(String args) /定义源字符数组 char copyFrom = n, e, u, s, o, f, t, e, d, u, c, a, t, i, o, n; char copyTo = new char7; System.arraycopy(copyFrom, 2, copyTo, 0, 7); System.out.println(new String(copyTo); 4 给定一个有9个整数(1,6,2,3,9,4,5,7,8)的数组,先排序,然后输出排序后的数组的值。public class ArraySortDemo /* * param

4、 args */public static void main(String args) / TODO Auto-generated method stubint point = 1,6,2,3,9,4,5,7,8;java.util.Arrays.sort( point );for(int i=0;ipoint.length;i+) System.out.println(pointi);5 在一个有8个整数(18,25,7,36,13,2,89,63)的数组中找出其中最大的数及其下标。public class Arraymax /* * param args */public static

5、void main(String args) int a = 18,25,7,36,13,2,89,63;int max = a0;int maxIndex = 0;for(int i=1;ia.length;i+)if(max=ai)max = ai;maxIndex = i;System.out.println(最大值为:+max+ 最大值下标为:+maxIndex);6、有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。import java.util.Scanner;public class Arrayinsert /* * param args */public

6、static void main(String args) /定义int a = 1,2,4,8,16,32,64,128,256,512,0 ;Scanner s = new Scanner(System.in);a11 = s.nextInt();java.util.Arrays.sort( a );for(int i=0;ia.length;i+) System.out.println(ai);7输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。package com.neusoft.javaTest;import java.util.*;public class A

7、nswer public static void main(String args) int i, min, max, n, temp1, temp2; int a; System.out.println(输入数组的长度:); Scanner keyboard = new Scanner(System.in); n = keyboard.nextInt(); a = new intn; for (i = 0; i n; i+) System.out.print(输入第 + (i + 1) + 个数据); ai = keyboard.nextInt(); /以上是输入整个数组 max = 0;

8、min = 0; /设置两个标志,开始都指向第一个数 for (i = 1; i amax) max = i; /遍历数组,如果大于amax,就把他的数组下标赋给max if (ai amin) min = i; /同上,如果小于amin,就把他的数组下标赋给min /以上for循环找到最大值和最小值,max是最大值的下标,min是最小值的下标 temp1 = a0; temp2 = amin; /这两个temp只是为了在交换时使用a0 = amax; amax = temp1; /首先交换a0和最大值amaxif (min != 0) /如果最小值不是a0,执行下面 amin = an -

9、1; an - 1 = temp2; /交换amin和an-1 else /如果最小值是a0,执行下面 amax = an - 1; an - 1 = temp1; for (i = 0; i n; i+) /输出数组 System.out.print(ai + ); 8 将一个数组中的元素逆序存放public class Answer public static void main(String args) Scanner s = new Scanner(System.in); int a = new int20;System.out.println(请输入多个正整数(输入-1表示结束):)

10、; int i=0,j; do ai=s.nextInt(); i+; while (ai-1!=-1); System.out.println(你输入的数组为:); for( j=0; j=0; j=j-1) System.out.print(aj+ ); 9. 将一个数组中的重复元素保留一个其他的清零。public class Answer public static void main(String args) int a = 1, 2, 2, 3, 4, 5, 6, 4, 7 ,2 ,10;for (int i = 0;i a.length - 1;i +)for (int j = i

11、 + 1;j a.length;j +)if (ai = aj)aj = 0;10、写一个方法,功能:定义一个一维的int 数组,长度为3,把任意三个整数a,b,c赋值给数组,然后将它们按从小到大的顺序输出(使用冒泡排序)public static void sort(int data) / 数组长度 int len = data.length; int temp = data0; / 临时变量for (int i = 0; i i; j-) / 如果dataj小于dataj - 1,交换 if (dataj dataj-1) temp = dataj;dataj = dataj-1;data

12、j-1 = temp;/ 数组打印public static void print(int data) for(int i=0;idata.length;i+)System.out.print(datai+ );System.out.print(n);11、给定一维数组 -10,2,3,246,-100,0,5 ,计算出数组中的平均值、最大值、最小值。int a = new int -10,23,246,-100,0,5; int max = a0; int min = a0; int add = a0; for(int i =1;ia.length;i+) if(aimax) max = a

13、i; add = add+ai; System.out.println(最小值:+min);System.out.println(最大值:+max);System.out.println(平均值:+add/a.length);二、【选做题】1利用随机数生成一个整数数组,数组共有10个元素,每个元素的值都在0-9之间,打印该数组并求平均数,多运行几次,看每次运行的结果是否相同。public class RandomArr public static void main(String args) int arr = new int 10; /声明一个10个元素的int型数组 for(int i =

14、 0; i arr.length; i +) arri = (int) (Math.random() * 10); /随机的数乘以10,再强制转换成整形 System.out.print(arri + ); /打印数组 注:利用Math.random()方法可以生成一个随机小数(0x1)2 用一个二维数组构造并打印一个有n行的杨辉三角形,n由命令行输入,如一个有6行杨辉三角形如下:11 11211331146411510101package com.neusoft.javaTest;import java.util.Scanner;public class Answer public void

15、 fun(int num) int m=new int num; for(int i=0;im.length;i+) mi=new inti+1; mi0=1;mii=1; for(int j=0;j=1&i1) mij=mi-1j-1+mi-1j; for(int i=0;im.length;i+) for(int j=0;jmi.length;j+) System.out.print(mij); System.out.print(t); System.out.println(); public static void main(String args) Scanner scan = new

16、 Scanner(System.in); int num = scan.nextInt(); new Answer().fun(num); 3、二维数组的排序,每一个一维数组单独排序int a = 23, 1, 34 , 77, 89, 12, 35 , 23, 20 ;for (int k = 0;k a.length;k +)for (int i = 0;i ak.length - 1;i +)for (int j = 0;j akj + 1)int temp = akj;akj = akj + 1;akj + 1 = temp;4求一个3*3矩阵对角线元素之和public class A

17、nswer public static void main(String args) int a = 1,2,3,4,5,6,7,8,9;int sum1 = 0;int sum2 = 0;for (int i = 0;i a.length;i +)for (int j = 0;j ai.length;j +)if (i = j)sum1 += aij;if (i + j = 2)sum2 += aij;System.out.println(对角线1: + sum1 + ,对角线2: + sum2);5、有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13.求出这个数列的前20项

18、之和。 (不使用数学公式,要求用递归)double first=2,second=1,temp=0,sum=0;for(int i=0;i20;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个数。例如1 2 3 4 5 6 7 移动4个就变成4 5 6 7 1 2 3 /* * param args */public

19、static final int N =7;public static void main(String args) int a = new intN; Scanner s = new Scanner(System.in); System.out.println(please input array a, ten numbers:); for(int i=0; ia.length; i+) ai = s.nextInt(); System.out.println(please input m , one number:); int m = s.nextInt(); int b = new in

20、tN; for(int i=N-m,j=0; iN;i+,j+) bj = ai; for(int i=0; ib.length; i+) System.out.print(bi + ); for(int i=0,j=m; jN; i+,j+) bj = ai; for(int i=0; ib.length; i+) System.out.print(bi + ); 6 有2个多维数组分别是 2 3 4 和 1 5 2 8 4 6 8 5 9 10 -3 2 7 -5 -18按照如下方式进行运算。生成一个2行4列的数组。此数组的第1行1列是2*1+3*5+4*2第1行2列是2*5+3*9+4*

21、7 第2行1列是4*1+6*5+8*2 依次类推。package com.neusoft.javaTest;public class Array2 /* * param args */public static void main(String args) int a = 2, 3, 4 , 4, 6, 8 ;int b = 1, 5, 2, 8 , 5, 9, 10, -3 , 2, 7, -5, -18 ;for(int k=0;ka.length;k+)for(int i=0;ib0.length;i+)int num = 0;for(int j=0;jb.length;j+)num += akj*bji;System.out.print(num+ );System.out.println(); (注:可编辑下载,若有不当之处,请指正,谢谢!)

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

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1