for(i=0;i<20;i++){ // 每一行显示5个元素 if(i%5 == 0) System.out.println(); System.out.print(a[i]+\ }
System.out.println(); } }
【运行结果】
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
2.首先让计算机随机产生出10个两位正整数,然后按照从小到大的次序显示出来。
【编程分析】首先利用Math.random()方法,让计算机随机产生10个两位数的正整数,然后编写一个排序方法,实现对数组的排序。(也可以利用java.utitl.Arrays类提供的排序方法排序)
【参考答案】
public class X6_4_2 {
public static void main(String[] args) { int[] a = new int[10]; int i; for(i=0;i<10;i++){ a[i]=10+(int)(90*Math.random()); // 产生10个两位数的随机数 } System.out.println(\随机产生的数据为:\ for(i=0;i<10;i++){ System.out.print(a[i]+\ } System.out.println(\排序后的数据为:\ selectSort(a); // 排序方法的调用 for(i=0;i<10;i++){ System.out.print(a[i]+\ } System.out.println(); }
static void selectSort(int[] aa){ // 选择排序方法的定义 int i,j,k; for(i=1;i 37 aa[i-1]=aa[k]; aa[k]=x; } } } 【运行结果】 随机产生的数据为: 33 67 47 31 19 11 77 65 88 84 排序后的数据为: 11 19 31 33 47 65 67 77 84 88 3.从键盘上输入4行4列的一个实数矩阵到一个二维数组中,然后求出主对角线上元素之乘积以及副对角线上元素之乘积。 【编程分析】本例主要考察二维数组及其动态初始化的方法。 第一步:创建输入流对象。 InputStreamReader isr = new InputStreamReader(System.in); // 创建输入流对象 BufferedReader br=new BufferedReader(isr); 第二步:求主、付对角线乘积 for(i=0;i import java.io.*; public class X6_4_3 { public static void main(String[] args) throws IOException{ final int M = 4; double[][] a = new double[M][M]; int i,j; double main_product=1.0,vice_product=1.0; InputStreamReader isr = new InputStreamReader(System.in); // 创建输入流对象 BufferedReader br=new BufferedReader(isr); for(i=0;i System.out.println(\主对角线乘积为:\ System.out.println(\付对角线乘积为:\ } } 【运行结果】 1 38 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 主对角线乘积为:1056.0 付对角线乘积为:3640.0 ?1 ?3045??2??4.已知一个数值矩阵A为?6217?,另一个矩阵B为? ?0 ???4158????9 4 573 0146 3?6??,求出A与B的4??0?? 乘积矩阵C[3][4]并输出出来,其中C中的每个元素C[i][j]等于?A[i][k]*B[k][j]。 【编程分析】本例主要考察二维数组及其静态初始化的方法,以及如何利用二维数组实现矩 阵的乘积。主要步骤如下: 第一步:定义三个二维数组A、B、C,其中A、B为题目中给的数组,在定义的同时进行静态初始化,C数组为A、B的乘积,其行数为A矩阵的行数、列数为B矩阵的列数。 第二步:利用公式C[i][j]=?A[i][k]*B[k][j]求数组C。 【参考程序】 import java.io.*; public class X6_4_4 { public static void main(String[] args) throws IOException{ final int M =3, N=4, P=4; int i,j,k; int[][] a = {{3,0,4,5},{6,2,1,7},{4,1,5,8}}; int[][] b = {{1,4,0,3},{2,5,1,6},{0,7,4,4},{9,3,6,0}}; int[][] c = new int[M][N]; for(i=0;i 39 for(j=0;j 【运行结果】 48 55 46 25 73 62 48 34 78 80 69 38 5.从键盘上输入一个字符串,试分别统计出该字符串中所有数字、大写英文字母、小写英文字母以及其他字符的个数并分别输出这些字符。 【编程分析】本题主要考察字符串的输入及字符串方法的应用。 第一步:建立输入流对象,实现从键盘输入字符串。 第二步:利用循环语句及字符串类中的方法charAt(),对输入字符串中的每个字符进行判断,并统计出各类字符的个数。 【参考程序】 import java.io.*; public class X6_4_5 { public static void main(String args[]) throws IOException{ InputStreamReader isr= new InputStreamReader(System.in); BufferedReader br = new BufferedReader(isr); String str = br.readLine(); int i, ditNo=0, upCharNo=0, loCharNo=0, otherCharNo=0; for(i=0;i 【运行结果】 abcABCDE1234<>>..dF5 ditNo = 5 upCharNo = 6 loCharNo = 4 otherCharNo = 7 6.从键盘上输入一个字符串,利用字符串类提供的方法将大写字母转变为小写字母,小写字母转变为大写字母,再将前后字符对换,然后输出最后结果。 40