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