您的位置:首页 > 编程语言 > Java开发

JAVA基础知识: 流程控制习题答案

2015-03-23 09:19 471 查看
第一题:

有 36 人 36 块板砖,男人每人般 4 块,女人每人搬 3 块,小孩每 2 人搬 1 块。36 人都搬了一次,把砖刚好搬晚,问:几男几女的几个小孩?

int nan;
int nv;
for (nan = 1; nan < 9; nan++) {
for (nv = 1; nv < 11; nv++) {
if ((nan * 4 + nv * 3 + (36 - nan - nv) / 2) == 36
&& ((36 - nan - nv) % 2 == 0)) {
System.out.println(nv + "男");
System.out.println(nan + "女");
System.out.println(36 - nan - nv);
}
}
}


第二题: 打印 1-100 的素数 (只能被 1 和他本身整除的数)

素数 : 只能被 1 和他本身整除的数.

for (int i = 2; i <= 100; i++) {
boolean flag = true;
for (int j = 2; j < i; j++) {
if (i % j == 0) {
flag = false;
break;
}
}
if (flag) {
System.out.println(" " + i);
}
}


第三题: 写个猜数字的小游戏:

生成一个 1-100 的随即数,让用户输入数字猜,如果猜错了 提示猜大了 还是猜小了,然后用户继续输入信数字猜,猜对了退出!


for (;;) {
Random rd = new Random();
int re = rd.nextInt(100);
int ree = rd.nextInt(100);
if (ree == re) {
System.out.println("你猜对了 真是牛B到极点了~!" + '\n' + re + '\n' + ree);
break;
} else if (ree > re) {
System.out.println("你猜大了!" + re);
} else {
System.out.println("你猜小了!" + re);
}
}


第四题:

出租车计费标准为:3 公里以内 10 元,3 公里以后每 1 公里加 2 元,每等待 5 分钟加 2 元。超过 15 公里,每公里加 3 元,打印出钱数。

System.out.println("请输入等待时间和公里数 ~!");
Scanner sc = new Scanner(System.in);
int tim = sc.nextInt();
int juli = sc.nextInt();
int fee = 0;
int fee1 = 0;
if (tim / 5 != 0) {
fee1 = tim / 5 * 2;
}
if (juli <= 3)
fee = fee1 + 10;
else if (juli > 3 && juli <= 15)
fee = fee1 + 10 + (juli - 3) * 2;
else
fee = fee1 + 10 + (juli - 15) * 3 + 12 * 2;
System.out.println(fee);


第五题:

一电信公司的市内通话费计算标准如下:3 分钟 02 元,3 分钟后每增加一分钟加 0.1元,不足一分钟的按照一分钟计算。要求编写程序。给定一个通话时间(秒)。计算相应的费用。

System.out.println("Please Input Time ~!");
Scanner sc = new Scanner(System.in);
int mm = sc.nextInt();
double fee;
if (mm == 0)
fee = 0;
if (mm / 180 == 0)
fee = 0.2;
else if ((mm - 180) % 60 > 0)
fee = (mm - 180) / 60 * 0.1 + 0.3;
else
fee = (mm - 180) / 60 * 0.1 + 0.2;
System.out.println(fee);


第六题:

给定 3 个数,a b c ,输出最大数。

System.out.println("请输入3个数字 !");
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int max;
if (a > b)
max = a;
else
max = b;
if (max < c)
max = c;
System.out.println(max);


第七题:

用 scanner 输入一个数字,然后判断下数字大小,如果大于 0 输出为正数等于 0 输出为 0 否则输出为负数。

System.out.println("请输 入 一 个 数 字 !");
Scanner sc = new Scanner(System.in);
int cc = sc.nextInt();
if (cc > 0)
System.out.println("正数");
else if (cc == 0)
System.out.println("零");
else
System.out.println("负数");


第八题:

用 scanner 输入一个分数,来判断分数等级:

>=90 打印 优秀

80-90 打印 良好

70-80 打印 中等

60-70 打印 及格

<60 打印 不及格

System.out.println("请输入成绩分数 ~!");
Scanner sc = new Scanner(System.in);
int mm = sc.nextInt();
if (mm >= 90) {
System.out.println("优秀");
} else if (mm >= 80) {
System.out.println("良好");
} else if (mm >= 70) {
System.out.println("中等");
} else if (mm >= 60) {
System.out.println("及格");
} else {
System.out.println("不及格");
}


第九题:

循环打印 100 以内的数。

for (int i = 1; i <= 100; i++) {
System.out.println(i);
}


第十题:

循环打印 100 以内的所有奇数

for (int i = 99; i >= 1; i = i - 2) {
System.out.println(i);
}
for (int i = 1; i <= 100; i = i + 2) {
System.out.println(i);
}
for (int i = 0; i <= 100; i++) {
if (i % 2 != 0)
System.out.println(i);
}
for (int i = 100; i >= 0; i--) {
if (i % 2 != 0)
System.out.println(i);
}
for (int i = 0; i < 50; i++) {
System.out.println(2 * i + 1);
}


第十一题:

用 scanner 输入一个数字,计算从 1 到这个数字的累加并打印出来。

System.out.println("请输入数 ~!");
Scanner sc = new Scanner(System.in);
int tim = sc.nextInt();
int i;
int sum = 0;
for (i = 1; i <= tim; i++) {
if (i % 2 == 1) {
sum = sum + i;
}
}//只做奇数想加
System.out.println(sum);


第十二题:

打印

*

* *

* * *

* * * *

* * * * *

for (int i = 0; i <= 5; i++) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
System.out.print("\n");
}


第十三题:

打印

*

***

*****

*******

*********

for (int i = 0; i < 10; i = i + 2) {
for (int j = 0; j <= i; j++) {
System.out.print("*");
}
System.out.print("\n");
}

----------

for (int h = 0; h < 5; h++) {
for (int y = 0; y <= 2 * h; y++) {
System.out.print("*");
}
System.out.print("\n");
}


第十四题:

打印乘法表

for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("   " + i * j + "  ");
}
System.out.println("");
}


第十五题:

打印乘法表:遇到 12 的倍数不显示,遇到 28 的倍数,本行终止。

for (int i = 1; i <= 9; i++) {
for (int j = 1; j <= i; j++) {
if (i * j % 28 == 0)
break;
if (i * j % 12 == 0) {
System.out.print("      ");
continue;
} else
System.out.print("   " + i * j + "  ");
}
System.out.println("");
}


第十六题:

打印 0-50 之间不是 5 的倍数和 7 的倍数

for (int i = 0; i < 50; i++) {
if (i % 5 == 0 | i % 7 == 0)
continue; //终止本次循环,继续下此
System.out.println(i);
}


第十七题:

学习打印 1-100 的数字,遇到 7 的倍数或包含 7 的数字,不打印

for (int i = 0; i <= 100; i++) {
if (i % 7 == 0)
continue;
if (i % 10 == 7)
continue;
if (i / 7 == 10 | i / 7 == 11)
continue;
System.out.println(i);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: