Java测试

 1.概述Java中标示符是什么?

 一、不能以数字开头,由字母、下划线、美元符号组成。

二、不能把java关键字和保留字作为标识符。

三、标识符没有长度限制。

四、标识符对大小写敏感。 

2.Java中运算符有哪些? 

java中的运算符 可以分为以下几种类型

1.算术运算符      (+,-,*,/,%)
2.比较(关系)算符  (>,<,<=,<=,==,!=)
3.逻辑运算符      (||,&&,!)
4.赋值运算符      (=)
5.三元(三目)运算符

3.Java中基本程序结构有哪几种?分别描述写出语法。 

顺序结构:程序至上而下的执行

分支结构:if...else,switch...case

1.单选

语法:

if(表达式){
//code;
      }

2.双选

语法:

if(表达式){
//code1;
  }else{
//code2;
  }

3.多选

语法:

if(表达式1){
//code1;
  }[else if(表达式2){
//code2;
  }else if(表达式3){
//code3;
  }....]
  else{
  //code;
  }

switch语句语法

表达式 支持除long之外的整形

   jdk1.5 支持枚举

   jdk1.7 支持String

switch(表达式){
case 常量A:
//code1;
break;
case 常量B;
//code2;
break;
...
default:
//code n;
break;
}

switch语句进行判断 其实就是在这里进行 表达式==常量

 4.描述方法?方法的特点,方法的语法。 

方法是执行一段代码的集合 

特点:减少代码冗余,使程序结构清晰,减少重复操作等 

语法:

修饰符 返回值类型

方法名([参数1,参数2,...]){
//方法体;
[return 返回值;]
}

  5.什么是方法的重载? 

两同一不同

两同:同类中,方法名相同;

一不同:方法参数列表不同:

1.参数个数 2.参数类型 3.参数顺序;

public class Practice{
      //入口方法
      public static void main(String[]args){
          //1.百钱百鸡
          checken();
          //2.素数
          primeNumber(100,200);
          //3.打印图形
          graphical(4);
          multiplicationTable();
          //4.年龄
          int age=getAge(5);
          System.out.println("第五个人"+age+"岁");
          //5.杨辉三角
          printYang(10);
          //6.排序         
          int[]num={12,34,98,3,7,11};
          System.out.println("原始数组");
          print(num);
          //冒泡排序
          System.out.println("冒泡排序");
          bubbleSort(num);
          //选择排序
          System.out.println("选择排序");
          selectSort(num);
          System.out.println("插入排序");
          insertSort(num);
          //7.猴子桃子
          System.out.println("一共有"+peach()+"个桃子");
      }
      /* 
          1.编写程序解决“百钱买百鸡”问题。公鸡五钱一只,母鸡三钱一只,小鸡
          一钱三只,现有百钱欲买百鸡,共有多少种买法? 
          money:5*n1+3*n2+1/3*n3=100
          n:n1+n2+n3=100
      */
      public static void checken(){
          //外层循环买公鸡
          for(int n1=0;n1<20;n1++){
              //内层循环买母鸡
              for(int n2=0;n2<33;n2++){
                  //判断
                  if(15*n1+9*n2+(100-n1-n2)==300){
                      System.out.println("买法:"+n1+"\t"+n2+"\t"+(100-n1-n2));
                  }
              }
          }
      }
      /**
          2.判断100-200之间有多少个素数,并输出所有素数。 
      */
      public static void primeNumber(int low,int hig){
          for(int i=low;i<=hig;i++){
              for(int j=2;j<=i;j++){
                  if(i%j==0){
                      if(i!=j){
                          break;
                      }else{
                          System.out.print(i+"\t");
                      }
                  }
              }
          }
          System.out.println();
      }
      /* 
          3.输出以下图形
             *                1*1=1
            ***               1*2=2  2*2=4
           *****              1*3=3 2*3=6  3*3=9
          *******            …. 
      */
      public static void graphical(int n){
          //外层循环控制行数
          for(int row=0;row<n;row++){
              //内层循环控制列数
              //列数=空格数+星星数
              for(int col=0;col<n-row-1+row*2+1;col++){
                  if(col<n-row-1){
                      System.out.print(" ");
                  }else{
                      System.out.print("*");
                  }
              }
              System.out.println();
          }
      }
      public static void multiplicationTable(){
          int product=1;
          for(int row=1;row<=9;row++){
              for(int col=1;col<=row;col++){
                  product=col*row;
                  System.out.print(col+"*"+row+"="+product+"\t");
              }
              System.out.println();
          }
      }
      /** 
          4.有5个人坐在一起,
          问第五个人多少岁?他说比第4个人大2岁。
          问第4个人岁数,他说比第3个人   大2岁。
          问第三个人,又说比第2人大两岁。
          问第2个人,说比第一个人大两岁。
          最后问第一个人,他说是10岁。
          请问第五个人多大?(用递归方法计算) 
      */
      public static int getAge(int n){
          if(n==1)
              return 10;
          else
              return getAge(n-1)+2;
      }
      /**
         5.打印输出杨辉三角 
      */
      public static void printYang(int n){
          int num[][]=new int[n][];
          for(int row=0;row<num.length;row++){
              num[row]=new int[row+1];
              for(int col=0;col<=row;col++){
                  if(col==0||col==row){
                      num[row][col]=1;
                      System.out.print(num[row][col]+"\t");
                  }else{
                      num[row][col]=num[row-1][col]+num[row-1][col-1];
                      System.out.print(num[row][col]+"\t");
                  }
              }
              System.out.println();
          }
      }
      /* 
         6.分别写出 冒泡  插入  选择排序 
      */
      //冒泡排序
      public static void bubbleSort(int[]num){
          //外层循环控制比较轮数
          for(int i=0;i<num.length-1;i++){
              //内层循环控制每轮的比较次数
              for(int j=0;j<num.length-1-i;j++){
                  if(num[j]>num[j+1]){
                      //交互
                      swap(num,j,j+1);
                  }
              }
          }
          print(num);
      }
      //选择排序
      public static void selectSort(int[]num){
          for(int i=0;i<num.length-1;i++){
              int p=i;
              for(int j=0;j<num.length-1-i;j++){
                  if(num[j]>num[j+1]){
                      p=j;
                  }
              }
              if(p!=i){
                  swap(num,p,i);
              }
          }
          print(num);
      }
      //插入排序
      public static void insertSort(int[]num){
          for(int i=0;i<num.length-1;i++){
              for(int j=i+1;j>0;j--){
                  if(num[j]<num[j-i]){
                      swap(num,j,j-1);
                  }else{
                      break;
                  }
              }
          }
          print(num);
      }
      //数据交换
      public static void swap(int[]num,int a,int b){
          int tmp=num[a];
          num[a]=num[b];
          num[b]=tmp;
      }
      //打印数组
      public static void print(int[]num){
          for(int tmp:num){
              System.out.print(tmp+"\t");
          }
          System.out.println();
      }
      /**
          7.海滩上有一堆桃子,五只猴子来分。
          第一只猴子把这堆桃子平均分为五份,多了一个,这只猴子把多的一个扔入海中,拿走了一份。
          第二只猴子把剩下的桃子又平均分成五份,又多了一个,它同样把多的一个扔入海中,拿走了一份,
          第三、第四、第五只猴子都是这样做的,问海滩上原来最少有多少个桃子? 
          猴子    剩余                        拿走的
          1        n                            (n-1)/5
          2        n-(n-1)/5-1                    (n-(n-1)/5-1)/5
          3        n-(n-1)/5-(n-(n-1)/5)/5     */
      public static int peach(){
          int n=0,m=1;
          int i=0;
          while(true){             
              m=n;
              for(i=0;i<5;i++){
                  if((m-1)%5==0){
                      m=(m-1)/5*4;
                  }else{
                      break;
                  }
              }
              if(i==5&&m>0){
                  break;
              }
              n++;
          }
          return n;
      } 
  }

输出结果:

 

JAVA 计算在线测试 java算术测试_System