选择语句+循环语句作业
- 填空题
- Java中有两种类型的选择结构的控制语句,分别是if语句和 switch 。
- 在Java JDK1.7之前,switch只能支持byte、short、char、int或者其对应的封装类以及Enum类型。在JDK1.7中又加入了 String 类型。
- for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中在整个循环过程中只执行一次的部分是 表达式1 。
- 在循环结构中,如果想跳出循环体,结束整个循环结构可以使用 break 语句。
- ___ 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 )。(选择一项) | |
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; // 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 )。(选择一项) | |
public static void 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分)
- if语句的条件表达式的结果都必须是boolean值。( T )
- switch选择语句是多分支选择语句,只能处理等值条件判断的情况,表达式可以是int类型、char类型,但不能是double,float类型。( T )
- while循环结构的特点是先循环再判断,循环体至少执行一次。( F )
- for循环的语法格式是for (表达式1;表达式2;表达式3) {循环体},其中三个表达式都可以省略。( F )
- break语句可以出现在switch语句和循环语句中。( T )
- continue语句可以出现在switch语句和循环语句中。( F )
- 简答题
- 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、根据月份,输出对应的季节,并输出至少两个描述该季节的成语和活动。
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);
}
}