Java练习题2-代码
代码练习题
练习1:键盘输入一个年份和月份,判断当月多少天?
import java.util.Scanner; public class demo1{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入年份"); int year = scan.nextInt() ; System.out.println("请输入月份"); int month = scan.nextInt() ; switch(month){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: System.out.println("你输入的月份有31天"); break; case 2: if( (year%4 == 0 && year%100 != 0) || (year%400 == 0) ) { System.out.println("您输入的月份有28天"); }else{ System.out.println("您输入的月份有29天"); }break; case 4: case 6: case 9: case 11: System.out.println("你输入的月份有30天"); break; default: System.out.println("你输入的月份有误"); break; } } } |
练习2:循环得到用户从控制台输入的5个整数,并计算出它们之和
import java.util.Scanner; public class demo37{ public static void main(String[] args) { int sum = 0 ; for(int a=1 ; a<=5 ; a++){ Scanner scan = new Scanner(System.in); System.out.println("请输入整数"); int x = scan.nextInt(); sum += x; }System.out.println("总数为"+sum); } } |
练习3:输入两个整数,判断第1个整数是否为第2个整数的倍数
import java.util.Scanner; public class demo1{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入第1个整数"); int a = scan.nextInt() ; System.out.println("请输入第2个整数"); int b = scan.nextInt() ; if(a%b == 0) { System.out.println(a+"是"+b+"的倍数"); }else{ System.out.println(a+"不是"+b+"的倍数"); } } } |
练习4:编写一个程序,求整数n的阶乘,例如于的阶乘是1*2*3*4*5
import java.util.Scanner; public class demo4{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入整数"); int n = scan.nextInt() ; int jc = 1; for (int i=1; i<=n; i++) { jc *= i; }System.out.println("n的阶乘为:"+jc); } } |
练习5:输入三个整数x,y,z,请把这三个数由小到大输出
import java.util.Scanner; public class demo4{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入3个整数"); int x = scan.nextInt() ; int y = scan.nextInt() ; int z = scan.nextInt() ; if(x>y || y>z) { System.out.println(z+","+y+","+x); }else if(z>y || y>x) { System.out.println(x+","+y+","+z); }else if(z>x || x>y) { System.out.println(y+","+x+","+z); }else if(y>x || x>z) { System.out.println(z+","+x+","+y); }else if(x>z || z>y) { System.out.println(y+","+z+","+x); }else{ System.out.println(x+","+z+","+y); } } } |
练习6:有一个不多于5位的正整数,求它是几位数,分别打印出每一位数字。
import java.util.Scanner; public class demo4{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入1个不多于5位的正整数"); int x = scan.nextInt() ; if(x>=100000) { System.out.println("您的输入有误"); }else{ String y = String.valueOf(x); int z = y.length(); System.out.println("您输入的数为"+z+"位数"); switch(z){ case 1: System.out.println("每一个数分别为"+x); break; case 2: System.out.println("每一个数分别为"+x/10+","+x%10); break; case 3: System.out.println("每一个数分别为"+x/100+","+(x%100)/10+","+x%10); break; case 4: System.out.println("每一个数分别为"+x/1000+"," + (x%1000)/100+","+(x%100)/10+","+x%10); break; default: System.out.println("每一个数分别为"+x/10000+","+(x%10000)/1000 +","+(x%1000)/100+","+(x%100)/10+","+x%10); } } } } |
练习7:假设某员工今年的年薪是30000元,年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)总收入。
public class demo4{ public static void main(String[] args) { int sal = 30000 ; int sum = 0; for(int i=1;i<=10;i++){ sal =(int) (sal*(1+0.06)) ; sum += sal; } System.out.println("10年后的年薪为"+sal+"元\t10年总工资为"+sum+"元"); } } |
练习8:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
public class demo4{ public static void main(String[] args) { int a = 1; for(int i=2; i<=10; i++) { a = (a+1)*2; } System.out.println("猴子第一天摘了 " + a + " 个桃子"); } } |
练习9:由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后的数位4321
import java.util.Scanner; public class demo4{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入1个4位整数"); int x = scan.nextInt() ; if(x>=10000 || x<1000){ System.out.println("您的输入有误"); }else{ int q = x/1000 ; int b = (x%1000)/100 ; int s = (x%100)/10 ; int g = x%10 ; System.out.println("原数为:"+x+"\t反转后为:"+g+s+b+q); } } } |
练习10:求循环式子2+22+222+2222+22222的和,若第?个式子为p,则后一个式子p=p*10+2
public class demo1{ public static void main(String[] args) { int p = 0 ; int sum = 0 ; for(int i=1;i<=5;i++) { p = p*10 + 2 ; sum = sum + p ; }System.out.println(p+"\t和为"+sum); } } |
练习11:在一个图书系统的推荐图书列表中保存了50条信息,现在需要让它每行显示10条,分5行显示,请使用do…while实现
public class demo1{ public static void main(String[] args) { int b = 1 ; do{ int a = 1 ; do{ System.out.print("这是第"+b+"行的第"+a+"条信息 "); a++ ; }while(a<=10); b++ ; System.out.println(); }while(b<=5); } } |
int a = 0; do{ a++; if((a-1)%10==0){ System.out.println(); }System.out.print("这是第"+a+"条信息,"); }while(a<50); |
int a = 1; do{ System.out.print("这是第"+a+"条信息 "); if(a%10==0){ System.out.println(); }a++; }while(a<=50); |
练习12:学生输入6门成绩,若录入的成绩为负则跳出循环;若录入了6门合法成绩,则就算总成绩。
import java.util.Scanner; public class demo1{ public static void main(String[] args) { int sum = 0; for(int a=1;a<=6;a++){ Scanner scan = new Scanner(System.in); System.out.println("请输入成绩"); int x = scan.nextInt() ; sum += x ; }System.out.println("总成绩为"+sum); } } //没实现跳出循环,不计算总成绩 |
import java.util.Scanner; public class demo1{ public static void main(String[] args) { int sum = 0; boolean flag = true ; for(int a=1;a<=6;a++){ Scanner scan = new Scanner(System.in); System.out.println("请输入第"+a+"门课程成绩"); int x = scan.nextInt() ; if(x<0){ flag = false ; break; }sum += x ; }if(flag){ System.out.println("总成绩为"+sum); }else{ System.out.println("输入成绩不合法,退出"); } } } |
练习13:九九乘法表
public class demo20{ public static void main(String[] args) { System.out.println("java九九乘法表"); for(int a=1;a<=9;a++){ //代表行数 for(int b=1;b<=a;b++){ //代表每行的个数 System.out.print(a+"*"+b+"="+(a*b)+" "); }System.out.println(); } } } |
练习14:*型三角形的各种形式
public class demo21{ public static void main(String[] args) { System.out.println("java杨辉正直角三角形"); for(int a=1;a<=9;a++){ //代表行数 for(int b=1;b<=a;b++){ //代表每行的个数 System.out.print("*"); }System.out.println(); //每执行完一行,换行 } } } |
System.out.println("java杨辉正直角三角形"); for(int a=1;a<=9;a++){ //代表行数 for(int b=1;b<=a;b++){ //代表每行的个数 System.out.print("*"); }System.out.println(); //每执行完一行,换行 |
System.out.println("java杨辉倒直角三角形"); for(int a=9;a>=1;a--){ //代表行数 for(int b=a;b>=1;b--){ //代表每行的个数 System.out.print("*"); }System.out.println(); //每执行完一行,换行 |
System.out.println("java杨辉正等腰三角形"); for(int a=1;a<=9;a++){ //代表行数 for(int b=9;b>=a;b--){ //代表每行的空格个数 System.out.print(" "); }for(int c=1;c<2*a;c++){ //代表每行的*个数,首行1个*,下一行比上一行多2个* System.out.print("*"); }System.out.println(); //每执行完一行,换行 |
System.out.println("java杨辉倒等腰三角形"); for(int a=9;a>=1;a--){ //代表行数 for(int b=9;b>=a;b--){ //代表每行的空格个数 System.out.print(" "); }for(int c=2*a;c>1;c--){ //代表每行的*个数 System.out.print("*"); }System.out.println(); //每执行完一行,换行 |
System.out.println("java杨辉正等腰三角形"); for(int a=1;a<=9;a++){ //代表行数 for(int b=9;b>=a;b--){ //代表每行的空格个数 System.out.print(" "); }for(int c=1;c<=a;c++){ System.out.print("*"); System.out.print(" "); }System.out.println(); //每执行完一行,换行 |
System.out.println("java杨辉倒等腰三角形"); for(int a=9;a>=1;a--){ //代表行数 for(int b=9;b>=a;b--){ //代表每行的空格个数 System.out.print(" "); }for(int c=a;c>=1;c--){ //代表每行的*个数 System.out.print("*"); System.out.print(" "); }System.out.println(); //每执行完一行,换行 |
练习15:java小计算器
import java.util.Scanner; public class demo5{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("请输入第一个数字"); double a = scan.nextDouble() ; System.out.println("请输入运算符"); String x = scan.next() ; System.out.println("请输入第2个数字"); double b = scan.nextDouble() ; switch(x){ case "+": System.out.println(a+x+b+"的结果为"+(a+b)); break ; case "-": System.out.println(a+x+b+"的结果为"+(a-b)); break ; case "*": System.out.println(a+x+b+"的结果为"+(a*b)); break ; case "/": if(b!=0){ System.out.println(a+x+b+"的结果为"+(a/b)); break ; }else{ System.out.println("分母不能为0"); break ; } case "%": System.out.println(a+x+b+"的结果为"+(a%b)); break ; default: System.out.println("不支持此运算"); } } } |
练习16:收银台结账,如果购买商品数量≥10,且金额≥1000,就给他打九折,最后计算出他的应付金额
import java.util.Scanner; public class demo6{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); int num = 0 ; //表示数量 double sum = 0 ; //表示总金额 double money = 0 ; //每次输入的金额 System.out.println("请输入第1件物品金额"); money = scan.nextDouble() ; while(money!=0){ //输入金额为0时,跳出循环,代表收银台扫码标签完成,没有货物需要结账了 num++ ; sum += money ; System.out.println("请输入第"+(num+1)+"件物品金额"); money = scan.nextDouble() ; } if(num>=10 && sum>=1000){ sum = sum*0.9 ; }System.out.println("应付金额为"+sum); } } //while循环前,需要录入一个金额money,才可进入循环 //while循环前录入的金额,会进入总金额;while前的第一次输入,也会算进去,因为最后一次始终会输入0。 |
练习17:常用图形面积计算器
import java.util.Scanner; public class demo8{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); double s = 1 ; System.out.println("请输入图形形状"); String tx = scan.next() ; switch(tx){ case "长方形": System.out.println("请输入长方形的长度为多少厘米"); double c = scan.nextDouble() ; System.out.println("请输入长方形的宽度度为多少厘米"); double k = scan.nextDouble() ; s = c*k ; System.out.println("长方形面积为"+s+"平方厘米"); break ; case "圆形": System.out.println("请输入圆形的半径为多少厘米"); double r = scan.nextDouble() ; s = 3.14*r*r ; System.out.println("圆形面积为"+s+"平方厘米"); break ; case "三角形": System.out.println("请输入三角形的底为多少厘米"); double d = scan.nextDouble() ; System.out.println("请输入三角形的高为多少厘米"); double h = scan.nextDouble() ; s = d*h*0.5 ; System.out.println("三角形面积为"+s+"平方厘米"); break ; default: System.out.println("对不起,不支持此图形"); } } } |
作者:kerwin-chyl
文章链接:https:////www.cnblogs.com/kerwin-chyl
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利