第三次Java练习题

2026/1/14 15:33:21

5.数组部分练习

1. (倒置输入的数)编写程序,读取10个整数,然后按照和读取顺序相反的顺序将

他们显示出来。

import java.util.*; public class lianxi31 {

public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println(“请输入10个整数: ”); String str=in.nextString();

StringBuffer n=new StringBuffer(str); For(int i=1;i<10;i++){ n.reverse();

System.out.println(n); } } }

2. (计算数字出现的次数)编写程序,读取1到100之间的整数,然后计算每个数出

现的次数,假定输入是以0结束,下面是这个程序的运行示例。 Enter the integers betweens 1 and 100: 2 5 6 5 4 3 23 43 2 0 2 occurs 2 times

3 occurs 1 time 4 occurs 1 time

5 occurs 2 times 6 occurs 1 time 23 occurs 1 time 43 occurs 1 time

import java.util.*; public class lianxi47 {

public static void main(String[] args) { Scanner in = new Scanner(System.in); int n=1,num; while(n<=7){ do{

System.out.print(\请输入1--100之间的整数:\ int num= in.nextInt(); }while(num<1||num>100); for(int i=1;i<=num;i++) {System.out.print(\ }

System.out.println(); n ++;;}

} }

public static void main(String args[]){ int []a=new inta[10]; 3

(分析成绩) 编写一个程序,读入个数不确定考试分数,并且判断有多少个分数是大于或等于平均分,多少个分数低于平均分,输入一个负数表示输入的结束。假设成绩最高分是10分。

(打印不同的数) 编写一个程序,读入10个数,并且显示互不相同的数(即一个数出现多次,只显示一次)提示:读入一个数,如果是新数,则它存储在数组中,如果该数已经在数组中,则忽略它。下面是这个程序的运行示例。 Enter the number: 12 3 2 1 6 3 4 5 2 The distinct numbers are: 1 2 3 6 4 5

Public static void main(String args[]){ Scanner reader=new Scanner(System.in); System.out.println(“请读入10个数: ”); double s=reader.nextDouble();

编写一个程序,生成0-9之间的100个随机数,然后显示每个数字出现的次数。

(求数组的平均值)编写两个重载的方法,使用下面的方法头返回一个数组的平均数: public int average(int[] array)

public double average(double[] array)

编写一个方法,使用下面的方法头求出一个整数数组中的最小元素 public double min(double [] array)

编写测试程序,提示用户输入十个数字,调用这个方法返回最小值,下面是这个程序的运行示例:

Enter ten number : 1.9 2.5 3.7 2 1.5 6 3 4 5 2 The minimum number is 1.5

(找出最小元素的下标),编写一个方法,求出整数数组中最小元素的下标,如果这样元素个数大于1,则返回最小的下标。使用下面的方法头; public int indexOfSmallestElement(double[] array)

编写测试程序,提示用户输入十个数字,调用这个方法返回最小元素的下标,然后显示这个下标值。

(数组倒置)编写一个方法,实现数组的倒置,方法将传递到实参数组倒置,然后返回这个数组。编写一个测试程序,提示用户输入十个数字,调用这个方法倒置这个数组,然后显示这个数组。

public int [] reverse(int [] array)

(对学生进行排序)编写一个程序,提示用户输入学生个数,学生姓名和他们成绩,然后按照学生成绩降序打印学生的姓名

4

5 6

7

8

9

10

Public static void main(String args[]){

11 八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著

名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种方法可以解决此问题。编写程序给出一个解决方案

12 一个学校有100个储物柜和100个学生。所有储物柜在上学的第一天都是关着的。随着

学生进来,第一个学生用s1表示,打开每个柜子,然后第二个学生,用s2表示,从第二个柜子开始,第二个柜子用L2表示,然后关闭其他的柜子。学生s3从第三个柜子开始,然后改变每个柜子(如果它是开着就关上,如果它是关上就打开)。学生s4从柜子L4开始,然后改变每个柜子。学生s5从柜子L5开始,然后改变每个柜子。以此类推,直到s100改变L100为止。

在所有学生经过教学楼并改变了柜子后,哪些柜子是开着的,编写程序找出答案

提示:使用存放100个布尔类型元素的数组,每个元素表明一个柜子是开的还是关的,初始状态,所有柜子都是关的。

13. 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 写一个排序方法,方法头如下所示:

public int[] sort(int[] array)

对数组进行从小到大进行排序,编写测试程序,读取10个int类型数字,调用该方法,然后显示排好序的数组。

14.(完全相同的数组)如果两个数组list1和list2长度相同,而且对于每个i,list1[i]都等于list2[i],则认为list1和list2是完全相同的,使用下面方法头编写一个方法,如果list1和list2完全相同,那么这个方法返回true public Boolean equal(int[] list1 int[] list2)

编写一个测试程序,提示用户输入两个整数数列,然后显示这两个整数数列是否完全相同。 15.(数学方面:组合)编写一个程序,提示用户输入10个整数,然后显示从10个数中选出两个数的所有组合

16.(模式识别方面,四个连续相等的数)编写下面的方法,测试某个数组中是否有四个连续的值相同的数字 public Boolean isConsecutiveFour(int[] values)

编写测试程序,提示用户输入一个整数数列,如果这个数列有四个连续的具有相同值的数,那就显示true,否则显示false。 二维数组

17 编写一个方法,求整数矩阵所有整数之和,使用下列方法头:

public double sumMatrix(int [][] m)

编写一个测试程序,读取一个3*3 的矩阵,然后显示所有元素的和。下面是一个运行示例:

Enter a 3-by-3 matrix row by row : 1 2 3

4 5 6 7 8 9

Sum of matrix is 136

18编写一个方法,求n*n矩阵主对角线所有整数之和,使用下列方法头:

public double sumMajorDiagonal(int [][] m)

编写一个测试程序,读取一个3*3 的矩阵,然后显示主对角线所有元素的和。下面是一个运行示例:

Enter a 3-by-3 matrix row by row : 1 2 3 4 5 6 7 8 9

Sum of the element in the major diagonal is 15

import java.util.*; public class lianxi29 {

public static void main(String[] args) { Scanner s = new Scanner(System.in); int[][] a = new int[3][3];

System.out.println(\请输入9个整数:\ for(int i=0; i<3; i++) { for(int j=0; j<3; j++) { a[i][j] = s.nextInt(); } }

System.out.println(\输入的3 * 3 矩阵是:\ for(int i=0; i<3; i++) { for(int j=0; j<3; j++) {

System.out.print(a[i][j] + \ }

System.out.println(); }

int sum = 0;

for(int i=0; i<3; i++) { for(int j=0; j<3; j++) { if(i == j) { sum += a[i][j]; } } }

System.out.println(\对角线之和是:\} }

6.类设计部分


第三次Java练习题.doc 将本文的Word文档下载到电脑
搜索更多关于: 第三次Java练习题 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219