选择语句+循环语句作业

  • 填空题
  1. Java中有两种类型的选择结构的控制语句,分别是if语句和    switch      
  2. 在Java JDK1.7之前,switch只能支持byte、short、char、int或者其对应的封装类以及Enum类型。在JDK1.7中又加入了      String        类型。
  3. for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中在整个循环过程中只执行一次的部分是     表达式1     
  4. 在循环结构中,如果想跳出循环体,结束整个循环结构可以使用  break      语句。
  5. ___ continue___语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。即只结束本次循环,而不是终止整个循环的执行。
  • 选择题

1.

以下代码的执行结果是(  B  。(选择一项)


boolean m = false;

if(m = false){

    System.out.println("false");

}else{

    System.out.println("true");

}





A.

false


B.

true


C.

编译错误


D.

无结果

2.

分析如下Java代码,编译运行的输出结果是(  A   )。(选择一项)


publicstaticvoid main(String[ ] args) {

                 boolean a=true;

                 boolean b=false;

                 if (!(a&&b)) {

                         System.out.print("!(a&&b)");

                 }elseif (!(a||b)) {

                         System.out.println("!(a||b)");

                 }else {

                         System.out.println("ab");

                 }

}





A

!(a&&b)


B.

!(a||b)


C.

ab


D.

!(a||b)ab

3.

下列选项中关于变量x的定义,(  BD   )可使以下switch语句编译通过。(选择二项)


switch(x) {

    case 100 :

        System.out.println("One hundred");

        break;

    case 200 :             

        System.out.println("Two hundred");                

        break;

    case 300 :

        System.out.println( "Three hundred");

        break;

    default :

        System.out.println( "default");   

}





A

double x = 100;


B.

char x = 100;


C.

String x = "100";


D.

int x = 100;

4.

阅读下列文件定入的Java代码,其执行结果是(   D   )。(选择一项)


publicclass Test {

        publicstaticvoid main(String[] args) {

                 char ch = 'c';

                 switch (ch) {

                     case 'a':

                             System.out.print("a");                 break;

                     case 'b':

                             System.out.print("ab");

                     case 'c':

                             System.out.print("c");

                     default:

                             System.out.print("d");

                 }

        }

}





A

a


B.

b


C.

c


D.

cd

5.

以下Java程序编译运行后的输出结果是(  B   )。(选择一项)


publicclass Test {

        publicstaticvoid main(String[] args) {

                 int i = 0, sum = 0;

                 while (i <= 10) {

                         sum += i; //  0,1,3,6,10,15,21,28,36,45,55

                         i++;  //  1,2,3,4,5,6,7,8,9,10,11

                         if (i % 2 == 0)

                                  continue;

                 }

                 System.out.println(sum);

        }

}





A

0


B.

55


C.

50


D.

36

6.

以下四个选项中和下面代码功能相同的是(   B  )。(选择一项)


int i = 1;

int sum = 0;

while (i <= 100) {

        if (i % 2 == 0)

                 sum = sum + i;

        i++;

}





A

for (int x =1; x<=100;x++){ sum=sum+x;}


B.

for (int x =0; x<=100;x+=2){ sum=sum+x;}


C.

for (int x =1; x<=100;x+=2){ sum=sum+x;}


D.

上述全对

7.

以下do-while循环代码的执行结果是(   A  。(选择一项)


int a=0;

int c=0;

do{

    --c;  // -1

    a=a-1; // -1

}while(a>0);

System.out.println(a+"  "+c);





A.

-1  -1


B.

死循环


C.

-1  -2


D.

-1  0

8.

while循环和do-while循环的区别是(   D   。(选择一项)





A.

没有区别,这两个结构在任何情况下效果一样


B.

while循环比do-while循环执行效率高


C.

while循环是先循环后判断,所以循环体至少被执行一次


D.

do-while循环是先循环后判断,所以循环体至少被执行一次

9.

Java中有如下代码,则编译运行该类的输出结果是(   D   )。(选择一项)


publicstaticvoid main(String[ ] args) {

                 for(int i=0;i<10;i++){

                         if (i%2!=0) {

                break;

}

                         System.out.print(i);//0

                 }

}





A

13578


B.

02468


C.

0123456789


D.

0

10.

下面程序执行的结果是在屏幕上打印(  B  )次大数据特训营。(选择一项)


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

        if (i<5)

                 continue;

        System.out.println("大数据特训营"); //1,1,1,1,1,1

}





A

5


B.

6


C.

7


D.

8

  • 判断题(共20个题目,总计10分)
  1. if语句的条件表达式的结果都必须是boolean值。(  T  )
  2. switch选择语句是多分支选择语句,只能处理等值条件判断的情况,表达式可以是int类型、char类型,但不能是double,float类型。(  T  )
  3. while循环结构的特点是先循环再判断,循环体至少执行一次。(  F   )
  4. for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中三个表达式都可以省略。(  F  )
  5. break语句可以出现在switch语句和循环语句中。(  T  )
  6. continue语句可以出现在switch语句和循环语句中。(   F  )
  • 简答题
  1. if多分支语句和switch语句的异同之处

相同点:都能进行多分支情况的处理

不同点:if语句的判断条件大部分都是bool类型,switch语句是用(类似)枚举的方式来标识各个分支的

2.ile和do-while语句的异同之处

相同点:都是循环结构

 

不同点:while语句是先判断后执行

       while循环是先判断条件是否成立,然后决定是否执行循环体

do-while语句是先执行后判断,

do-while循环至少执行一次循环体

 

3.break和continue语句的作用

   break:终止循环

   continue:终止本次循环,继续下次循环

  • 编码题

1、输入一个数,判断是奇数还是偶数

import java.util.Scanner;
public class Test1 {
    public static void main(String[] args) {
        //创建键盘录入对象
        Scanner sc = new Scanner(System.in);

        System.out.println("请输入一个数:");
        int number = sc.nextInt();
        if(number%2==0){
            System.out.println("偶数");
        }else {
            System.out.println("奇数");
        }

    }
}

2、 根据成绩输出对应的等级,使用if多分支和switch语句分别实现。

       a) A级 [90,100]  

       b)B级 [80,90)

       c) C级 [70,80)

       d) D级 [60,70)

       e) E级 [0,60)

import java.util.Scanner;//导包
public class Test2One {
    //if分支语句
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);//创建键盘录入对象
            System.out.print("请输入成绩:");
            int x=sc.nextInt();               //通过对象获取数据
            if (x>=90 && x<=100) {
                System.out.println("输入成绩的等级为:A级");
            }else if (x>=80 && x<=89) {
                System.out.println("输入成绩的等级为:B级");
            }else if (x>=70 && x<=79) {
                System.out.println("输入成绩的等级为:C级");
            }else if (x>=60 && x<=69) {
                System.out.println("输入成绩的等级为:D级");
            }else if (x>=0 && x<=59) {
                System.out.println("输入成绩的等级为:E级");
            }else {
                System.out.println("输入成绩的有误,请重新输入!");
            }
        }
    }
public class Test2Two {
    //switch语句
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);//创建键盘录入对象
            System.out.print("请输入成绩:");
            int x=sc.nextInt();               //通过对象获取数据
            if (x<0 || x>100) {
                System.out.println("输入成绩的有误,请重新输入!");
            }else {
                switch (x/10) {
                    case 10:
                    case 9:
                        System.out.println("输入成绩的等级为:A级");
                        break;
                    case 8:
                        System.out.println("输入成绩的等级为:B级");
                        break;
                    case 7:
                        System.out.println("输入成绩的等级为:C级");
                        break;
                    case 6:
                        System.out.println("输入成绩的等级为:D级");
                        break;
                    default:
                        System.out.println("输入成绩的等级为:E级");
                        break;
                }
            }
        }
    }

3、根据月份,输出对应的季节,并输出至少两个描述该季节的成语和活动。

Java String选择题 java编写选择题_p2p

public class Test3 {
        public static void main(String[] args) {
            Scanner sc=new Scanner(System.in);//创建键盘录入对象
            System.out.println("请输入月份:");
            int month=sc.nextInt();               //通过对象获取数据
            switch (month) {
                case 1:
                case 2:
                case 3:
                    System.out.println("春天-春暖花开 春意盎然-植树 踏青");
                    break;
                case 4:
                case 5:
                case 6:
                    System.out.println("夏天-夏日炎炎 夏雨雨人-游泳 吃雪糕");
                    break;
                case 7:
                case 8:
                case 9:
                    System.out.println("秋天-秋高气爽 秋风萧瑟-旅游 看枫叶");
                    break;
                case 10:
                case 11:
                case 12:
                    System.out.println("冬天-冬山如睡 冬温夏清-滑雪 堆雪人");
                    break;
                default:
                    System.out.println("输入的月份有误!");
                    break;
            }
        }
    }

 4、判断一个数是否是素数。

import java.util.Scanner;
public class Test6 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int n = sc.nextInt();

        boolean flag = true;
        if (n == 1)
            flag = false;
        else {
            for (int i = 2; i < n; i++) {
              
                if (n % i== 0) {
                    flag = false;
                    break;
                }
            }
        }
        // 输出结果
        if (flag) {
            System.out.println(n + "是素数");
        } else {
            System.out.println(n + "不是素数");
        }
    }
}

5、从键盘输入一个班5个学生的分数,求和并输出。

import java.util.Scanner;//导包
public class Test4 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);//创建键盘录入对象
        int sum=0;
        for (int i=1;i<=5 ;i++ ) {
            System.out.println("请输入"+"第"+i+"的成绩:");
            int grade=sc.nextInt();               //通过对象获取数据
            if (grade<0 && grade<100) {
                System.out.println("输入有误,请重新输入");
            }
            sum=sum+grade;
        }
        System.out.println("一个班5个学生的分数的和是:"+sum);
    }
}

6、从键盘输入一个班5个学生的分数,求和并输出。

import java.util.Scanner;//导包
public class Test5 {
    public static void main(String [] args){
        Scanner sc=new Scanner(System.in);//创建键盘录入对象
        int num = sc.nextInt();
        String str="";
        do{
            //除以2得到商
            int div = num/2;
            //得到余数作为二进制位
            int mod = num%2;
            str = mod + str;
            //商作为被除数
            num = div;
        }while(num!=0);//被除数不是零
        //输出二进制数
        System.out.println(num+"------>"+str);

    }

}
  • 可选题   

1、根据考试成绩输出对应的礼物,90分以上爸爸给买电脑,80分以上爸爸给买手机, 60分以上          爸爸请吃一顿大餐,60分以下爸爸给买学习资料。要求:该题使用多重if完成

import java.util.Scanner;//导包
public class Test7 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);//创建键盘录入对象
        System.out.print("请输入成绩:");
        int x=sc.nextInt();               //通过对象获取数据
        if (x>=90) {
            System.out.println("爸爸给买电脑");
        }else if (x>80 && x<=90) {
            System.out.println("爸爸给买手机");
        }else if (x>60 && x<=80) {
            System.out.println("爸爸请吃一顿大餐");
        }else if (x>0 && x<=60) {
            System.out.println("爸爸给买学习资料");
        }else {
            System.out.println("输入的成绩的有误!");
        }
    }
}

2、请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母。例如如果第一个字母是S,则继续判断第二个字母,如果第二个字母是a,则输出“星期六”。星期的英文单词如下表所示。

星期一

星期二

星期三

星期四

星期五

星期六

星期日

Monday

Tuesday

Wednesday

Thursday

Fridy

Saturday

Sunday

import java.util.Scanner;

public class Test6 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        System.out.println("输入一个首字母:");
        String s = sc.next();

        switch (s){
            case "M":
                System.out.println("Monday 星期一");
                break;
            case "T":
                System.out.println("请输入第二个字母:");
                String s2 = sc.next();
                if("u".equals(s2)){ // 比较s2的值是否等于u
                    System.out.println("Tuesday 星期二");
                }else if("h".equals(s2)){
                    System.out.println("Thursday 星期四");
                }else {
                    System.out.println("输入数据有误");
                    break;
                }
                break;
            case "W":
                System.out.println("Wednesday 星期三");
                break;
            case "F":
                System.out.println("Fridy 星期五");
                break;
            case "S":
                System.out.println("请输入第二个字母:");
                String s3 = sc.next();
                if("a".equals(s3)){ // 比较s2的值是否等于u
                    System.out.println("Saturday 星期六");
                }else if("u".equals(s3)){
                    System.out.println("Sunday 星期日");
                }else {
                    System.out.println("输入数据有误");
                    break;
                }
                break;
            default:
                System.out.println("输入的数据有误");
                break;
        }
    }
}

3、输入一批整数,使用循环求出最大值与最小值,输入0时结束。

import java.util.Scanner;
public class Test9{
public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int max = 0, min = 0;
        int nums = 1;
        //输入第一个数,指定它是最大值和最小值
        System.out.println("请输入1个数:");
        nums = sc.nextInt();
        max = nums;
        min = nums;
        //依次输入其他数字,并判断是否是最大值和最小值
        for (int i = 2; nums != 0; i++) {
        System.out.println("请输入" +i + "个数:");
        nums = sc.nextInt();
        if (nums != 0) {
        if (nums > max) {
        max = nums;
        }
        if (nums < min) {
        min = nums;
        }
        }
        }
        //输出最大值和最小值
        System.out.println("最大值为:" + max);
        System.out.println("最小值为:" + min);
        }
        }

4、给20块钱买可乐,每瓶可乐3块钱,喝完之后退瓶子可以换回1块钱,问最多可以喝到多少瓶可乐。

public class Test10{
    public static void main(String[] args) {
        int money = 20, price = 3;
        // temp表示每一次购买的可乐瓶数
        int temp = 0;
        // change表示每次购买完可乐剩下的钱
        int change = 0;
        // sum表示总的可乐瓶数
        int sum = 0;
        // 如果钱数大于可乐价格
        while (money >= price) {
            // 购买可乐
            temp = money / price;
            // 总可乐瓶数增加
            sum += temp;
            // 计算买可乐剩下的钱
            change = money % price;
            // 兑换可乐瓶子,计算剩余的总钱数
            money = temp + change;
        }
        // 输出结果
        System.out.println(sum);
    }
}