一小球从100 米高度自由落下,每次落地后反跳回原高度的一半在落下,求他第10 次落地时,共经过多少米?第十次反跳高度是多少?

答案:

double high = 100, sum = 100;
              for (int i = 2; i <= 10; i++) {

                     sum += high;
                     high /= 2;
              }
              high /= 2;
              System.out.println(sum);
              System.out.println(high);

任意输入一个整形数组,利用冒泡排序法将其排序,要求从小到大排序,冒泡排序必须优化。

答案:

int a[] = { 9, 8, 7, 6, 5, 4, 3, 2, 1, 0 };// 8,7,6,5,4,3,2,1, 9
              for (int i = a.length - 1; i >= 1; i--) {// 外层循环控制比较的轮数
                     boolean flag = true;
                     for (int j = 0; j < i; j++) {// 比较相邻的两个元素,较大的数往后冒泡
                            if (a[j] > a[j + 1]) {// 前一个数比后一个数大
                                   int temp = a[j];// 把前一个大的元素保存到临时变量中
                                   a[j] = a[j + 1];// 把后一个小的元素保存到第一元素中
                                   a[j + 1] = temp;// 把临时变量(也就是第一个元素值),保存到第二个元素中
                                   flag = false;// 假如有过交换 flag变成false
                            }
                     }
                     if (flag) {

                            break;
                     }
              }
              System.out.println(Arrays.toString(a));

用数组和递归二种方法实现:打印出斐波拉契数列的前 20 项:1,1,2,3,5,8........,后一项等于前两 项之和 (数组和递归各5分)

答案:

利用数组实现:

public static void main(String[] args) {

              int[] a = new int[20];
              a[0] = 1;
              a[1] = 1;
              System.out.println(a[0]);
              System.out.println(a[1]);
              for (int i = 2; i < a.length; i++) {

                     a[i] = a[i - 1] + a[i - 2];
                     System.out.println(a[i]);
              }
       }

答案:

用递归实现:

public static void main(String[] args) {

              for (int i = 1; i <= 20; i++) {

                     System.out.println(f(i));
              }
       }
       public static int f(int num) {

              if (num == 1) {

                     return 1;
              } else if (num == 2) {

                     return 1;
              } else {

                     return f(num - 1) + f(num - 2);
              }
       }

编写java程序,将二维数组中的行列互换按下图显示出来(输出原数组和转换后的数组)。

答案:

public class Eval { // 创建类
       public static void main(String[] args) {

              int arr[][]=new int[][]{{1,2,3},{4,5,6},{7,8,9}};
              System.out.println("数组原有内容:");
              for(int i = 0;i<arr.length;i++){

                     for(int j=0;j<arr[i].length;j++){

                            System.out.print(arr[i][j]);
                     }
                     System.out.println();
              }
              System.out.println("行列互换后数组内容:");
              for(int i = 0;i<arr.length;i++){

                     for(int j=0;j<arr[i].length;j++){

                            System.out.print(arr[j][i]);
                     }
                     System.out.println();
              }
       }
}

软测5班有5位学员的成绩分布是60,80,90,100,70,请用数组的方法输出最高分、最低分、平均分

答案:

int[] a = { 100, 90, 80, 70, 60 };
              int max = a[0];
              int min = a[0];
              double sum = 0;
              for (int i = 0; i < a.length; i++) {

                     if (a[i] > max) {

                            max = a[i];
                     }
                     if (min > a[i]) {

                            min = a[i];
                     }
                     sum += a[i];
              }
              System.out.println("最高分:" + max);
              System.out.println("最低分:" + min);
              System.out.println("平均分:" + sum / a.length);

将一个字符数组倒置后输出。倒置是指将字符按相反顺序排列,例如原字符数组顺序是: {'a', 'b', 'c', 'd', 'e'}; 倒置后的顺序为:{'e', 'd', 'c', 'b', 'a'}

答案:

{'a', 'b', 'c', 'd', 'e'}; 倒置后的顺序为:{'e', 'd', 'c', 'b', 'a'}。
              char[] ch = { 'a', 'b', 'c', 'd', 'e' };
              char[] chBak = new char[ch.length];
              for (int i = 0, j = ch.length - 1; i < chBak.length; i++, j--) {

                     chBak[i] = ch[j];
              }
              System.out.println(Arrays.toString(chBak));

有 15 个数存放在一个数组中,输入一个数,要求查找出该数是数组中第几个元素的值。 如果该数不在数组中,则输出“无此数”。以 15 个数用赋初值的方法在程序中给出。要 找的数用 Scanner 的 nextInt 方法输入(15分)。

答案:

Scanner input = new Scanner(System.in);
              int[] a = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 };
              System.out.print("num:");
              int num = input.nextInt();
              boolean flag = true;
              for (int i = 0; i < a.length; i++) {

                     if (num == a[i]) {

                            System.out.print("第" + (i + 1) + "个元素");
                            flag = false;
                            break;
                     }
              }
              if (flag) {

                     System.out.println("无此数");
              }