流程控制语句
(三)编程题
1.企业发放的奖金根据利润提成。利润低于或等于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%提成,在程序中设定一个变量为当月利润,求应发放奖金总数?
double run=88;
double sal;
if(run<=10) {
sal=run*0.1;
}else if(run<=20 && run>=10) {
sal=1+(run-10)*0.075;
}else if(run<=40 && run>=20) {
sal=1+0.75+(run-20)*0.05;
}else if(run<=60 && run>=40) {
sal=1+0.75+1+(run-40)*0.03;
}else if(run<=100 &&run>=60) {
sal=1+0.75+1+0.6+(run-60)*0.015;
}else{
sal=1+0.75+1+0.6+0.6+(run-100)*0.01;
}
System.out.println(sal);
}
2.给定一个成绩a,使用switch结构求出a的等级。A:90-100,B:80-89,C:70-79,D:60-69,E:0~59。
int a = 100;
switch (a / 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");
}
3.假设某员工今年的年薪是30000元,年薪的年增长率6%。编写一个Java应用程序计算该员工10年后的年薪,并统计未来10年(从今年算起)总收入。
double i=30000;
double sum=30000;
for(int j=0;j<=10;j++) {
i=i*(1+0.06);
sum+=i;
}
System.out.println(sum);
}
4.猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个,第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
int a=1;
for(int b=1;b<10;b++) {
a=(a+1)*2;
}
System.out.println(a);*/
/*输入一个数字,判断是一个奇数还是偶数。
Scanner scanner= new Scanner(System.in);
System.out.println("");
int nextInt = scanner.nextInt();
if(nextInt%2==0) {
System.out.println(nextInt+"是偶数");
}else {
System.out.println(nextInt+"是奇数");
}
5.输入一个数字,判断是一个奇数还是偶数。
Scanner scanner= new Scanner(System.in);
System.out.println("");
int nextInt = scanner.nextInt();
if(nextInt%2==0) {
System.out.println(nextInt+"是偶数");
}else {
System.out.println(nextInt+"是奇数");
}
6.编写程序, 判断一个变量x的值,如果是1,输出x=1,如果是5,输出x=5,如果是 10,输出x=10,除了以上几个值,都输出x=none。
for(int i=0;i<=11;i++) {
if(i==1) {
System.out.println("x=1");
}else if(i==5) {
System.out.println("x=5");
}else if(i==10) {
System.out.println("x=10");
i++;
}else {
System.out.println("one.");
}
}
/*Scanner scanner= new Scanner(System.in);
System.out.println("");
int nextInt = scanner.nextInt();
switch(nextInt) {
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(" one.");
}*/
7.判断一个数字是否能被5和6同时整除(打印能被5和6整除),或只能被5整除(打印能被5整除),或只能被6整除,(打印能被6整除),不能被5或6整除,(打印不能被5或6整除)
Scanner scanner= new Scanner(System.in);
System.out.println("");
int a = scanner.nextInt();
if(a%5==0 && a%6==0) {
System.out.println("打印能被5和6整除");
}else if(a%5==0) {
System.out.println("打印能被5整除");
}else if(a%6==0) {
System.out.println("打印能被6整除");
}else {
System.out.println("打印不能被5和6整除");
}
/*Scanner scanner= new Scanner(System.in);
System.out.println("");
int a = scanner.nextInt();
if(a%5==0) {
if(a%6==0) {
System.out.println("打印能被5和6整除");
}else {
System.out.println("打印能被5整除");
}
}else if(a%6==0) {
System.out.println("打印能被6整除");
}else {
System.out.println("打印不能被5和6整除");
}*/
8.输入一个年份,判断这个年份是否是闰年。
Scanner scanner= new Scanner(System.in);
System.out.println("");
int a = scanner.nextInt();
if(a%4==0 && a%100!=0) {
System.out.println("是闰年");
}else if(a%400==0){
System.out.println("是闰年");
}else {
System.out.println("不是闰年");
}
9.输入一个0~100的分数,如果不是0~100之间,打印分数无效,根据分数等级打印A,B,C,D,E。
Scanner scanner= new Scanner(System.in);
System.out.println("输入一个0~100的分数");
int a = scanner.nextInt();
if(a>0 && a<=100) {
if(a>=90) {
System.out.println("A");
}else if(a>=80 && a<90) {
System.out.println("B");
}else if(a>=70 && a<80) {
System.out.println("C");
}else if(a>=60 && a<70) {
System.out.println("D");
}else{
System.out.println("E");
}
}else {
System.out.println("打印分数无效");
}
10.输入三个整数x,y,z,请把这三个数由小到大输出。
Scanner scanner= new Scanner(System.in);
System.out.println("输入三个整数");
int a = scanner.nextInt();
int b = scanner.nextInt();
int c = scanner.nextInt();
if(a>b) {
if(b>c) {
System.out.println(a+">"+b+">"+c);
}else if(a>c){
System.out.println(a+">"+c+">"+b);
}else {
System.out.println(c+">"+a+">"+b);
}
}else {
if(a>c) {
System.out.println(b+">"+a+">"+c);
}else if(b>c){
System.out.println(b+">"+c+">"+a);
}else {
System.out.println(c+">"+b+">"+a);
}
}
11.有一个不多于5位的正整数,求它是几位数,分别打印出每一位数字。
Scanner scanner= new Scanner(System.in);
System.out.println("请输入一个不多于5位的正整数");
int a = scanner.nextInt();
if(a/10000!=0) {
System.out.println("是5位的正整数");
System.out.println(a/10000);
System.out.println(a/1000%10);
System.out.println(a/100%10);
System.out.println(a/10%10);
System.out.println(a%10);
}else if(a/1000!=0) {
System.out.println("是4位的正整数");
System.out.println(a/1000);
System.out.println(a/100%10);
System.out.println(a/10%10);
System.out.println(a%10);
}else if(a/100!=0) {
System.out.println("是3位的正整数");
System.out.println(a/100);
System.out.println(a/10%10);
System.out.println(a%10);
}else if(a/10!=0) {
System.out.println("是2位的正整数");
System.out.println(a/10);
System.out.println(a%10);
}else {
System.out.println("是1位的正整数");
System.out.println(a%10);
}
12.编写一个程序,计算邮局汇款的汇费。如果汇款金额小于100元,汇费为一元,如果金额在100元与5000元之间,按1%收取汇费,如果金额大于5000元,汇费为50元。汇款金额由命令行输入。
Scanner scanner= new Scanner(System.in);
int a = scanner.nextInt();
if(a<5000) {
if(a>100) {
System.out.println("汇率为"+a*0.01);
}else {
System.out.println("汇率为1");
}
}else {
System.out.println("汇率为50");
}
13.分别使用for循环,while循环,do循环求1到100之间所有能被3整除的整数的和。
/*int sum=0;
for(int i=1;i<=100;i++) {
if(i%3==0) {
System.out.println(i);
sum+=i;
}
}
System.out.println(sum);*/
/*
int i=1,sum=0;
while(i<=100) {
if(i%3==0) {
sum+=i;
}
i++;
}
System.out.println(sum);*/
/*int i=1,sum=0;
do{
if(i%3==0) {
sum+=i;
}
i++;
}while(i<=100);
System.out.println(sum);*/
/*输出0-9之间的数,但是不包括5。
for(int i=0;i<10;i++) {
if(i==5) {
continue;
}
System.out.println(i);
}
*/
14.输出0-9之间的数,但是不包括5。
for(int i=0;i<10;i++) {
if(i==5) {
continue;
}
System.out.println(i);
}
编写一个程序,求整数n的阶乘,例如5的阶乘是12345。
Scanner scanner= new Scanner(System.in);
int a = scanner.nextInt();
int b=1;
for(;a>0;a--) {
b*=a;
}
System.out.println(b);
15.由命令行输入一个4位整数,求将该数反转以后的数,如原数为1234,反转后的数位4321。
Scanner scanner= new Scanner(System.in); int a = scanner.nextInt(); System.out.println(a%10+""+a/10%10+""+a/100%10+""+a/1000);