【程序30】题目:有一个已经排好序的数组。现输入一个数,要求按原来的规律将它插入数组中。

程序分析:首先判断此数是否大于最后一个数,然后再考虑插入中间的数的情况,插入后此元素之后的数,依次后移一个位置。

import java.util.Scanner;
 public class Prog30{
        public
 static void main(String[] args){
               int
 [] a= {1,2,3,4,5,6,7,8,9};
               Scanner
 sc=new Scanner(System.in);
               System.out.println(“请输入一个数:”);
               int
 n=sc.nextInt();
               System.out.println(“插入后的数组为:”);
               int
 [] b=new int[a.length+1];
               insert(a,b,n);
               for(int
 i=0;i<b.length;i++) {
                      System.out.print(b[i]+"
 ");
               }
        }
        public
 static void insert(int [] a,int [] b,int n) {
               int
 index = 0;
               for(int
 i=0;i<a.length;i++) {
                      b[i]=a[i];
               }
               for(int
 j=0;j<b.length;j++) {
                      if(n<b[j])
 {
                             index=j;
                             break;
                      }
               }
               for(int
 x=b.length-1;x>index;x–) {
                      b[x]=b[x-1];
               }
               b[index]=n;
        }
 }

【程序31】题目:将一个数组逆序输出。

public class Prog31{
        public
 static void main(String[] args){
               int
 [] a= {1,2,5,3,4,5,6,2,8,9};
               for(int
 i=0;i<a.length/2;i++) {
                      int
 temp=a[i];
                      a[i]=a[a.length-i-1];
                      a[a.length-i-1]=temp;
               }
               for(int
 i=0;i<a.length;i++) {
                      System.out.print(a[i]+"
 ");
               }
        }
 }

【程序32】题目:取一个整数a从右端开始的4~7位。

import java.util.Scanner;
 public class Prog32{
        public
 static void main(String[] args){
               Scanner
 sc=new Scanner(System.in);
               System.out.println(“输入一个数字”);
               long
 i=sc.nextInt();
               String
 s=Long.toString(i);
               char[]
 chs=s.toCharArray();
               int
 n=chs.length;
               if(n<7)
 {
                      System.out.println(“输入的数小于7位”);
               }else
 {
                      System.out.println(“截取的数字为”+chs[n-7]+chs[n-6]+chs[n-5]+chs[n-4]);
               }
        }
 }

【程序33】题目:打印出杨辉三角形(要求打印出10行如下图)

public class Prog33{
        public
 static void main(String[] args) {
               System.out.print(“请输入一个正整数:”);
               Scanner
 in = new Scanner(System.in);
               int
 n = in.nextInt();
               System.out.println(“对应的杨辉三角为:”);
               triangle(n);
        }
        public
 static void triangle(int n) {
               int[][]
 arr = new int[n][n];
               for
 (int i = 0; i < n; i++) {
                      for
 (int j = 0; j <= i; j++) {
                             if
 (i == 0 || i == j || j == 0) {
                                    arr[i][j]
 = 1;
                             }
 else {
                                    arr[i][j]
 = arr[i - 1][j - 1] + arr[i - 1][j];
                             }
                      }
               }
               for
 (int i = 0; i < n; i++) {
                      for
 (int j = i; j < n - 1; j++) {
                             System.out.print("
 ");
                      }
                      for
 (int k = 0; k <= i; k++) {
                             System.out.print(arr[i][k]• " ");
                      }
                      System.out.println();
               }
        }
 }

【程序34】题目:输入3个数a,b,c,按大小顺序输出。

import java.util.Scanner;
 public class Prog34{
        public
 static void main(String[] args){
               Scanner
 sc=new Scanner(System.in);
               System.out.println(“请输入三个数字:”);
               int
 a=sc.nextInt();
               int
 b=sc.nextInt();
               int
 c=sc.nextInt();
               int
 t;
               if(a>b)
 {
                      t=a;
                      a=b;
                      b=t;
               }
               if(a>c)
 {
                      t=a;
                      a=c;
                      c=t;
               }
               if(b>c)
 {
                      t=b;
                      b=c;
                      c=t;
               }
               System.out.println(a+"
 “+b+” "+c);
        }
 }

【程序35】输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

import java.util.Scanner;
 public class Prog35{
 public static void main(String[] args)
 {
               int[]
 a = {4,3,2,1,6,4,3,2,18,98};
               int
 min = 0;
               int
 max = 0;
               for
 (int i = 0; i < a.length; i++) {
                      if
 (a[i] > a[max]) {
                             max
 = i;
                      }
                      if
 (a[i] < a[min]) {
                             min
 = i;
                      }
               }
               int
 t = a[max];
               a[max]
 = a[0];
               a[0]
 = t;
               int
 r = a[min];
               a[min]
 = a[a.length - 1];
               a[a.length• 1] = r;
               for
 (int i = 0; i < a.length; i++) {
                      System.out.print(a[i]• " ");
               }
        }
 }

【程序36】有n个整数,前面各数顺序向后移m个位置,最后m个数变成最前面的m个数

import java.util.Scanner;
 public class Prog36{
 public static void main(String[] args)
 {
               int[]
 a = {4,3,2,1,6,4};
               int
 [] b=new int[a.length];
               Scanner
 sc=new Scanner(System.in);
               System.out.println(“移动多少个位置:”);
               int
 n=sc.nextInt();
               move(a,b,n);
               System.out.println(“移动后的数组为:”);
               for(int
 i=0;i<b.length;i++) {
                      System.out.print(b[i]+"
 ");
               }
        }
        public
 static void move(int[] a,int [] b,int n){
               int
 i,k=0;
               for(i=a.length-n;i<a.length;i++)
 {
                      b[k]=a[i];
                      k++;
               }
               for(i=0;i<a.length-n;i++)
 {
                      b[k]=a[i];
                      k++;
               }
        }
 }

【程序37】题目:有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。

import java.util.Scanner;
 public class Prog37{
        public
 static void main(String[] args){
               System.out.print(“请输入一个整数:”);
               Scanner
 sc = new Scanner(System.in);
               int
 n = sc.nextInt();
               boolean[]
 In = new boolean[n];
               for(int
 i=0;i<In.length;i++)
                 In[i] = true;
               int
 count = n;
               int
 num = 0;
               int
 index = 0;
               while(count>1){
                      if(In[index]){
                             num++;
                             if(num3){
                                    num
 = 0;
                                    In[index]
 = false;
                                    count–;
                             }
                      }
                      index++;
                      if(indexn)
                        index = 0;
               }
               for(int
 i=0;i<n;i++)
                 if(In[i])
                   System.out.println(“留下的是:”+(i+1));
        }
 }

【程序38】写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

import java.util.Scanner;
 public class Prog38{
        public
 static void main(String[] args){
               Scanner
 sc=new Scanner(System.in);
               System.out.println(“输入一个字符串:”);
               String
 s=sc.nextLine();
               char[]
 chs=s.toCharArray();
               System.out.println(chs.length);
        }
 }

【程序39】题目:编写一个函数,输入n为偶数时,调用函数求1/2+1/4+…+1/n,当输入n为奇数时,调用函数1/1+1/3+…+

1/n(利用指针函数)
import java.util.Scanner;
 public class Prog39{
        public
 static void main(String[] args){
               Scanner
 sc=new Scanner(System.in);
               System.out.println(“输入一个整数:”);
               int
 n=sc.nextInt();
               if(n%2==0)
 {
                      System.out.println(even(n));
               }else
 {
                      System.out.println(odd(n));
               }
        }
        public
 static double even(int n) {
               double
 s=0;
               for(int
 i=2;i<n+1;i+=2) {
                      s+=1.0/i;
               }
               return
 s;
        }
        public
 static double odd(int n) {
               double
 s=0;
               for(int
 i=1;i<n+1;i+=2) {
                      s+=1.0/i;
               }
               return
 s;
        }
 }

【程序40】题目:字符串排序。

public class Prog40{
        public
 static void main(String[] args){
               String[]
 str= {“abc”,“cad”,“m”,“fa”,“f”};
               for(int
 i=str.length-1;i>=1;i–) {
                      for(int
 j=0;j<=i-1;j++) {
                             if(str[j].compareTo(str[j+1])>0)
 {
                                    String
 temp=str[j];
                                    str[j]=str[j+1];
                                    str[j+1]=temp;
                             }
                      }
               }
               for(String
 sub:str) {
                      System.out.print(sub+"
 ");
               }
        }
 }