浙大JAVA-实验题答案11answer

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

实验11数组作为方法的参数1.程序填空题,不要改变与输入输出有关的语句。60030编写排序函数(方法)输入一个正整数repeat(0repeat10),做repeat次下列运算:输入一个正整数n,再输入n个整数,将它们从小到大排序后输出。要求将排序编写为一个sort()方法。例:括号内是说明输入3(repeat=3)451763123554321输出156712312345importjava.util.Scanner;publicclassTest60030{publicstaticvoidmain(String[]args){intri,repeat;inti,n,a[];Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri=repeat;ri++){n=in.nextInt();a=newint[n];for(i=0;in;i++)a[i]=in.nextInt();sort(a);for(i=0;in;i++)System.out.print(a[i]+);System.out.println();}}/*---------*///说明:数组作参数时,传递的是地址,形参数组和实参数组共用同一块内存,//方法sort()中对形参数组b排序,实际上就是对实参数组a排序,//所以不需要返回值。staticvoidsort(intb[]){inti,j,k,temp;for(i=0;ib.length-1;i++){//选择法递增排序k=i;for(j=i+1;jb.length;j++)if(b[k]b[j])k=j;if(i!=k){temp=b[i];b[i]=b[k];b[k]=temp;}}}}60031判断两个矩阵是否相同(方法)输入一个正整数repeat(0repeat10),做repeat次下列运算:读入1个正整数n(1≤n≤6),再读入2个n阶方阵a和b,判断2个方阵是否相同。要求:编写判断函数(方法)judge()。例:括号内是说明输入:2(repeat=2)3(n=3)123456789(a矩阵)111111111(b矩阵)212341234输出:NoYesimportjava.util.Scanner;publicclassTest60031{publicstaticvoidmain(String[]args){intri,repeat;inta[][],b[][],i,j,n;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri=repeat;ri++){n=in.nextInt();a=newint[n][n];b=newint[n][n];for(i=0;in;i++)for(j=0;jn;j++)a[i][j]=in.nextInt();for(i=0;in;i++)for(j=0;jn;j++)b[i][j]=in.nextInt();if(judge(a,b))System.out.println(Yes);elseSystem.out.println(No);}}/*--------------------*/staticbooleanjudge(inta[][],intb[][]){for(inti=0;ia.length;i++)for(intj=0;ja[i].length;j++)if(a[i][j]!=b[i][j])returnfalse;returntrue;}}60032编写函数求矩阵最大值输入一个正整数repeat(0repeat10),做repeat次下列运算:读入2个正整数m和n(1≤m,n≤6),再读入1个m×n阶矩阵a,计算该矩阵元素的最大值。要求:编写max(),返回矩阵元素的最大值。例:括号内是说明输入:1(repeat=1)32(m=3,n=2)2346556778894输出:max=567importjava.util.Scanner;publicclassTest60032{publicstaticvoidmain(String[]args){intri,repeat;inta[][],i,j,m,n;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri=repeat;ri++){m=in.nextInt();n=in.nextInt();a=newint[m][n];for(i=0;im;i++)for(j=0;jn;j++)a[i][j]=in.nextInt();System.out.println(max=+max(a));}}/*---------*/staticintmax(intb[][]){intmax=b[0][0];for(inti=0;ib.length;i++)for(intj=0;jb[i].length;j++)if(maxb[i][j])max=b[i][j];returnmax;}}60033矩阵相加(方法)输入一个正整数repeat(0repeat10),做repeat次下列运算:读入1个正整数n(1≤n≤6),再读入2个n阶方阵a和b,计算矩阵的和。要求:(1)编写计算矩阵和的函数(方法)add()。(2)编写输出矩阵的方法prt()。矩阵元素输出使用:System.out.print(a[i][j]+);例:括号内是说明输入:1(repeat=1)3(n=3)123456789(a矩阵)111111111(b矩阵)输出:AMatrix123456789BMatrix111111111A+BMatrix2345678910importjava.util.Scanner;publicclassTest60033{publicstaticvoidmain(String[]args){intri,repeat;inta[][],b[][],c[][],i,j,n;Scannerin=newScanner(System.in);repeat=in.nextInt();for(ri=1;ri=repeat;ri++){n=in.nextInt();a=newint[n][n];b=newint[n][n];c=newint[n][n];for(i=0;in;i++)for(j=0;jn;j++)a[i][j]=in.nextInt();for(i=0;in;i++)for(j=0;jn;j++)b[i][j]=in.nextInt();add(a,b,c);prt(AMatrix,a);prt(BMatrix,b);prt(A+BMatrix,c);}}/*----加法-----*/staticvoidadd(intx[][],inty[][],intz[][]){for(inti=0;ix.length;i++)for(intj=0;jx[i].length;j++)z[i][j]=x[i][j]+y[i][j];}/*----输出-----*/staticvoidprt(Strings,inta[][]){System.out.println(s);for(inti=0;ia.length;i++){for(intj=0;ja[i].length;j++)System.out.print(a[i][j]+);System.out.println();}}}2.编程题60006编程:简化的插入排序(提示:本题只需考虑整数升序排列的情况)输入一个正整数n(n0),做n次下列运算:输入一组(5个)有序的整数,再输入一个整数x,把x插入到这组数据中,使该组数据(6个数)仍然有序。说明:1)源程序中不得出现package关键字;2)程序中的第一个大括号“{”必须位于类名所在行。3)类名与变量名由编程者自取。4)指明为整数或整数的数据,不要用浮点类型。输入输出示例:括号内为说明输入:2(n=2,后面将输入2组数据和对应的x)12457(第一组有序整数)3(待插入整数x=3)12579(第二组有序整数)-10(待插入整数x=-10)输出(输出的每个数后有一个空格,每组数占一行):123457(插入后的第一组6个有序数)-1012579(插入后的第二组6个有序数)importjava.util.Scanner;publicclassTest60006{publicstaticvoidmain(String[]args){intri,n;inta[],x,i,j;Scannerin=newScanner(System.in);n=in.nextInt();for(ri=1;ri=n;ri++){a=newint[6];//增加一个元素,保存插入的整数for(i=0;i5;i++)//i5可写成:ia.length-1a[i]=in.nextInt();x=in.nextInt();//1.找到插入点ifor(i=0;i5;i++)//如果插入到最前面,i=0时就停止循环了if(a[i]=x)break;//如果插入到最后面,循环正常结束,i=5//2.插入点及其后元素后移for(j=4;j=i;j--)//j=4可写成:j=a.length-2a[j+1]=a[j];//如果插入到最后面,i=5,不会执行该循环//3.插入整数a[i]=x;for(i=0;ia.length;i++)System.out.print(a[i]+);System.out.println();}}}60007编程:查找指定元素编程,输入一个正整数n(n0),做n次下列运算:输入6个整数,将它们存入数组a中,再输入一个整数x,然后在数组a中查找与x相同的元素,如果找到,输出x在数组a中对应元素的最小下标,如果没有找到,输出相应信息。说明:1)源程序中不得出现package关键字;2)程序中的第一个大括号“{”必须位于类名所在行。3)类名与变量名由编程者自取。4)指明为整数或整数的数据,不要用浮点类型。输入输出示例:括号内为说明输入:2(n=2,后面将分别输入2批数据和相应的x)135795(第一批数据)5(x=5)135706(第二批数据)2(x=2)输出:(西文冒号,除了not和found之间有1空格,其他无空格)5:a[2]2:notfoundimportjava.util.Scanner;publicclassTest60007{publicstaticvoidmain(String[]args){intri,n;inti,a[];intx;a=newint[6];Scannerin=newScanner(System.in);n=in.nextInt();for(ri=1;ri=n;ri++){for(i=0;ia.length;i++)a[i]=in.nextInt();x=in.nextInt();for(i=0;ia.length;i++)//按顺序找x,找到就结束循环if(a[i]==x)break;if(ia.length)//输出System.out.println(x+:a[+i+]);elseSystem.out.println(x+:notfound);}}}

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功