收藏 分销(赏)

流程控制-参考答案.doc

上传人:仙人****88 文档编号:8874590 上传时间:2025-03-06 格式:DOC 页数:18 大小:186.04KB 下载积分:10 金币
下载 相关 举报
流程控制-参考答案.doc_第1页
第1页 / 共18页
流程控制-参考答案.doc_第2页
第2页 / 共18页


点击查看更多>>
资源描述
一、【必做题】 1. 输入一个数字,判断是一个奇数还是偶数 if(i!=0){ System.out.println("0"); } else if(i%2==1){ System.out.println("奇数"); }else if(i%2==0){ System.out.println("偶数"); } 2. 编写程序, 判断一个变量x的值,如果是1,输出x=1,如果是5,输出x=5,如果是 10,输出x=10,除了以上几个值,都输出x=none。(答案SwitchDemo.java) int x=1; switch(x) { case 1: { System.out.println("x=1"); break; } case 5: { System.out.println("x=5"); break; } case 10: { System.out.println("x=10"); break; } default: { System.out.println("none"); break; } } • Switch说明 ü 表达式的值只可以接受int、byte、char、short 型,不接受其他类型的值 ü 不允许有重复的case取值 ü switch一旦碰到第一次case匹配,程序就会跳转到这个标签位置,开始顺序执行以后所有的程序代码,而不管后面的case条件是否匹配,直到碰到break语句为止 3. 判断一个数字是否能被5和6同时整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能被5或6整除,(打印不能被5或6整除) System.out.println("***********请输入一个整数*********"); Scanner scanner = new Scanner(System.in); int value = scanner.nextInt(); if (value % 5 == 0 && value % 6 == 0) { System.out.println("输入的数字" + value + "能被5和6整除"); } else if (value % 5 == 0) { System.out.println("输入的数字" + value + "能被5整除"); } else if (value % 6 == 0) { System.out.println("输入的数字" + value + "能被6整除"); } else { System.out.println("输入的数字不能被5或者6整除"); } 4.输入一个年份,判断这个年份是否是闰年 int year=2012; if(year%4==0&&year%100!=0||year%400==0){ System.out.println("闰年"); }else{ System.out.println("不是闰年"); } 5.输入一个0~100的分数,如果不是0~100之间,打印分数无效,根据分数等级打印A,B,C,D,E int score = 999; if(score<=100&&score>=90) System.out.println("A"); else if(score<90&&score>=80) System.out.println("B"); else if(score<80&&score>=70) System.out.println("C"); else if(score<70&&score>=60) System.out.println("D"); else if(score<=70&&score>60) System.out.println("E"); else System.out.println("分数无效"); 6.从命令行传入3个整数,求3个整数的和、积、最大值、最小值、平均值 int[] a = new int[3]; int max,min,add,pro,avr; for(int i=0;i<3;i++) { a[i] = Integer.valueOf(args[i]); } max = a[0]; min = a[0]; add = a[0]; pro = a[0]; for(int i=1;i<3;i++) { if(max<a[i]){ max = a[i]; } if(min>a[i]){ min = a[i]; } add = add+a[i]; pro = pro*a[i]; } avr = add/3; System.out.println("最大值 = "+max); System.out.println("最小值 = "+min); System.out.println("和 = "+add); System.out.println("积 = "+pro); System.out.println("平均值 = "+avr); 7.试写一个三位数,从小到大排列,然后再从大到小排列。 8.输入三角形的三条边,判断是否是一个三角形,三角形的形状:等腰三角形,等边三角形,直角三角形,普通三角形,求出周长,如果是直角三角形,另外求出面积 if(a==b && b==c)return("等边三角形");else if(a==b || b==c || a==c)return("等腰三角形");else if(a+b>c && a+c>b && b+c>a)return("不等边三角形"); 9.有一个不多于5位的正整数,求它是几位数,分别打印出每一位数字。 import java.util.Scanner; public class Answer { /** * @param args the command line arguments */ public static void main(String[] args) { // TODO code application logic here // int num=12345; System.out.println("请输入一个不多于五位的正整数:"); int num = input(); String str = String.valueOf(num); System.out.println(num + "的位数为:" + str.length()); System.out.println("它的各位数分别为:"); for (int i = 0; i < str.length(); i++) { // System.out.println(str.charAt(i)); System.out.print(str.charAt(i) + " "); } System.out.println(); System.out.println("它的各位数逆序分别为:"); for (int i = str.length() - 1; i >= 0; i--) { // System.out.println(str.charAt(i)); System.out.print(str.charAt(i) + " "); } System.out.println(); } private static int input() { Scanner scanner = new Scanner(System.in); int n = scanner.nextInt(); return n; } } 10. 在命令行输入年份,判断该年份是平年还是润年 int year=2012; if(year%4==0&&year%100!=0||year%400==0){ System.out.println("闰年"); }else{ System.out.println("不是闰年"); } 11. 编写一个程序,计算邮局汇款的汇费。如果汇款金额小于100元,汇费为一元,如果金额在100元与5000元之间,按1%收取汇费,如果金额大于5000元,汇费为50元。汇款金额由命令行输入。 public class Answer { public static void main(String[] args) { double A = Integer.parseInt(args[0]); double a = 0; if (A > 5000) { a = 50; } else if (100 <= A) { a = A * 0.01; } else if (100 > A) { a = 1.0; } System.out.println("汇费为:" + a); } } 12.企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数? public class Answer { public static void main(String[] args) { double x = 0,y = 0; System.out.print("输入当月利润(万):"); Scanner s = new Scanner(System.in); x = s.nextInt(); if(x > 0 && x <= 10) { y = x * 0.1; } else if(x > 10 && x <= 20) { y = 10 * 0.1 + (x - 10) * 0.075; } else if(x > 20 && x <= 40) { y = 10 * 0.1 + 10 * 0.075 + (x - 20) * 0.05; } else if(x > 40 && x <= 60) { y = 10 * 0.1 + 10 * 0.075 + 20 * 0.05 + (x - 40) * 0.03; } else if(x > 60 && x <= 100) { y = 20 * 0.175 + 20 * 0.05 + 20 * 0.03 + (x - 60) * 0.015; } else if(x > 100) { y = 20 * 0.175 + 40 * 0.08 + 40 * 0.015 + (x - 100) * 0.01; } System.out.println("应该提取的奖金是 " + y + "万"); } } 13.输入三个整数x,y,z,请把这三个数由小到大输出 import java.util.Scanner; public class Answer { public static void main(String[] args) { input fnc = new input(); int x=0, y=0, z=0; System.out.print("输入第一个数字:"); x = fnc.input(); System.out.print("输入第二个数字:"); y = fnc.input(); System.out.print("输入第三个数字:"); z = fnc.input(); if(x > y) { int t = x; x = y; y = t; } if(x > z) { int t = x; x = z; z = t; } if(y > z) { int t = y; y = z; z = t; } System.out.println( "三个数字由小到大排列为: "+x + " " + y + " " + z); } } class input{ public int input() { int value = 0; Scanner s = new Scanner(System.in); value = s.nextInt(); return value; } } 14. 分别使用for循环,while循环,do循环求1到100之间所有能被3整除的整数的和。 public class Answer { public static void main(String[] args) { //for部分 { int i, a = 0; for (i = 1; i <= 100; i++) { if (i % 3 == 0) a = a + i; } System.out.println(a); } //while 部分 { int i = 1, a = 0; while (i < 101) { if (i % 3 == 0) { a = a + i; } i++; } System.out.println(a); } //do while部分 { int i = 0, a = 0; do { if (i % 3 == 0) { a = a + i; } i++; } while (i < 101); System.out.println(a); } } } 15. 输出0-9之间的数,但是不包括5。 public static void main(String[] args) { for(int i=0;i<10;i++) { if(i==5) { continue; } System.out.println(i); } } 16. 由命令行输入一个成绩a,使用switch结构求出a的等级。A:90-100,B:80-89,C:70-79,D:60-69,E:0~59 public class Answer { public static void main(String[] args) { int x; char grade; Scanner s = new Scanner(System.in); System.out.print( "请输入一个成绩: "); x = s.nextInt(); grade = x >= 90 ? 'A' : x >= 60 ? 'B' :'C'; System.out.println("等级为:"+grade); } } 注:将命令行参数赋给a(int型)使用的语句为: Int a = Integer.parseInt(args[0]); 17. 编写一个程序,从1计数到100,遇到3的倍数就替换为单词“hello”,遇到5的倍数就替换为单词“java”,既为3的倍数又是5的倍数则替换为单词“hellojava”,当是hellojava的时候换行,并输出。实现效果: public class Answer { public static void main(String[] args) { int i; for (i = 1; i < 101; i++) { if (i % 3 == 0 && i % 5 == 0) { System.out.println("hellojava"); } else if (i % 3 == 0 && i % 5 != 0) { System.out.print("hello\t"); } else if (i % 5 == 0 && i % 3 != 0) { System.out.print("java\t"); } else System.out.print(i + "\t"); } } } 18. 编写一个程序,求整数n的阶乘,例如5的阶乘是1*2*3*4*5 import java.util.Scanner; public class Answer { public static void main(String[] args) { System.out.println("input:"); Scanner in = new Scanner(System.in); int n = in.nextInt(); int i = 0; int m = 1; for (i = 1; i <= n; i++) { m = m * i; } System.out.println("n的階乘為:"+m); } } 19. 编写一个程序,找出大于200的最小的质数 public class Answer { public static void main(String[] args) { // TODO Auto-generated method stub for (int i = 200; i < 300; i++) { boolean b = true; for (int j = 2; j < i; j++) { if (i % j == 0) { b = false; break; } } if (!b) { continue; } System.out.println(i); break; } } } 20.假设某员工今年的年薪是30000元,年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)总收入。 double nianxin=30000; long sum = 0; for(int i=1;i<=10;i++){ nianxin = nianxin*(1+0.06); sum+=nianxin; } System.out.println("年薪为"+nianxin+"总工资为"+sum); 二、【选做题】 1.从控制台输入2个数字,求两者之间最大值,再从控制台输入3个数字,求三个数字的最大值,用三目运算符求。 求两数中的最大数: int a = Integer.parseInt(args[0]); int b = Integer.parseInt(args[1]); int m=a>b?a:b; System.out.println(+m); 求三数中的最大数: int a = Integer.parseInt(args[2]); int b = Integer.parseInt(args[3]); int c = Integer.parseInt(args[4]); int t=a>b?a:b; int k=t>c?t:c; System.out.println(+k); 2.输入年月日,判断这是这一年中的第几天 import java.util.*; public class Answer { public static void main(String[] args) { int year, month, day; int days = 0; int d = 0; int e; input fymd = new input(); do { e = 0; System.out.print("输入年:"); year =fymd.input(); System.out.print("输入月:"); month = fymd.input(); System.out.print("输入天:"); day = fymd.input(); if (year < 0 || month < 0 || month > 12 || day < 0 || day > 31) { System.out.println("输入错误,请重新输入!"); e=1 ; } }while( e==1); for (int i=1; i <month; i++) { switch (i) { case 1: case 3: case 5: case 7: case 8: case 10: case 12: days = 31; break; case 4: case 6: case 9: case 11: days = 30; break; case 2: if ((year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)) { days = 29; } else { days = 28; } break; } d += days; } System.out.println(year + "-" + month + "-" + day + "是这年的第" + (d+day) + "天。"); } } class input{ public int input() { int value = 0; Scanner s = new Scanner(System.in); value = s.nextInt(); return value; } } 3. 由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后的数位4321 int a, b, c, d, s; int n = Integer.parseInt(args[0]); a = n / 1000; b = n / 100 % 10; c = n / 10 % 10; d = n % 10; s = d * 1000 + c * 100 + b * 10 + a; System.out.println("反转后数为:" + s); 4.将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。 int b1, b2, b3; for(int m=101; m<1000; m++) { b3 = m / 100; b2 = m % 100 / 10; b1 = m % 10; if((b3*b3*b3 + b2*b2*b2 + b1*b1*b1) == m) { System.out.println(m+"是一个水仙花数"); } } } 5.打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。   int i,j,k,n; for(n=100;n<1000;n++) { i=n/100; j=n/10%10; k=n%10; if(n==i*i*i+j*j*j+k*k*k) System.out.print(n+" "); } 6.判断101-200之间有多少个素数,并输出所有素数。所谓素数n是指,除1和n之外,不能被2~(n-1)之间的任何整数整除。 public class Answer { public static void main(String[] args) { int count = 0; for(int i=101; i<200; i+=2) { boolean b = false; for(int j=2; j<=Math.sqrt(i); j++) { if(i % j == 0) { b = false; break; } else { b = true; } } if(b == true) {count ++;System.out.println(i );} } System.out.println( "素数个数是: " + count); } } 7.求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘控制。 import java.util.Scanner; public class Answer { public static void main(String[] args) { long a , b = 0, sum = 0; Scanner s = new Scanner(System.in); System.out.print("输入数字a的值: "); a = s.nextInt(); System.out.print("输入相加的项数:"); int n = s.nextInt(); int i = 0; while(i < n) { b = b + a; sum = sum + b; a = a * 10; ++ i; } System.out.println(sum); } } 8.一个数如果恰好等于它的因子之和,这个数就称为"完数"。例如6=1+2+3.编程 找出1000以内的所有完数。 public class Answer { public static void main(String[] args) { System.out.println("1到1000的完数有: "); for(int i=1; i<1000; i++) { int t = 0; for(int j=1; j<= i/2; j++) { if(i % j == 0) { t = t + j; } } if(t == i) { System.out.print(i + " "); } } } } 9.打印出如下图案(菱形)      *     ***   ******  ********   ******    ***     *  public class Answer { public static void main(String[] args) { int H = 7, W = 7;//高和宽必须是相等的奇数 for(int i=0; i<(H+1) / 2; i++) { for(int j=0; j<W/2-i; j++) { System.out.print(" "); } for(int k=1; k<(i+1)*2; k++) { System.out.print('*'); } System.out.println(); } for(int i=1; i<=H/2; i++) { for(int j=1; j<=i; j++) { System.out.print(" "); } for(int k=1; k<=W-2*i; k++) { System.out.print('*'); } System.out.println(); } } } 10.在控制台输出以下图形 11.打印以下图形 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 int j = 1,k = 1;//控制换行 for (int i = 1;i <= 15;i ++){ System.out.print(i + "\t"); j ++; if (j > k){ j = 1; k ++; System.out.println(); } } 12.李先生岁数的平方与他的夫人的岁数之和是1053,而他的夫人的岁数的平方与他的岁数之和是873,请编写程序计算李先生及其夫人的岁数各是多少。 for(int i=1;i<100;i++){ for(int j=i;j<100;j++){ if(j*j+i==1053&&j+i*i==873) System.out.println("丈夫:" + j + "岁,妻子:" + i +"岁。"); } } 13.有两个正整数a和b,已知a*b=2048,求a、b各为何值时,a+b的值最小值。 int a = 0, b = 0, min =100000, num_a = 0, num_b = 0; for (a = 1; a <= 2048; a++) { if (2048 % a == 0) { b = 2048 / a; if (min > a + b) { min = a + b; num_a = a; num_b = b; } } } System.out.print(num_a + "\t" + num_b); 14.用1、2、3、4能组成多少无重复数字的三位数 int count=0; for(int i=1;i<=4;i++){ for(int j
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服