第六章
1.使用for循环结构实现:从键盘上接受从周一至周五每天的学习时间(以小时为单位),并计算每日平均学习时间。
2..鸡兔同笼是我国古代著名的趣题之一。大约在1500年前,《孙子兵法》中记载了这样一道题目:今有鸡兔同笼,上有三十五头,下有九十四足,问鸡兔各几只?试编写程序解决这个问题。
3.开发一个标题为”FlipFlop”的游戏应用程序。它从1计数到100,遇到3的倍数就输出单词”Flip”,遇到5的倍数就输出单词”Flop”,遇到即为3的倍数又为5的倍数则输出单词”FlipFlop”,其余情况下输出当前数字。
4.在马克思手稿中有一道趣味题的数学问题:一共有30个人,可能包括男人,女人和小孩。他们在一家饭馆吃饭共花了50先令,其中每个男人花了3先令,每个女人花2先令,每个小孩花1先令。请问男人,女人和小孩各几人?
5.阅读下列程序段,写出程序结束后变量sum的值。
第七章
2.首先依次输入五句话,然后将它逆序输出。
package com.bdqn.demo;
public class Demo6 {
public static void main(String[] args) {
System.out.println(“请输入5句话”);
String [] shuju = new String [] {“在java中”,”数组可以存储”,” 一组连续的”,”数据类型相同的”,”元素”};
for (int i = 0; i < shuju.length; i++) {
System.out.println(“第”+(i+1)+”句话:”+shuju[i]);
}
System.out.println(“逆序输出5句话:”);
for (int i=shuju.length-1; i>=0; i–) {
System.out.println(shuju[i]);
}
}
}
3.某百货商场当日消费积分最高的八名顾客,他们的积分分别是18,28,7,36,13,2,89,63。编写程序找出最低的积分及它在数组中的原始位置(下标)。
package com.bdqn.dierzhangjie;
public class Demo {
public static void main(String[] args) {
int points[] = new int[] {18,25,7,36,13,2,89,63};
int min = 0;
int index = points.length;
min = points[0];
for (int i = 0; i < points.length; i++) {
if(min>points[i]) {
min = points[i];
index = i;
}
}
System.out.println(“最低的积分为:”+min);
System.out.println(“最低的积分的下标为:”+index);
}
}
4.从键盘上输入10个整数,合法值为1,2或3,不是这三个数则为非法数字。试编程序统计每个整数和非法数字的个数。
package com.bdqn.demo;
import java.util.Scanner;
public class Demo7 {
public static void main(String[] args) {
int [] nums = new int [10];
int [] count = new int [4];
Scanner input = new Scanner(System.in);
System.out.println(“请输入10个数”);
for (int i = 0; i < nums.length; i++) {
nums[i]=input.nextInt();
switch ( nums[i] ) {
case 1:
count[0]++;
break;
case 2:
count[1]++;
break;
case 3:
count[2]++;
break;
default:
count[3]++;
break;
}
}
System.out.println(“数字1的个数:”+count[0]);
System.out.println(“数字2的个数:”+count[1]);
System.out.println(“数字3的个数:”+count[2]);
System.out.println(“非法数字的个数:”+count[3]);
}
}
5.假设有一个长度为5的数组,如下所示。
int [] array = new int [] {1,3,-1,5,-2};
现创建一个新数组 newArray[],要求新数组元素的存放顺序与原数组中的元素逆序,并且如果原数组中的元素值小于0,在新数组中按0存储。
package com.bdqn.demo;
public class Demo8 {
public static void main(String[] args) {
int[] array = new int[] { 1, 3, -1, 5, -2 };
int[] newArray = new int[5];
System.out.println(“原数组为:”);
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + ” “);
}
System.out.print(“逆序并处理后的数组为:”);
for (int i = array.length - 1; i >= 0; i++) {
continue;
}
}
}
6.有一组英文歌曲,按照歌曲名称的字母顺序从”A”到”Z”顺序排列,保存在一个数组中。现在增加一首新歌,将它插入数组,并保持歌曲名称升序排列。
package com.bdqn.demo;
import java.util.Arrays;
import java.util.Scanner;
public class Demo9 {
public static void main(String[] args) {
String [] musics = new String [] {“Island”,”Ocen”,”Pretty”,”Sun”};
String [] music1 =Arrays.copyOf(musics,5);
int index =music1.length;
System.out.println(“插入前的数组为:”);
for (int i = 0; i < musics.length; i++) {
System.out.print(musics[i]+” “);
}
Scanner input = new Scanner(System.in);
System.out.println(“\n请输入歌曲名称:”);
String m = input.next();
for (int i = 0; i < musics.length; i++) {
if (musics[i].compareToIgnoreCase(m)>0) {
index = i;
break;
}
}
for (int i = music1.length - 1;i>index;i–) {
music1[index] = m;
}
System.out.println(“\n插入后的数组为:”);
for (int i = 0; i < music1.length; i++) {
System.out.print(music1[i]+” “);
}
}
}
第八章循环结构进阶
2.编写程序,打印如下图案,要求该图案的行数由用户输入。
package com.bdqn.demo;
import java.util.Scanner;
public class Demo14 {
public static void main(String[] args) {
int rowe = 0;
System.out.println(“请输入行数:”);
Scanner input = new Scanner(System.in);
rowe = input.nextInt();
for (int i = 1; i <= rowe; i++) {
for (int j = 1; j <= i; j++) {
System.out.print(j + ” “);
}
System.out.print(“\n”);
}
}
}
3.我国古代数学家张邱建在《算经》中出一道”百钱买百鸡”的问题,题意是这样的:5文钱可以买1只公鸡,3文钱可以买一只母鸡,一文钱可以买3只雏鸡。现在用100文钱买100只鸡,那么公鸡,母鸡,雏鸡各有多少只?
package com.bdqn.demo;
public class Demo15 {
public static void main(String[] args) {
for (int i = 0; i < 20; i++) { //i整数等于公鸡
for (int j = 0; j < 33; j++) { //j整数等于母鸡
for (int k = 0; k < 100; k++) { //k整数等于雏鸡
if ((5 * i + 3 * j + k / 3 == 100) && (i + j + k == 100)) {
System.out.println(“公鸡” + i + “母鸡” + j + “雏鸡” + k);
}
}
}
}
4.有三个班级各四名学员参赛,从控制台输入每个班级参赛学员的成绩,要求统计出三个班级所以参赛学员中成绩大于85分的学员的平均分。
package com.bdqn.demo;
import java.util.Scanner;
public class Demo16 {
public static void main(String[] args) {
int[] score = new int[4];
int classnum = 3;
double sum = 0.0;
double[] sumArray = new double[classnum];
Scanner input = new Scanner(System.in);
for (int i = 0; i < classnum; i++) {
sum = 0.0;
System.out.println(“请输入第” + (i + 1) + “个班级的成绩”);
for (int j = 0; j < score.length; j++) {
System.out.println(“第” + (j + 1) + “个学员的成绩:”);
score[j] = input.nextInt();
sum += score[j];
}
sumArray[i] = sum / score.length;
System.out.println(“三个班级所以参赛学员中成绩大于85分的学员的平均分:” + sumArray[i] + “\n”);
}
}
}
5.假设一个简单的在ATM上取款的过程如下:首先提示用户输入密码(password),最多只能输入三次,超过三次则提示用户”密码错误,请去卡”,结束交易。如果用户密码正确,在提示用户输入金额(amount),ATM只能输出100元的纸币,一次取钱数要求最低0元,最高1000元。如果用户输入金额符合上述要求,则打印输出用户取的钱数,最后提示用户”交易完成,请取卡!”,否则提示用户重新输入金额。假设用户密码是111111,
package com.bdqn.demo;
import java.util.Scanner;
public class Demo18 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num = 0;
for (int i = 0; i < 3; i++) {
System.out.print(“请输入密码:”);
int password = input.nextInt();
if (password == 111111) {
break;
} else {
num++;
continue;
}
}
if (num == 3) {
System.out.println(“输入次数超过三次,请取卡!”);
}
if (num < 3) {
System.out.print(“请输入金额:”);
int money = input.nextInt();
while (money % 100 != 0 || money < 0 || money > 1000) {
System.out.print(“输入金额不合法,请重新输入:”);
money = input.nextInt();
}
System.out.println(“您取了” + money + “元”);
System.out.println(“交易完成,请取卡!”);
}
}
}
6.输入行数,打印菱形,要求如下:
从控制台输入菱形的高度(行数)。如果用户输入的行数合法(奇数),则打印出菱形,否则提示用户输入奇数。
package com.bdqn.demo;
import java.util.Scanner;
public class Demo17 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print(“请输入菱形的行数(奇数):”);
int row = input.nextInt();
while (row % 2 == 0) {
System.out.print(“输入错误,请输入奇数:”);
row = input.nextInt();
}
int row1 = (row + 1) / 2;
for (int i = 1; i <= row1; i++) {
int row2 = row1 - i;
int row3 = 2 * i - 1;
for (int j = 0; j < row2; j++) {
System.out.print(” “);
}
for (int j = 0; j < row3; j++) {
System.out.print(“*”);
}
System.out.println(“”);
}
int row4 = (row - 1) / 2;
for (int i = 1; i <= row4; i++) {
int row5 = (row - 2 * i);
for (int j = 1; j <= i; j++) {
System.out.print(” “);
}
for (int j = row5; j > 0; j–) {
System.out.print(“*”);
}
System.out.println(“”);
}
}
}