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

一、填空题
1.Java中有两种类型的选择结构的控制语句,分别是if语句和________。

2.在Java JDK1.7之前,switch只能支持byte、short、char、int或者其对应的封装类以及Enum类型。在JDK1.7中又加入了________类型。

3.for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中在整个循环过程中只执行一次的部分是________。

4.在循环结构中,如果想跳出循环体,结束整个循环结构可以使用 ________语句。

5.________语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。即只结束本次循环,而不是终止整个循环的执行。

6.使用Math.random( )返回带正号的 double值,该值大于等于0.0且小于1.0。使用该函数生成[30,60]之间的随机整数的语句是________。

二、选择题

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

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

分析如下Java代码,编译运行的输出结果是( )。(选择一项)
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

下列选项中关于变量x的定义,( )可使以下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;

阅读下列文件定入的Java代码,其执行结果是( )。(选择一项)
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

以下Java程序编译运行后的输出结果是( )。(选择一项)
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

以下四个选项中和下面代码功能相同的是( )。(选择一项)
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. 上述全对

以下do-while循环代码的执行结果是( )。(选择一项)
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

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

A. 没有区别,这两个结构在任何情况下效果一样
B. while循环比do-while循环执行效率高
C. while循环是先循环后判断,所以循环体至少被执行一次
D. do-while循环是先循环后判断,所以循环体至少被执行一次

在Java中有如下代码,则编译运行该类的输出结果是( )。(选择一项)
public static void main(String[ ] args) {
for(int i=0;i<10;i++){
if (i%2!=0)
return;
System.out.print(i);
}
}

A 13578
B. 02468
C. 0123456789
D. 0

下面程序执行的结果是在屏幕上打印( )次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语句的异同之处

2.while和do-while语句的异同之处
do-while先执行后判断,至少执行一次
while先判断后执行
3.break和continue语句的作用
Break跳出整个循环;
Continue跳出当前循环;

五、编码题
1.输入一个数,判断是奇数还是偶数
2.根据成绩输出对应的等级,使用if多分支和switch语句分别实现。
a)A级 [90,100]
b)B级 [80,90)
c)C级 [70,80)
d)D级 [60,70)
e)E级 [0,60)
3.根据月份,输出对应的季节,并输出至少两个描述该季节的成语和活动。

4.判断一个数是否是素数。
5.从键盘输入一个班5个学生的分数,求和并输出。
6.从键盘输入某个十进制整数数,转换成对应的二进制整数并输出。

六、可选题
1.根据考试成绩输出对应的礼物,90分以上爸爸给买电脑,80分以上爸爸给买手机, 60分以上爸爸请吃一顿大餐,60分以下爸爸给买学习资料。
要求:该题使用多重if完成
2.请根据英文单词的第一个字母判断星期几,如果第一个字母是一样的,则继续判断第二个字母。例如如果第一个字母是S,则继续判断第二个字母,如果第二个字母是a,则输出“星期六”。星期的英文单词如下表所示。
星期一 星期二 星期三 星期四 星期五 星期六 星期日
Monday Tuesday Wednesday Thursday Fridy Saturday Sunday
3.输入一个整数,产生对应个随机数字[1-143],使用循环求出最大值与最小值,输入0时结束。
4.给20块钱买可乐,每瓶可乐3块钱,喝完之后退瓶子可以换回1块钱,问最多可以喝到多少瓶可乐。

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

一、填空题

1.switch语句
2.String
3.表达式1
4.break
5.continue
6.(int)(Math.random()*31)+30

二、选择题

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.if多分支语句和switch语句的异同之处

  • 相同点:都能进行多分支情况的处理
  • 不同点:if语句的判断条件大部分都是bool类型,switch语句是用(类似)枚举的方式来标识各个分支的

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

  • while 执行流程:
    当程序执行到 while 循环时 , 会首先判断小括号里的值 ,如果值
    为假 :结束while语句 , 程序继续向下走
    为真 :会把while 循环里大括号里的所有内容执行一次 , 全部执行完毕之后 ,会再度来到条件处
    判断小括号里的值 , 如果值条件一直为true ,且没有 break return , 那么循环会一直循环下去 (死循环)

  • do-while执行流程:
    当程序执行到 dowhile时 , 它们是一个整体 ;
    程序会首先执行 大括号的内容 , 这是循环体 ;
    然后进行条件判断 , 如果小括号的值
    为假 : 结束循环 程序继续向下走
    为真 : 再执行循环体一次 , 循环体整体结束了 , 再到条件判断处进行条件判断,以此类推

  • while 和 do…while 的区别:
    while: 先判断 再执行 条件不成立 循环体 一遍都不执行
    do…while: 先执行 再判断 条件不成立 循环体 至少执行一遍

3.break和continue语句的作用

  • break用于强行退出循环,不执行循环中剩余的语句
  • continue用于跳过本次循环, 不执行continue后的语句, 继续下一次循环

五、编码题

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

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

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

public class Demo2 {
	public static void main(String[] args) {
		System.out.println("请输入一个成绩");
		Scanner s = new Scanner(System.in);
		int a = s.nextInt();
		
		if(a >= 0 && a <= 100) {
			if(a >= 90) {System.out.println("A级");}
			else if(a >= 80) {System.out.println("B级");}
			else if(a >= 70) {System.out.println("C级");}
			else if(a >= 60) {System.out.println("D级");}
			else if((a < 60) ) {System.out.println("E级");}
		}
		
		else {System.out.println("你输入的成绩有误");}
		
	}
}
public class Demo3 {
	public static void main(String[] args) {
		System.out.println("请输入一个成绩");
		Scanner s = new Scanner(System.in);
		int a = s.nextInt();
		
		String g;
		if(a >= 0 && a <= 100) {
		switch (a/10) {
		case 10 :
		case 9 : g = "A";
			break;
		case 8 : g = "B";
			break;
		case 7 : g = "C";
			break;
		case 6 : g = "D";
			break;
		default:
			g = "E";
		}
		System.out.println(a + "你的成绩是" + g + "级");
		}
		else {System.out.println("你输入的成绩有误");}
	}
}

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

public class Demo4 {
	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 Demo5 {
	public static void main(String[] args) {
		Scanner num = new Scanner(System.in);
		int a = num.nextInt();
		boolean flag = true;
		if (a == 1) {flag = false;}//1不是素数
		else {
			for(int i=1;i < Math.sqrt(a);++i) {
				if(a%i == 0) {
					flag = false;//从1一直除到a的算术平方根,如果其中有个数能整除a,a就不是素数
				}
			}
		}
		if (flag) {System.out.println(a + "是素数");}
		else {System.out.println(a + "不是素数");}
	}
}

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

public class Demo6 {
	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 Demo7 {

	public static void main(String[] args) {
		System.out.println("请输入一个10进制的整数:");
		Scanner sc = new Scanner(System.in);
		int d = sc.nextInt();
		// 整数部分
		long j = 1;long sum=0;// 整数部分转换为二进制,除二取余倒排
		for(int i=d;i>0;i=i/2){
			sum+=i%2*j;
			j*=10;
		}
		
		System.out.println(sum);
 }
}

六、可选题

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

public class Demo8 {
	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 Demo9 {
	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;
		}
	}
}

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

public class Demo10 {
	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 Demo11 {
	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 Demo12 {

	public static void main(String[] args) {
		System.out.println("请输入一个10进制的小数:");
		Scanner sc = new Scanner(System.in);
		double d = sc.nextDouble();
		double x = d;
		double sumx=0.0,k=0.1;
		int h = 1;
		for(;;k=k/10){
			x=(x-(int)x)*2;
			sumx+=(int)x*k;
			h++;//记录小数位数
			if(x-(int)x==0.0 || h==15){
				break;
			}
		}
		System.out.println(sumx);
 }
}
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值