浙大JAVA 实验题答案11answer

更新时间:2024-05-08 10:11:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验11 数组作为方法的参数

1. 程序填空题,不要改变与输入输出有关的语句。

60030 编写排序函数(方法)

输入一个正整数repeat (0

输入一个正整数n,再输入n个整数,将它们从小到大排序后输出。要求将排序编写为一个sort()方法。

例:括号内是说明 输入

3 (repeat=3) 4 5 1 7 6 3 1 2 3

5 5 4 3 2 1 输出 1 5 6 7 1 2 3 1 2 3 4 5

import java.util.Scanner; public class Test60030{

public static void main(String []args){ int ri, repeat; int i, n, a[];

Scanner in=new Scanner(System.in); repeat=in.nextInt();

for(ri=1; ri<=repeat; ri++){ n=in.nextInt(); a=new int[n];

for(i=0; i

for(i=0; i

System.out.print(a[i]+\ System.out.println(); } }

/*---------*/

//说明:数组作参数时,传递的是地址,形参数组和实参数组共用同一块内存, //方法sort()中对形参数组b排序,实际上就是对实参数组a排序, //所以不需要返回值。

static void sort(int b[]){ int i,j,k,temp;

for(i=0;i

k=i;

for(j=i+1;jb[j]) k=j; if(i!=k){

temp=b[i];b[i]=b[k]; b[k]=temp; } } }

}

60031 判断两个矩阵是否相同(方法)

输入一个正整数repeat (0

读入 1 个正整数 n(1≤n≤6), 再读入2个 n 阶方阵 a和b , 判断2个方阵是否相同。 要求:编写判断函数(方法)judge()。

例:括号内是说明 输入:

2 (repeat=2) 3 (n=3)

1 2 3 4 5 6 7 8 9 (a矩阵) 1 1 1 1 1 1 1 1 1 (b矩阵) 2

1 2 3 4 1 2 3 4 输出: No Yes

import java.util.Scanner; public class Test60031{

public static void main(String []args){ int ri, repeat;

int a[][],b[][],i,j,n;

Scanner in=new Scanner(System.in); repeat=in.nextInt();

for(ri=1; ri<=repeat; ri++){ n=in.nextInt();

a=new int[n][n]; b=new int[n][n]; for(i=0; i

a[i][j]=in.nextInt(); for(i=0; i

b[i][j]=in.nextInt(); if(judge(a,b))

System.out.println(\ else

System.out.println(\ } } /*--------------------*/

static boolean judge(int a[][],int b[][]){ for(int i=0;i

for(int j=0;j

if(a[i][j]!=b[i][j]) return false; return true; }

}

60032 编写函数求矩阵最大值

输入一个正整数repeat (0

读入 2 个正整数 m和n(1≤m,n≤6), 再读入1个 m×n 阶矩阵 a , 计算该矩阵元素的最大值。 要求:编写max(),返回矩阵元素的最大值。

例:括号内是说明 输入:

1 (repeat=1) 3 2 (m=3,n=2) 23 465 567 78 89 4 输出: max=567

import java.util.Scanner; public class Test60032{

public static void main(String []args){ int ri, repeat; int a[][],i,j,m,n;

Scanner in=new Scanner(System.in); repeat=in.nextInt();

for(ri=1; ri<=repeat; ri++){

m=in.nextInt(); n=in.nextInt(); a=new int[m][n]; for(i=0; i

a[i][j]=in.nextInt();

System.out.println(\max(a)); } }

/*---------*/

static int max(int b[][]){ int max=b[0][0];

for(int i=0;i

for(int j=0;j

}

60033 矩阵相加(方法)

输入一个正整数repeat (0

读入 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)

1 2 3 4 5 6 7 8 9 (a矩阵) 1 1 1 1 1 1 1 1 1 (b矩阵) 输出: A Matrix 1 2 3 4 5 6 7 8 9 B Matrix 1 1 1 1 1 1 1 1 1 A+B Matrix 2 3 4 5 6 7 8 9 10

import java.util.Scanner; public class Test60033{

public static void main(String []args){

int ri, repeat;

int a[][],b[][],c[][],i,j,n;

Scanner in=new Scanner(System.in); repeat=in.nextInt();

for(ri=1; ri<=repeat; ri++){ n=in.nextInt();

a=new int[n][n]; b=new int[n][n];c=new int[n][n]; for(i=0; i

a[i][j]=in.nextInt(); for(i=0; i

b[i][j]=in.nextInt(); add(a,b,c);

prt(\ prt(\ prt(\ } }

/*----加法-----*/

static void add(int x[][],int y[][],int z[][]){ for(int i=0;i

for(int j=0;j

/*----输出-----*/

static void prt(String s,int a[][]){ System.out.println(s);

for(int i=0; i

for(int j=0;j

}

2. 编程题

60006 编程:简化的插入排序(提示:本题只需考虑整数升序排列的情况)

输入一个正整数n (n>0),做 n 次下列运算:

输入一组(5个)有序的整数,再输入一个整数 x,把 x 插入到这组数据中,使该组数据(6个数)仍然有序。 说明:

1)源程序中不得出现package关键字;

2)程序中的第一个大括号“{”必须位于类名所在行。 3)类名与变量名由编程者自取。

4)指明为整数或整数的数据,不要用浮点类型。

输入输出示例:括号内为说明 输入:

2 (n=2,后面将输入2组数据和对应的x) 1 2 4 5 7 (第一组有序整数) 3 (待插入整数x=3) 1 2 5 7 9 (第二组有序整数) -10 (待插入整数x=-10)

输出(输出的每个数后有一个空格,每组数占一行): 1 2 3 4 5 7 (插入后的第一组6个有序数) -10 1 2 5 7 9 (插入后的第二组6个有序数)

import java.util.Scanner; public class Test60006 {

public static void main(String []args){ int ri,n;

int a[],x,i,j;

Scanner in=new Scanner(System.in); n=in.nextInt();

for(ri=1; ri<=n; ri++){

a=new int[6]; //增加一个元素,保存插入的整数 for(i=0; i<5; i++) //i<5可写成:i

//1.找到插入点 i for(i=0;i<5;i++)

//2.插入点及其后元素后移

for(j=4;j>=i;j--) //j=4可写成:j=a.length-2

a[j+1]=a[j]; //如果插入到最后面,i=5,不会执行该循环

//如果插入到最前面,i=0时就停止循环了

if(a[i]>=x) break; //如果插入到最后面,循环正常结束,i=5

}

}

}

//3.插入整数

a[i]=x;

for(i=0; i

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

60007 编程:查找指定元素

编程,输入一个正整数 n (n>0),做 n 次下列运算:

输入6个整数,将它们存入数组 a 中,再输入一个整数 x,然后在数组 a 中查找与 x 相同的元素,如果找到,输出 x 在数组 a 中对应元素的最小下标,如果没有找到,输出相应信息。

说明:

1)源程序中不得出现package关键字;

2)程序中的第一个大括号“{”必须位于类名所在行。 3)类名与变量名由编程者自取。

4)指明为整数或整数的数据,不要用浮点类型。

输入输出示例:括号内为说明 输入: 2 (n=2,后面将分别输入2批数据和相应的x) 1 3 5 7 9 5 (第一批数据) 5 (x=5)

1 3 5 7 0 6 (第二批数据) 2 (x=2) 输出:(西文冒号,除了not和found之间有1空格,其他无空格) 5:a[2]

2:not found

import java.util.Scanner; public class Test60007{

public static void main(String []args){ int ri,n; int i,a[]; int x;

a=new int[6];

Scanner in=new Scanner(System.in); n=in.nextInt();

for(ri=1; ri<=n; ri++){

}

}

} for(i=0;i

for(i=0;i

if(a[i]==x) break;

if(i

System.out.println(x+\+i+\); else

System.out.println(x+\);

本文来源:https://www.bwwdw.com/article/y4wg.html

Top