Java系统化学习-基础复习习题day01
一、选择结构(if,if……else)
1、/*岳小鹏参加Java考试,他和父亲岳不群达成承诺: 如果: 成绩为100分时,奖励一辆BMW; 成绩为(80,99]时,奖励一台iphone7plus; 当成绩为[60,80]时,奖励一个 iPad; 其它时,什么奖励也没有。 请从键盘输入岳小鹏的期末成绩,并加以判断*/ package test; import java.util.Scanner; class adf{ public static void main(String[] args) { System.out.println("请输入您的成绩"); Scanner scan=new Scanner(System.in); int score=scan.nextInt(); if(score==100){ System.out.println("奖励一辆BMW");} else if(score>=80){ System.out.println("奖励一台iphone7plus"); } else if(score>=60){ System.out.println("奖励一个 iPad"); } else{ System.out.println("什么奖励也没有"); } } }
2、/*编写程序:由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用 if-else if-else),并且从小到大输出。 */ package test; import java.util.Scanner; class adf{ public static void main(String[] args) { System.out.println("请分别输入三个数"); Scanner scan=new Scanner(System.in); int num1=scan.nextInt(); int num2=scan.nextInt(); int num3=scan.nextInt(); if(num1<num2&&num2<num3) { System.out.println(num1+"<"+num2+"<"+num3); } else if(num1<num3&&num3<num2) { System.out.println(num1+"<"+num3+"<"+num2); } else if(num2<num3&&num3<num1) { System.out.println(num2+"<"+num3+"<"+num1); } else if(num2<num1&&num1<num3) { System.out.println(num2+"<"+num1+"<"+num3); } else if(num3<num2&&num2<num1) { System.out.println(num3+"<"+num2+"<"+num1); } else if(num3<num1&&num1<num2) { System.out.println(num3+"<"+num1+"<"+num2); } } }
3、/*编写程序,声明2个int型变量并赋值。判断两数之和,如果大于等于50,打印“hello world!” */ package test; import java.util.Scanner; class adf{ public static void main(String[] args) { System.out.println("请分别输入两个数"); Scanner scan=new Scanner(System.in); int num1=scan.nextInt(); int num2=scan.nextInt(); if(num1+num2>=50) { System.out.println("hello world"); } } }
4、/*编写程序,声明2个double型变量并赋值。判断第一个数大于10.0,且第2个数小于20.0,打印两数之和。 */ package test; import java.util.Scanner; class adf{ public static void main(String[] args) { Scanner scan=new Scanner(System.in); double num1=13.0; double num2=19.0; if(num1>10.0&&num2<20.0) { double sum=num1+num2; System.out.println("两数之和"+sum); } } }
5、/*求ax2+bx+c=0方程的根。a,b,c分别为函数的参数,如果:b2-4ac>0,则有两个解;b2-4ac=0,则有一个解;b2-4ac<0,则无解; 提示1:x1=(-b+sqrt(b2-4ac))/2a X2=(-b-sqrt(b2-4ac))/2a 提示2:Math.sqrt(num); */ package test; //导入包Scanner便于输入使用 import java.util.Scanner; class adf{ public static void main(String[] args) { System.out.println("请分别输入a、b、c"); Scanner scan=new Scanner(System.in); double x1,x2,d; double a=scan.nextDouble(); double b=scan.nextDouble(); double c=scan.nextDouble(); d=b*b-4*a*c; if(d>0) { x1=(-b+Math.sqrt(b*b-4*a*c))/(2*a); x2=(-b-Math.sqrt(b*b-4*a*c))/(2*a); System.out.println("x1="+x1+",x2="+x2); } if(d==0) { x1=x2=(-b+Math.sqrt(b*b-4*a*c))/(2*a); System.out.println("x1="+x1+",x2="+x2); } if(d<0) { System.out.println("无解"); } } }
二、多分支选择(Switch ……case)
/6、/*对学生成绩大于60分的,输出“合格”。低于60分的,输出“不合格”。 */ package test; //导入包Scanner便于输入使用 import java.util.Scanner; class adf{ public static void main(String[] args) { System.out.println("请输入您的分数"); Scanner scan=new Scanner(System.in); int score=scan.nextInt(); switch(score/60) { case 1: System.out.println("合格");break; default:System.out.println("不合格"); } } }
7、/*根据用于指定月份,打印该月份所属的季节。 3,4,5 春季 6,7,8 夏季 9,10,11 秋季 12, 1, 2 冬季 */ package test; //导入包Scanner便于输入使用 import java.util.Scanner; class adf{ public static void main(String[] args) { System.out.println("请输入月份"); Scanner scan=new Scanner(System.in); int mouth=scan.nextInt(); switch(mouth) { case 3: case 4: case 5: System.out.println("春季");break; case 6: case 7: case 8: System.out.println("夏季");break; case 9: case 10: case 11: System.out.println("秋季");break; case 12: case 1: case 2: System.out.println("冬季");break; } } }
//8、/*编写程序:从键盘上输入年的“month”和“day”,要求通过程序输出输入的日期为2017年的第几天。 */ package adf; //导入包Scanner便于输入使用 import java.util.Scanner; class adf{ public static void main(String[] args) { Scanner scan=new Scanner(System.in); System.out.println("请输入年"); int year=scan.nextInt(); System.out.println("请输入月"); int mouth=scan.nextInt(); System.out.println("请输入日"); int day=scan.nextInt(); int days = 0; switch(mouth) { case 12: days=days+30; case 11: days=days+31; case 10: days=days+30; case 9: days=days+31; case 8: days=days+31; case 7: days=days+30; case 6: days=days+31; case 5: days=days+30; case 4: days=days+31; case 3: if(year%400==0||(year%4==0&&year%100!=0)) { days=days+29;//闰年 } else { days=days+28;//平年 } case 2: days=days+31; case 1: days+=day; } System.out.println(year+"年,"+mouth+"月"+day+"日"+"第"+days+"天"); } }
9、/*编写程序:编写一个程序,为一个给定的年份找出其对应的中国生肖。中国的生肖基于12年一个周期,每年用一个动物代表:rat、ox、tiger、rabbit、dragon、snake、horse、sheep、monkey、rooster、dog、pig。 */ package adf; //导入包Scanner便于输入使用 import java.util.Scanner; class adf{ public static void main(String[] args) { Scanner scan=new Scanner(System.in); System.out.println("请输入年"); int year=scan.nextInt(); switch(year%12) { case 1:System.out.print("猴");break; case 2:System.out.print("狗");break; case 3:System.out.print("猪");break; case 4:System.out.print("鼠");break; case 5:System.out.print("牛");break; case 6:System.out.print("虎");break; case 7:System.out.print("兔");break; case 8:System.out.print("龙");break; case 9:System.out.print("蛇");break; case 10:System.out.print("马");break; case 11:System.out.print("羊");break; case 12:System.out.print("鼠");break; } } }
三、循环结构(while、do……while、for)
10、/*编写程序FooBizBaz.java,从1循环到150并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”。 */ package adf; //导入包Scanner便于输入使用 import java.util.Scanner; class adf{ public static void main(String[] args) { // Scanner scan=new Scanner(System.in); // System.out.println("请输入数字"); // int n=scan.nextInt(); int i; for(i=1;i<=150;i++) { System.out.print("第"+i+"行,"); if(i%3==0) { System.out.print(" foo"); } if(i%5==0) { System.out.print(" bin"); } if(i%7==0) { System.out.print(" baz"); } System.out.println(); } } }
11、/*打印1~100之间所有奇数的和 */ package adf; //导入包Scanner便于输入使用 import java.util.Scanner; class adf{ public static void main(String[] args) { // Scanner scan=new Scanner(System.in); // System.out.println("请输入数字"); // int n=scan.nextInt(); int i,sum=0; for(i=1;i<=100;i+=2) { if(i%2==1) { System.out.println(i); sum+=i; } } System.out.println("100以内奇数之和:"+sum); } }
12、/*打印1~100之间所有是7的倍数的整数的个数及 总和(体会设置计数器的思想) */ package adf; //导入包Scanner便于输入使用 import java.util.Scanner; class adf{ public static void main(String[] args) { // Scanner scan=new Scanner(System.in); // System.out.println("请输入数字"); // int n=scan.nextInt(); int i,sum=0; for(i=1;i<=100;i++) { if(i%7==0) { System.out.println(i); sum+=i; } } System.out.println("100以内能被7整除的倍数之和:"+sum); } }
13、/*输出所有的水仙花数,所谓水仙花数是指一个3 位数,其各个位上数字立方和等于其本身。 例如: 153 = 1*1*1 + 3*3*3 + 5*5*5 */ package adf; //导入包Scanner便于输入使用 import java.util.Scanner; class adf{ public static void main(String[] args) { // Scanner scan=new Scanner(System.in); // System.out.println("请输入数字"); // int n=scan.nextInt(); System.out.println("1000以内的水仙花数:"); int g,s,b; int i; for( i=1;i<=1000;i++) { b=i/100; s=i/10%10; g=i%10; if(g*g*g+s*s*s+b*b*b==i) { System.out.println(i); } } } }
14、/*输入两个正整数m和n,求其最大公约数和最小公倍数。 */ package adf; //导入包Scanner便于输入使用 import java.util.Scanner; class adf{ public static void main(String[] args) { Scanner scan=new Scanner(System.in); System.out.println("请输入两个数字"); int m=scan.nextInt(); int n=scan.nextInt(); // 获取这两个数的最大值和最小值 int min=m<n?m:n; int max=m>n?m:n; // 最大公约数 for(int i=min;i>1;i--) { if(m%i==0&&n%i==0) { System.out.println("最大公约数:"+i);break; } } // 最小公倍数 for(int i=max;i<m*n;i++) { if(i%m==0&&i%n==0) { System.out.println("最小公倍数:"+i);break; } } } }

浙公网安备 33010602011771号