![](https://img-blog.csdnimg.cn/20201002215741479.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
第七章习题
第七章习题
jxxxh
就读于浙江师范大学
展开
-
第七章第三十题(模式识别:四个连续相等的数)(Pattern recognition: four consecutive equal numbers)
第七章第三十题(模式识别:四个连续相等的数)(Pattern recognition: four consecutive equal numbers)*7.30(模式识别:四个连续相等的数)编写下面的方法,测试某个数组是否有四个连续相同值的数,那就显示该结论。程序应该首先提示用户键入输入的大小,即列表中值的个数。这里是一个运行示例:Enter the number of values:8Enter the values:3 4 5 5 5 5 4 5The list has consecutiv原创 2020-12-02 00:12:41 · 1008 阅读 · 0 评论 -
第七章第三十二题(列表分区)(List partition)
第七章第三十二题(列表分区)(List partition)**7.32(列表分区)编写以下方法,使用第一个元素对列表进行分区,该元素称为中心点。public static int partition(int[] list)分区后,列表中的元素被重新安排,在中心点元素之前的元素都小于或者等于该元素,而之后的元素都大于该元素。方法返回中心点元素位于新列表中的下标。例如,假设列表是{5,2,9,3,8}。最多进行list.length次比较来实现该方法。该实现的动画演示参见编写一个测试程序,提示用户输入原创 2020-12-02 00:12:01 · 972 阅读 · 0 评论 -
第七章第三十四题(对字符串的字符排序)(Character ordering of strings)
第七章第三十四题(对字符串的字符排序)(Character ordering of strings)**7.34(对字符串的字符排序)使用以下方法头编写一个方法,返回一个排好序的字符串。public static String sort(String s)例如,sort(“acb”)返回abc编写一个测试程序,提示用户输入一个字符串,显示排好序的字符串。**7.34(Character ordering of strings)Use the following method header to原创 2020-12-02 00:11:39 · 993 阅读 · 2 评论 -
第七章第三十五题(游戏:猜字词游戏)(Game: word guessing game)
第七章第三十五题(游戏:猜字词游戏)(Game: word guessing game)***7.35(游戏:猜字词游戏)编写一个猜字词游戏。随机产生一个单词,提示用户一次猜测一个字母,如运行示例所示。单词中的每个字母显示为一个星号。当用户猜测正确后,正确的字母显示出来。当用户才出一个单词,显示猜错的次数,并且询问用户是否继续游戏猜测下一个单词。声明一个数组来存储单词,如下所示:String[] words = {“write”,“that”,…};(Guess)Enter a letter i原创 2020-12-02 00:11:13 · 1106 阅读 · 0 评论 -
第七章第三十六题(游戏:八皇后问题)(Game: Eight Queens)
第七章第三十六题(游戏:八皇后问题)(Game: Eight Queens)***7.36(游戏:八皇后问题)经典的八皇后难题是要将八个皇后放在棋盘上,任何两个皇后都不能互相攻击(即没有两个皇后是在同一行、同一列或者同一个对角上)。可能的解决方案有很多。编写程序显示一个这样的解决方案。***7.36(Game: Eight Queens)The classic problem of eight queens is to put eight queens on the chessboard, and原创 2020-12-02 00:08:38 · 702 阅读 · 0 评论 -
第七章第三十七题(游戏:豆机)(Game: bean machine)
第七章第三十七题(游戏:豆机)(Game: bean machine)***7.37(游戏:豆机)豆机,也称梅花瓶或高尔顿瓶,他是一个用来做统计实验的设备,以英国科学家弗兰克斯·高尔顿的名字来命名。他是一个三角形状的均匀防止钉子(或钩子)的直立板子。球从板子开口落下。每当球碰到钉子,他以50%的概率落向左边或者落向右边。在板子底部的各个槽中都会堆积一堆球。编写程序模拟豆机。程序应该提示用户输入球的个数以及机器的槽数。打印每个球的路径模拟他的下落。使用条形图显示槽中球的最终储备量。下面时程序的一个运行原创 2020-12-02 00:08:09 · 842 阅读 · 0 评论 -
第七章第二十八题(数学:组合)(Mathematics: combination)
第七章第二十八题(数学:组合)(Mathematics: combination)*7.28(数学:组合)编写一个程序,提示用户输入10个整数,然后显示从这个10个数中选出两个数的所有组合。*7.28(Mathematics: combination)Write a program that prompts the user to enter 10 integers, and then displays all combinations of two selected from the 10 num原创 2020-12-01 10:03:15 · 514 阅读 · 0 评论 -
第七章第二十六题(完全相同的数组)(Exactly the same array)
#第七章第二十六题(完全相同的数组)(Exactly the same array)7.26(完全相同的数组)如果两个数组list1和list2对应的元素相等,那么认为list1和list2是完全相同的。使用下面的方法头编写一个方法,如果list1和list2完全相同,则返回true:public static boolean equals(int[] list1, int[] list2)编写一个测试程序,提示用户输入两个整数列表,然后显示这两个列表是否完全相同。下面是运行示例。注意,输入的第一原创 2020-12-01 09:59:10 · 521 阅读 · 0 评论 -
第七章第二十四题(仿真:优惠券收集问题)(Simulation: coupon collection problem)
#第七章第二十四题(仿真:优惠券收集问题)(Simulation: coupon collection problem)**7.24(仿真:优惠券收集问题)优惠券收集问题是一个经典的统计问题,他有很多实际应用。这个问题是重复地从一组对象中拿出一个对象,然后求出要讲所有对象都至少拿出来一次,需要拿多少次。该问题的一个变体是,从一副打乱的52张牌中重复选牌,直到每种花色都选过一次,需要选多少次。假设在选下一张牌之间,将选出来的牌放回去。编写程序,模拟要得到四张不同花色的牌所需要的的选取次数,然后显示选中的原创 2020-12-01 09:49:18 · 1466 阅读 · 0 评论 -
第七章第六题(修改程序清单5-15)(Modify program list 5-15)
第七章第六题(修改程序清单5-15)(Modify program list 5-15)*7.6(修改程序清单5-15)程序清单5-15通过检验2,3,4,5,6,…,n/2是否是数n的因子来判断n是否是素数。如果找到一个因子,n就不是素数。判断n是否素数的另一个更高效的方法是:检验小于等于根号n的素数是否有一个能被n整除。如果都不能,则n就是素数。使用这个方法该些程序清单5-15以显示前50个素数。需要使用一个数组存储这些素数,之后使用这些素数来检测他们是否可能为n的因子。*7.6(Modify原创 2020-12-01 09:32:55 · 463 阅读 · 0 评论 -
第七章第十二题(倒置数组)(Inverted array)
第七章第十二题(倒置数组)(Inverted array)*7.12(倒置数组)7.7节中的reverse方法通过把数组复制到新数组中实现数组的倒置。改写该方法 ,将参数中传递的数组倒置,并返回该数组,编写一个测试程序,提示用户输入是个数字,调用这个方法倒置这些数字,然后显示他们。*7.12(Inverted array)The reverse method in section 7.7 achieves array inversion by copying the array into a new原创 2020-12-01 09:32:28 · 728 阅读 · 0 评论 -
第七章第十四题(计算gcd)(Calculate GCD)
第七章第十四题(计算gcd)(Calculate GCD)7.14(计算gcd)编写一个方法,返回个数不确定的整数的最大公约数。给定方法头如下所示:public static int gcd(int … numbers)编写一个测试程序,题数用户输入5个数字,调用该方法找出这些书的最大公约数,并且显示这个最大公约数。7.14(Calculate GCD)Calculate GCD write a method, return the number of uncertain integer of原创 2020-12-01 09:31:55 · 1094 阅读 · 0 评论 -
第七章第十六题(执行时间)(execution time)
第七章第第十六题(执行时间)(execution time)7.16(执行时间)编写程序,随机产生一个包含100000个整数的数组和一个关键字。估算调用程序清单7-6中的linearsSearch方法的执行时间。对该数组进行排序,然后估算调用程序清单7-7中的binarySearch方法的执行时间。可以使用下面的代码模板获取执行时间:long startTime = System.nanoTime();perform the task;long endTime = System.nanoTime原创 2020-12-01 09:31:28 · 947 阅读 · 0 评论 -
第七章第二十题(修改选择排序法)(Modify the selection sorting method)
第七章第二十题(修改选择排序法)(Modify the selection sorting method)*7.20(修改选择排序法)在7.11节中, 使用了选择排序法对数组排序。选择排序法重复的在当前数组中找到最小值,然后将这个最小值与该数组中的第一个数进行交换。改写这个程序,重复的在当前数组中找到最大值,然后将这个最大值与该数组中的最后一个数进行交换。编写一个测试程序,读取10个double型的数字,调用该方法,并显示排好序的数字。*7.20(Modify the selection sorti原创 2020-12-01 00:16:24 · 703 阅读 · 1 评论 -
第七章第十八题(冒泡排序)(Bubble sort)
第七章第十八题(冒泡排序)(Bubble sort)**7.18(冒泡排序)使用冒泡排序算法编写一个排序方法。冒泡排序算法遍历数组几次。在每次遍历中,对相邻的两个元素进行比较。如果这一对元素是降序,则交换他们的值;否则,保持不变。由于较小的值像气泡一样逐渐“浮向”顶部,同时较大的值“沉向”底部,所以,这种技术称为冒泡排序法或下沉排序法。编写一个测试程序,读取10个double型的值,调用这个方法,然后显示排好序的数字。**7.18(Bubble sort)Use bubble sort algori原创 2020-12-01 00:01:16 · 1081 阅读 · 0 评论 -
第七章第十一题(统计:计算标准差)(Statistics: calculating standard deviation)
第七章第十一题(统计:计算标准差)(Statistics: calculating standard deviation)*7.11(统计:计算标准差)编程练习题5.45计算数字的标准差。本题使用一个和他不同但是等价的公式来计算n个数的标准差。要用这个公式计算标准差,必须使用一个数组存储每个数,这样可以在获取平均值后使用他们。程序应该包含下面的方法:public static double devition(double[] x)public static double mean(double原创 2020-11-30 14:45:23 · 1044 阅读 · 0 评论 -
第七章第十七题(对学生排序)(Sort students)
第七章第十七题(对学生排序)(Sort students)**7.17(对学生排序)编写一个程序,提示用户输入学生个数、学生姓名和他们的成绩,然后按照学生成绩的降序打印学生的姓名。假定姓名是不包含空格的字符串,使用Scanner类的next()方法来读取姓名。**7.17(Sort students)Write a program to prompt the user to input the number of students, the names of students and their g原创 2020-11-30 14:34:59 · 1367 阅读 · 1 评论 -
第七章第十九题(是否排序好了)(Is it sorted)
第七章第十九题(是否排序好了)(Is it sorted)**7.19(是否排序好了)编写以下方法,如果参数中的list数组已经按照升序排好了,则返回true。public static boolean isSorted(int[] list)编写一个测试程序,题数用户输入一个列表,显示该列表会否已经排好序。下面是一个运行示例。注意,输入中的第一个数表示列表中的元素个数。该数不是列表的一部分。Enter the size of the list:8Enter the contents of t原创 2020-11-30 13:47:39 · 1693 阅读 · 1 评论 -
第七章第三十一题(合并两个有序列表)(Merge two ordered tables)
#第七章第三十一题(合并两个有序列表)(Merge two ordered tables)**7.31(合并两个有序列表)编写下面的方法,将两个有序列表变成一个新的有序列表。public static int[] merge(int[] list1,int[] list2)只进行list.length+list2.length次比较来实现该方法。该实现的动画演示参见。编写一个测试程序,提示用户输入两个有序列表,然后显示合并后的列表。下面是一个运行示例。注意,输入的第一个数字表示列表元素的个数。该数原创 2020-11-30 13:34:26 · 1643 阅读 · 0 评论 -
第七章第二十三题(游戏:储物柜难题)(Game: locker problem)
第七章第二十三题(游戏:储物柜难题)(Game: locker problem)**7.23(游戏:储物柜难题)一个学校有100个储物柜和100个学生。所有的储物柜在上学第一天都是关着的。随着学生进来,死一个学生(用S1表示)打开每个柜子。然后,第二个学生(用S2表示)懂第二个柜子(用L2表示)开始,关闭相隔为1的柜子。学生S3从第三个柜子开始,然后改变每第三个柜子(如果他是开的就关上,如果他是关的就打开)。学生S4从柜子L4开始,然后改变每第四个柜子的开闭状态。学生S5从L5开始,然后改变每第五个柜原创 2020-11-30 13:17:49 · 3518 阅读 · 4 评论 -
第七章第三十三题(文化:中国生肖)(Culture: Chinese Zodiac)
第七章第三十三题(文化:中国生肖)(Culture: Chinese Zodiac)*7.33(文化:中国生肖)使用一个字符串数组存储动物名称来简化程序清单3-9的程序。*7.33(Culture: Chinese Zodiac)Use an array of strings to store animal names to simplify the program in listing 3-9.参考代码:package chapter07;import java.util.Scanne原创 2020-11-30 12:56:27 · 456 阅读 · 0 评论 -
第七章第二十五题(代数:解一元二次方程式)(Algebra: solving quadratic equations of one variable)
第七章第二十五题(代数:解一元二次方程式)(Algebra: solving quadratic equations of one variable)7.25(代数:解一元二次方程式)使用下面的方法头编写一个解一元二次方程式的方法:public static int solveQuadratic(double[] eqn,double[] roots)将一元二次方程ax2+bx+c=0的系数传给数组eqn,然后将两个实数根存在roots里。方法返回实数根的个数。参见编程习题3.1了解如何解一元二次原创 2020-11-30 12:49:56 · 810 阅读 · 0 评论 -
第七章第二十九题(游戏:挑选四张牌)(Game: choose four cards)
第七章第二十九题(游戏:挑选四张牌)(Game: choose four cards)*7.29(游戏:挑选四张牌)编写一个程序,从一副52张的牌中选出四张,然后计算他们的和。Ace、King、Queen和Jack分别表示1、13、12和11。程序应该显示得到和为24的选牌次数。*7.29(Game: choose four cards)Write a program, from a deck of 52 cards to choose four, and then calculate their原创 2020-11-30 12:03:13 · 1082 阅读 · 2 评论 -
第七章第二十七题(相同的数组)(Same array)
第七章第二十七题(相同的数组)(Same array)7.27(相同的数组)如果两个数组list1和list2的内容相同,那么就说他们是相同的。使用下面方法头编写一个方法,如果list1和list2是相同的,该方法就返回true:public static boolean equals(int[] list1,int[] list2)编写一个测试程序,提示用户输入两个整数列表,然后显示他们两个是否相同。下面是运行示例。注意,输入的第一个数字列表中元素的个数。该数字不是列表的一部分。Enter l原创 2020-11-30 11:51:42 · 746 阅读 · 0 评论 -
第七章第十五题(消除重复)(Eliminate duplication)
第七章第十五题(消除重复)(Eliminate duplication)7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值public static int[] eliminateDuplication(int[] list)编写一个测试程序,读取10个整数,调用该方法,并显示以一个空格分隔的不同数字。下面是程序的运行实例:Enter ten numbers:1 2 3 2 1 6 3 4 5 2The distinct numbers are:1 2 3 6 4 57.原创 2020-11-30 11:30:01 · 1902 阅读 · 0 评论 -
第七章第三题(计算数字出现的次数)(Count the number of times a number appears)
第七章第三题(计算数字出现的次数)(Count the number of times a number appears)**7.3(计算数字出现的次数)编写程序,读取1-100之间的整数,然后计算每个数出现的次数。假定输入0表示结束。下面是这个程序的一个运行示例:Enter the integers between 1 and 100: 2 5 6 5 4 3 23 43 2 02 occurs 2 times3 occurs 1 time4 occurs 1 time5 occurs 2原创 2020-10-25 00:27:58 · 1394 阅读 · 2 评论 -
第七章第四题(分析成绩)(Analysis results)
第七章第四题(分析成绩)(Analysis results)7.4(分析成绩)编写一个程序,读入个数不确定的考试分数,并且判断有多少个分数是大于或等于平均分,多少个分数是低于平均分的。输入一个负数表示输入结束。假设最高分为100。7.4(Analysis results)Write a program, read in the number of uncertain test scores, and judge how many scores are greater than or equal to原创 2020-10-25 00:27:30 · 899 阅读 · 0 评论 -
第七章第五题(打印不同的数)(Print different numbers)
第七章第五题(打印不同的数)(Print different numbers)**7.5(打印不同的数)编写一个程序,读入10个数,显示互不相同的数的数目,并以输入的顺序显示这些数字,以一个空格分隔(即一个数字出现多次,也仅显示一次)。(提示:读入一个数,如果它是一个新数,则将 它存储在数组中。如果该数已经在数组中国,则忽略它。)输入之后,数组包含的都是不同的数。下面是这个程序的运行示例:Enter 10 numbers: 1 2 3 2 1 6 3 4 5 2The number of disti原创 2020-10-25 00:27:08 · 1474 阅读 · 2 评论 -
第七章第八题(求数组的平均值)(Average the array)
第七章第八题(求数组的平均值)(Average the array)7.8(求数组的平均值)使用下面的方法头编写两个重载的方法,返回数组的平均数:public static int average(int[] array)public static double average(double[] array)7.8(Average the array)Write two overloaded methods using the following method headers to return原创 2020-10-25 00:26:32 · 3125 阅读 · 0 评论 -
第七章第九题(找出最小元素)(Find the smallest element)
第七章第九题(找出最小元素)(Find the smallest element)7.9(找出最小元素)使用下面的方法头编写一个方法,求出一个整数数组中的最小元素:public static double min(double[] array)编写测试程序,提示用户输入是个数字,调用这个方法返回最小值,并显示该最小值。下面是该程序的运行示例:Enter 10 numbers: 1.9 2.5 3.7 2 1.5 6 3 4 5 2The minimum number is 1.57.9(Fin原创 2020-10-25 00:26:12 · 1021 阅读 · 0 评论 -
第七章第十题(找出最小元素的下标)(Find the subscript of the smallest element)
第七章第十题(找出最小元素的下标)(Find the subscript of the smallest element)7.10(找出最小元素的下标)编写一个方法,求出整数数组中最小元素的下标。如果这样的元素个数大于1,则返回最小的下标。使用下面的方法头:public static int indexOfSmallElement(double[] array)编写一个测试程序,提示yoghurt输入10个数字,调用这个方法,返回最小元素的下标,然后显示这个下标值。7.10(Find the su原创 2020-10-25 00:25:45 · 2236 阅读 · 2 评论 -
第七章第二题(倒置输入的数)(Number of inverted inputs)
第七章第二题(倒置输入的数)(Number of inverted inputs)7.2(倒置输入的数)编写程序,读取10个整数,然后按照和读入顺序相反的顺序将它们显示出来。7.2(Number of inverted inputs)Write a program to read 10 integers and display them in reverse order.参考代码:package chapter07;import java.util.Scanner;public clas原创 2020-10-25 00:28:14 · 419 阅读 · 0 评论 -
第七章第一题(指定等级)(Designated grade)
第七章第一题(指定等级)(Designated grade)*7.1(指定等级)编写一个程序,*7.1(Designated grade)参考代码:package chapter07;import java.util.Scanner;public class Code_01 { public static void main(String[] args) { Scanner input = new Scanner(System.in); Syste原创 2020-10-24 19:02:42 · 515 阅读 · 0 评论 -
第七章第二十二题(计算一个字符串中大写字母的数目)(Calculates the number of uppercase letters in a string)
第七章第二十二题(计算一个字符串中大写字母的数目)(Calculates the number of uppercase letters in a string)*7.22(计算一个字符串中大写字母的数目)编写程序,从命令行输入一个字符串,然后显示字符串中大写字母的数目。*7.22(Calculates the number of uppercase letters in a string)Write a program, input a string from the command line, a原创 2020-10-16 00:57:54 · 774 阅读 · 0 评论 -
第七章第二十一题(整数求和)(Sum of integers)
第七章第二十一题(整数求和)(Sum of integers)*7.21(整数求和)编写程序,从命令行输入不定数目的整数,然后显示他们的和。*7.21(Sum of integers)Write a program to input an indefinite number of integers from the command line and display their sum.参考代码:结果显示:...原创 2020-10-16 00:57:19 · 1321 阅读 · 0 评论 -
第七章第十三题(随机数选择器)(Random number selector)
第七章第十三题(Random number selector)*7.13(随机数选择器)编写一个方法,返回1到45之间的随机数,但不能是传递到实参中的数。如下指定这个方法头:public static int getRandom(int… numbers)*7.13(Random number selector)Write a method that returns a random number between 1 and 45, but not a number passed into an a原创 2020-10-16 00:55:42 · 2176 阅读 · 2 评论 -
第七章第七题(统计个位数的数目)(Count the number of single digits)
第七章第七题(统计个位数的数目)(Count the number of single digits)*7.7(统计个位数的数目)编写一个程序,生成0-9之间的100个随机整数,然后显示每一个数出现的次数。提示:使用(int)(Math.random()*10)产生0到9之间的随机整数。使用一个名为counts的由10个整数构成的数组村昂0,1,…,9的个数。*7.7(Count the number of single digits)Write a program to generate 100原创 2020-10-16 00:54:50 · 1650 阅读 · 2 评论