3、选择语句+循环语句作业

选择语句+循环语句作业

一、填空题
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___语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。即只结束本次循环,而不是终止整个循环的执行。
6.使用Math.random( )返回带正号的 double值,该值大于等于0.0且小于1.0。使用该函数生成[30,60]之间的随机整数的语句是 int x = (int)(30+Math.random()*31);

二、选择题

  1. 以下代码的执行结果是( A )。(选择一项)
    boolean m = false;
    if(m = false){
    System.out.println(“false”);
    }else{
    System.out.println(“true”);
    }

    A. false
    B. true
    C. 编译错误
    D. 无结果

  2. 分析如下Java代码,编译运行的输出结果是( A )。(选择一项)
    public static void main(String[ ] args) {
    boolean a=true;
    boolean b=false;
    if (!(a&&b)) {
    System.out.print("!(a&&b)");
    }else if (!(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 )。(选择一项)
    public class Test {
    public static void 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 )。(选择一项)
    public class Test {
    public static void main(String[] args) {
    int i = 0, sum = 0;
    while (i <= 10) {
    sum += i;
    i++;
    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;
    a=a-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 )。(选择一项)
    public static void main(String[ ] args) {
    for(int i=0;i<10;i++){
    if (i%2!=0) {
    break;
    }
    System.out.print(i);
    }
    }

    A 13578
    B. 02468
    C. 0123456789
    D. 0

  10. 下面程序执行的结果是在屏幕上打印( B )次Java基础班。(选择一项)
    for(int i=1;i<=10;i++){
    if (i<5)
    continue;
    System.out.println(“Java基础班”);
    }

    A 5
    B. 6
    C. 7
    D. 8

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

四、简答题
1.if多分支语句和switch语句的异同之处
答:都是条件选择语句,switch适用于单一类型选择,也只有一个入口,而if语句 适用于多种类型选择,适用于选择分支较少的分支结构。
2.while和do-while语句的异同之处
答:两者都是循环语句,但while是先判断条件后循环,do-while是先循环后判断 至少执行一次。
3.break和continue语句的作用
答:两者都是中止语句,但是break是跳出整个循环圈,continue是跳出本轮循环, 另外break常和switch语句搭配使用。

五、编码题
1.输入一个数,判断是奇数还是偶数

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int number = input.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)

If:
import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int number = input.nextInt();
        if (number >= 90 && number <= 100) {
            System.out.println("您的成绩是A级");
        } else if (number >= 80 && number < 90) {
            System.out.println("您的成绩是B级");
        } else if (number >= 70 && number < 80) {
            System.out.println("您的成绩是C级");
        } else if (number >= 60 && number < 70) {
            System.out.println("您的成绩是D级");
        } else if (number >= 0 && number < 60) {
            System.out.println("您的成绩是E级");
        }
    }
}

Switch:
import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int number = input.nextInt();
        int num = number / 10;
        switch (num) {
            case 10:
                System.out.println("您的成绩是A级");
                break;
            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.根据月份,输出对应的季节,并输出至少两个描述该季节的成语和活动。

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入月份:");
        int number = input.nextInt();
        if (number >= 3 && number <= 5) {
            System.out.println("春天-春暖花开 春意盎然-植树 踏青");
        } else if (number >= 6 && number <= 8) {
            System.out.println("夏天-夏日炎炎 夏雨雨人-游泳 吃雪糕");
        } else if (number >= 9 && number <= 11) {
            System.out.println("秋天-秋高气爽 秋风萧瑟-爬山 秋游");
        } else {
            System.out.println("冬天-冰天雪地 鹅毛大雪-冬泳 打雪仗");
        }
    }
}

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

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个数:");
        int number = input.nextInt();
        int count = 0;
        for (int i = 1; i <= number; i++) {
            if (number % i == 0) {
                count++;
            }
        }
        if (count == 1 || number == 1) {
            System.out.print("他是素数");
        } else {
            System.out.print("他不是素数");
        }
    }
}

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

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入5个学生的分数:");
        int count = 0;
        for (int i = 0; i < 5; i++) {
            int number = input.nextInt();
            count += number;
        }
        System.out.println("该班五个学生分数总和为:" + count);
    }
}

6.从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。

import java.util.Scanner;

public class HelloWorld {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一个十进制数:");
        int number = input.nextInt();
        System.out.println("该十进制数的二进制数:");
        String str = "";
        do {
            int d = number / 2;
            int m = number % 2;
            str = m + str;
            number = d;
        } while (number != 0);
        System.out.print(str);
    }
}

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

2.请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母。例如如果第一个字母是S,则继续判断第二个字母,如果第二个字母是a,则输出“星期六”。星期的英文单词如下表所示。
星期一 星期二 星期三 星期四 星期五 星期六 星期日
Monday Tuesday Wednesday Thursday Fridy Saturday Sunday
3.输入一批整数,使用循环求出最大值与最小值,输入0时结束。

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

选择语句+循环语句作业答案

一、填空题

1.switch语句
2.String
3.表达式1
4.break
5.continue

二、选择题

1.B
2.A
3.BD
4.D
5.B
6.B
7.A
8.D
9.D
10.B

三、判断题

1.√
2.√
3.×
4.√
5.√
6.×

四、简答题

1、答:相同点:他们都是用来处理多分支条件的结构。不同点:switch语句只能处理等值条件判断的情况,而且条件只能是整型变量或字符型变量。 多重if选择结构的限制,特别适合某个变量处于某个连续区间时的情况。
2、答:do-.while循环先执行一次再去判断条件,也就是说不管满不满足条件,都会先执行一次,执行次数最少1次;while循环必须先判断条件,满足了才执行,最少执行次数0次
3、答:break语句作用:1、可以用来从循环体内跳出循环体,即提前结束循环,接着执行循环下面的语句2、使流程跳出switch结构;continue语句作用:结束本次循环,即忽略循环体中continue语句下面尚未执行的语句,接着进行下一次是否执行循环的判定。

五、编码题

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

public class TestNum {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		//输入一个数
		System.out.println("请输入你要判断的数据:");
		int x = input.nextInt();
		//判断一个数据是奇数还是偶数
		if(x%2 == 0) {
			System.out.println(x+"这个数据是偶数");
		}else {
			System.out.println(x+"这个数据是奇数");
		}
	}
}

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

public class TestGrade1 {
	public static void main(String[] args) {
		// 给出分数
		Scanner  input  = new Scanner(System.in);
		System.out.println("请输入一个分数");
		double score = input.nextDouble();
		// 根据分数,给出等级
		String grade;
		if (score >= 90) {
			grade = "A";
		} else if (score >= 80) {
			grade = "B";
		} else if (score >= 70) {
			grade = "C";
		} else if (score >= 60) {
			grade = "D";
		} else {
			grade = "E";
		}
		// 输出等级
		System.out.println("score=" + score + ",grade=" + grade);
	}
}
public class TestGrade2 {
	public static void main(String[] args) {
		// 给出分数
		Scanner  input  = new Scanner(System.in);
		System.out.println("请输入一个分数");
		int score = input.nextInt();			
		//根据分数,给出等级
		String grade="E";
		switch(score/10){
			case 10:
			case 9:grade="A";break;
			case 8:grade="B";break;
			case 7:grade="C";break;
			case 6:grade="D";break;
			default :grade="E";				
		}
		//输出等级
		System.out.println("score="+score+",grade="+grade);
	}
}

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

public class TestSeason {
	public static void main(String[] args) {
		// 输入月份
		Scanner  input  = new Scanner(System.in);
		System.out.println("请输入月份:");
		int month = input.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("您的输入有误");
		}
	}
}

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

public class TestPrime {
	public static void main(String[] args) {
		// 输入一个数
		Scanner input = new Scanner(System.in);
		System.out.println("请输入一个数:");
		int n = input.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个学生的分数,求和并输出。

public class TestSum {
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		//输入总分并求和
		double sum = 0;
		for (int i = 0; i < 5; i++) {
			System.out.println("请输入第"+(i+1)+"个学生的成绩");			
			double  d = input.nextDouble();
			sum += d;
		}
		//输出总分
		System.out.println("总分是"+sum);
	}
}

6.从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。

public class Test10to2_1 {
	public static void main(String [] args){
		//给出一个十进制数
		int num2 =6;
		//转换
		int num = num2;
		String str="";
		do{
			//除以2得到商
			int div = num/2;
			//得到余数作为二进制位
			int mod = num%2;
			str = mod + str;			
			//商作为被除数
			num = div;
		}while(num!=0);//被除数不是零		
		//输出二进制数
		System.out.println(num2+"------>"+str);		
	}
}

六、可选题

  1. 根据考试成绩输出对应的礼物,90分以上爸爸给买电脑,80分以上爸爸给买手机, 60分以上爸爸请吃一顿大餐,60分以下爸爸给买学习资料。
    要求:该题使用多重if完成
	public class Test 1{
	public static void main(String[] args) {
		int score = 80;
		if (score >= 90) {
			System.out.println("电脑");
		} else if (score >= 80) {
			System.out.println("手机");
		} else if (score >= 60) {
			System.out.println("大餐");
		} else {
			System.out.println("学习资料");
		}
	}
}	

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

public class Test2{
	public static void main(String[] args) {
		char i, j;
		System.out.println("please enter the first letter:");
		Scanner input = new Scanner(System.in);
		String str = "";
		str = input.next().toLowerCase();
		// 转换成字符串
		i = str.charAt(0);
		switch (i) {
			case 'm':
				System.out.println("Monday\n");	break;
			case 'w':
				System.out.println("Wednesday\n");break;
			case 'f':
				System.out.println("Friday\n");	break;
			case 't':
				System.out.println("please enter the next letter:");
				str = input.next().toLowerCase();
				j = str.charAt(0);
				if (j == 'u')
					System.out.println("Tuesday\n");
				else if (j == 'h')
					System.out.println("Thursday\n");
				else 
					System.out.println("error\n");
				break;
			case 's':
				System.out.println("please enter the next letter:");
				// 转换成字符串
				str = input.next().toLowerCase();
				j = str.charAt(0);
				if (j == 'a')
					System.out.println("Saturday\n");
				else if (j == 'u')
					System.out.println("Sunday\n");
				else 
					System.out.println("error\n");
				break;
			default:
				System.out.println("error\n");
				break;
		}
	}
}
  1. 输入一批整数,使用循环求出最大值与最小值,输入0时结束。
public class Test 3{
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		int max = 0, min = 0;
		int nums = 1;
		//输入第一个数,指定它是最大值和最小值
		System.out.println("请输入1个数:");
		nums = input.nextInt();
		max = nums;
		min = nums;
		//依次输入其他数字,并判断是否是最大值和最小值
		for (int i = 2; nums != 0; i++) {
			System.out.println("请输入" +i + "个数:");
			nums = input.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 Test4 {
	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); 
	}
}

5.从键盘输入某个十进制小数,转换成对应的二进制小数并输出。

public class Test5{
	public static void main(String [] args){
		//给定一个十进制小数
		double d = 0.6666;
		//转换
		double mul = d;
		StringBuffer buffer = new StringBuffer("0.");
		//定义一个计数器
		int count=0;
		do{
			//乘以2得到积
			double result =  mul*2;//1.250
			//从积中取出整数部分作为二进制位
			int i = (int)result;
			buffer.append(i);
			//计数
			count++;
			//判断是否够7位
			if(count==7){
				break;
			}
			//从积中取出小数部分作为下一次的乘数
			mul= result-i;		
		}while(mul!=0); //判断乘数是否为0
		//输出十进制小数和二进制小数
		System.out.println(d+"---->"+buffer);
	}
}

注意:此题目中使用了StringBuffer,具体内容会在后续章节中介绍。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友培

数据皆开源!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值