1、三种控制结构是什么?

    顺序、循环、选择.

  2、if后面不写{},if的控制范围是否只限于第一句?

    是的

  3、Math.random是什么意思?如果想要获取15-20之间的随机数,怎么写?

    产生一个0-1的随机数,包含0但不包含1

       (int)(Math.random()*6)+15

  4、switch是否可以用if else多选择结构来代替?

    可以、switch适用于做多值的判断

  5、switch中的表达式的结果需要是什么类型?

    byte、short、int、char

    jdk1.5加入了枚举

    jdk1.7加入了string

  6、switch语句中,一个case开始执行后,什么时候结束执行这个case的语句?

    break

  7、switch语句中,default是否必须写?

    不是必须

  8、case后面要加 冒号 :

  9、循环结构模拟了现实世界中的什么逻辑?

    重复问题

  10、循环结构的四种内部结构是什么?

  while、dowhile、for、foreach

  11、while和dowhile有什么区别?

    do while至少执行一次

  12、什么情况下会有死循环?

    循环条件始终成立时候

  13、for相较于while有什么优势?

    语法结构简便、适用于解决固定次数的问题

  14、循环中break和continue的作用?

    break:强行退出循环

    continue:跳过本次循环,开始下次循环

  15、语句块能否使用外部的变量?语句块中定义的变量,外部能否使用?

    可以调用外部的变量,但是语句块定义的变量外部不能调用

  16、方法的定义中,是否必须要有返回值类型?如果确实不需返回值,使用哪个关键字声明?

    void

  17、方法的定义中,return是必须的吗?

    不是,return作用是终止方法的运行并返回值

  18、Java中,参数的传递使用值传递还是引用传递?

    值传递

  19、形参与实参的区别?

  20、方法定义时,使用形参还是实参?

    形参

  21、定义形参时,需要声明变量类型吗?

    需要

  22、实参类型是否必须和形参类型匹配?

    对

  23、什么是方法的重载,有什么作用?

      同一个类中,方法名称相同、参数列表不同

  24、两同三不同指的是?返回值不同构成重载吗?形参名称不同构成重载吗?

    

  24、递归算法中,递归头和递归体分别指什么?

    

  25、递归算法的优点是什么?缺点是什么?

     

  后面是上机练习:

  26、使用递归算法完成阶乘算法

    

public static int JieChengM(int num) {
        
        if (num==1) {
            return 1;
        }else {
            return num * JieChengM(num-1);
        }
        
    }
View Code

 

  27、根据随机生成的的月份,打出该月份的天数.(不考虑闰年、闰月)

public static int DaysOfMonth(int month) {
        switch (month) {
        case 2:
            return 28;
        case 1:
        case 3:
        case 5:
        case 7:
        case 8:
        case 10:
        case 12:
            return 31;
        case 4:
        case 6:
        case 9:
        case 11:
            return 30;
        }
        return 0;
    }
View Code

  28、用while和for循环分别计算100以内奇数和偶数的和,并输出。

    //奇数
    public static int forOdd(){
        int sum = 0;
        for (int i = 1; i < 100; i+=2){
            sum+=i;
        }
        return sum;
    }
    //偶数
    public static int forEven(){
        int sum = 0;
        for (int i = 2; i < 100; i+=2){
            sum+=i;
        }
        return sum;
    }
    //奇数
    public static int whileOdd(){
        int sum = 0;
        int i = 1;
        while (i < 100){
            sum+=i;
            i+=2;
        }
        return sum;
    }
    //偶数
    public static int whileEven(){
        int sum = 0;
        int i = 2;
        while (i < 100){
            sum+=i;
            i+=2;
        }
        return sum;
    }
View Code

  29、用while和for循环输出1-1000之间能被5整除的数,且每行输出3个。

    public static void method5(){
        int flag = 0;
        for (int i = 1; i < 1000; i++){
            if (i%5==0){
                System.out.print(i+"\t");
                flag++;
                if (flag%3==0){
                    System.out.println();
                }
            }
        }
    }
View Code

  30、打印出九九乘法表

private static void chengfabiao() {
        for (int i=1;i<=9;i++){
            for (int j=1; j<=i;j++){
                System.out.print(i+"*"+j+"="+i*j+"\t");

            }
            System.out.println();
        }
    }
View Code

 

  31、编程求:∑1+∑2+……+∑100  

public static void main(String[] args) {
        int num = 0;
        for (int i=1; i<=100;i++){
            num+=JieChengM(i);
        }
        System.out.println(num);
    }
    public static int JieChengM(int num) {

        if (num==1) {
            return 1;
        }else {
            return num + JieChengM(num-1);
        }
    }
View Code

 

  32、生成0-100随机数,直到生成88为止,停止循环!

int i = (int) (Math.random() * 101);
        while (i != 88) {
            i = (int) (Math.random() * 101);
            System.out.println(i);
        }
        System.out.println(i);
View Code

 

  33、把100~150之间不能被3整除的数输出

 public static void main(String[] args) {
        for (int i =100; i<=150; i++){
            if (i%3!=0){
                System.out.println(i);
            }
        }
    }

  

  34、打印出实心10*10正方形、空心10*10正方形

private static void printA() {
        for (int i = 1; i<=10;i++){
            for (int j = 1; j<=10;j++){
                System.out.print(" *");
            }
            System.out.println();
        }

    }
    private static void printB() {
        for (int i = 1; i<=10;i++){
            if (i==1||i==10){
                for (int j = 1; j<=10;j++){
                    System.out.print(" *");
                }
            }else {
                System.out.print(" *");
                for (int j = 1; j<=8;j++){
                    System.out.print("  ");
                }
                System.out.print(" *");
            }

            System.out.println();
        }
    }
View Code

 

  35、打印出实习10*10菱形, 空心10*10菱形

    private static void printA() {
//        正三角
        for (int i=0; i<5;i++){
            for (int j=0; j<=5-i;j++){
                System.out.print("  ");
            }
            for (int j = 0; j < 2*i-1;j++){
                System.out.print(" *");
            }
            for (int j=0; j<=5-i;j++){
                System.out.print("  ");
            }
            System.out.println();
        }
//        倒三角
        for (int i=5; i>0;i--){
            for (int j=0; j<=5-i;j++){
                System.out.print("  ");
            }
            for (int j = 0; j < 2*i-1;j++){
                System.out.print(" *");
            }
            for (int j=0; j<=5-i;j++){
                System.out.print("  ");
            }
            System.out.println();
        }
    }

    private static void printB() {
        //        正三角
        for (int i=0; i<5;i++){
            for (int j=0; j<=5-i;j++){
                System.out.print("  ");
            }
            for (int j = 0; j < 2*i-1;j++){
                if (j==0||j==2*i-2){
                    System.out.print(" *");
                }else {
                    System.out.print("  ");
                }

            }
            for (int j=0; j<=5-i;j++){
                System.out.print("  ");
            }
            System.out.println();
        }
//        倒三角
        for (int i=5; i>0;i--){
            for (int j=0; j<=5-i;j++){
                System.out.print("  ");
            }
            for (int j = 0; j < 2*i-1;j++){
                if (j==0||j==2*i-2){
                    System.out.print(" *");
                }else {
                    System.out.print("  ");
                }
            }
            for (int j=0; j<=5-i;j++){
                System.out.print("  ");
            }
            System.out.println();
        }
    }
View Code

 

  36、如上所有上机相关算法的作业,封装成方法,便于重用