77范文网 - 专业文章范例文档资料分享平台

第三次Java练习题(2)

来源:网络收集 时间:2018-11-22 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

点数相同,你就赢了。

程序扮演一个独立的玩家,下面是运行示例。

You rolled 5+6 = 11 You win

You rolled 1+2 = 3 You lose

You rolled 4+4 = 8 Point is 8

You rolled 6+2 = 8 You win

You rolled 3+2 = 5 Point is 5

You rolled 2+5 = 7 You lose

9(财务应用程序:信用卡的合法性)信用卡号遵循下面的模式。一个信用卡必须是13到16位的整数,它的开头必须是: 4:指Visa卡 5:指Master卡

37:指American Express卡 6:指Discover卡

在1954年IBM的Hans Luhn提出一种算法,该算法可以验证信用卡号的有效性。这个算法在确定输入的卡号是否正确,或者这张信用卡是否被扫描仪正确扫描方面是非常有用的。遵循这个合法性检测,可以生成所有的信用卡号,通常称之为Luhn检测或者Mod 10检测,可以如下描述(为了方便解释,假设卡号为4388576018402626):

(1) 从左到右对每个数字翻倍,如果对某个数字翻倍之后的结果是另一个两位数,那么

就将两位数加在一起得到一个一位数。

2*2 =4 6*2 = 12(1+2 =3) 2*2 =4 5*2 =10 (1+0 =1) 4*2 = 8 8*2 = 16 (1+6 =7) 1*2 = 2 4*2 =8

(2) 现在将第一步得到所有一位数相加.

4+4+8+2+3+1+7+8 = 37

(3) 将卡号里从左到右在奇数位上所有数字相加

6+6+0+8+0+7+8+3 = 38

(4) 将第二步和第三步得到的结果相加。 37+38 = 65

(5)如果第四步得到的结果能被10整除,那么卡号是合法的,否则,卡号是不合法的。例如号码4388576018402626

编写程序,提示一个用户输入一个long型整数的信用卡号码,显示这个数字是合法还是非法的。使用下列方法设计程序

//返回true 如果卡号是有效的

Public Boolean isVaild(long number)

//得到第二步的结果

Public int sumOfDoubleEvenPlace(long number)

//如果这个单个的数字是一位数,返回这个数字,否则返回这个两位数字的位数之和 Public int getDigit(int number)

//返回所有奇数位数字之和

Public int sumOfOddPlace(long number)

//如果这个数字number 的前缀是数字d,返回true Public Boolean prefixMatched(long number,int d)

//返回数字d的位数 Public int getSize(long d)

// 从number中返回前K位数字,如果number的位数小于K个,返回number public long getPrefix(long number,int k)

10. (摄氏度和华氏度之间的转换)编写一个类,包含下面两个方法: //转换摄氏温度到华氏温度

Public double celsiusToFahrenheit(double celsius)

//转换华氏温度到摄氏温度

Public double fahrenheitTocelsius(double fahrenheit) 转换公式如下:

华氏温度=(9.0/5)*摄氏温度 + 32 摄氏度 华氏度 华氏度 摄氏度 40.0 104.0 120.0 48.89 39.0 102.2 110.0 43.33 ...

32.0 89.6 40.0 4.44 31.0 87.8 30.0 -1.11

11(显示字符) 使用下面的方法头,编写一个打印字符的方法: Public void printChars(char ch1,char ch2,int numberPerLine)

该方法打印ch1到ch2之间的字符,每行按指定个数打印。编写一个测试程序,打印从“1”到“Z”的字符,每行打印10个。

12.编写一个方法计算下列级数 m(i) = 1/2+2/3 + …+i/i+1

编写测试程序显示下面的表格

I m(i) 1 0.5000 2 1.667 。。。 19 16.4023 20 17.3546

13. 使用下面的方法头编写一个方法,返回一年的天数 Pulic int numberOfDaysInAYear(int year)

编写一个测试程序,显示从2000 到2010年每年的天数

14.使用Math类的sqrt方法编写程序,打印如下表格

数字 平方根 0 0.0000 2 1.4142 。。。 18 4.2426 20 4.4721

15(使用) 三角函授方法,打印下面的表格,显示0°到360°之间,角度相隔10°的正弦和余弦值,保留小数点后4位。 角度 正弦值 余弦值 0 0.0000 1.0000 10 0.1736 0.9848 …

350 -0.1736 0.9848 360 0.0000 1.0000

16 编写方法,使用下面方法头显示n*n 的矩阵: Public void printMatrix(int n)

每个元素都是随机产生的0或者1,编写一个测试程序打印如下所示的3*3矩阵 0 1 0 0 0 0

1 1 1

17.使用下列的方法头,编写一个将毫秒转换成小时数、分钟数和秒数的方法。 Public String convertMillis(long millis)

该方法返回形如“小时:分钟:秒”的字符串。例如convertMillis(5500)返回字符串0:0:5. 提示:System.currentTimeMillis()返回从1970.1.1 0:0:0开始的毫秒数

5.数组部分练习

1. (倒置输入的数)编写程序,读取10个整数,然后按照和读取顺序相反的顺序将

他们显示出来。

2. (计算数字出现的次数)编写程序,读取1到100之间的整数,然后计算每个数出

现的次数,假定输入是以0结束,下面是这个程序的运行示例。 Enter the integers betweens 1 and 100: 2 5 6 5 4 3 23 43 2 0 2 occurs 2 times

3 occurs 1 time 4 occurs 1 time

5 occurs 2 times 6 occurs 1 time 23 occurs 1 time 43 occurs 1 time

3 (分析成绩) 编写一个程序,读入个数不确定考试分数,并且判断有多少个分数是大

于或等于平均分,多少个分数低于平均分,输入一个负数表示输入的结束。假设成绩最高分是10分。

4 (打印不同的数) 编写一个程序,读入10个数,并且显示互不相同的数(即一个数出现

多次,只显示一次)提示:读入一个数,如果是新数,则它存储在数组中,如果该数已经在数组中,则忽略它。下面是这个程序的运行示例。 Enter the number: 12 3 2 1 6 3 4 5 2 The distinct numbers are: 1 2 3 6 4 5

5 编写一个程序,生成0-9之间的100个随机数,然后显示每个数字出现的次数。

6 (求数组的平均值)编写两个重载的方法,使用下面的方法头返回一个数组的平均数:

public int average(int[] array)

public double average(double[] array)

7 编写一个方法,使用下面的方法头求出一个整数数组中的最小元素

public double min(double [] array)

编写测试程序,提示用户输入十个数字,调用这个方法返回最小值,下面是这个程序的运行示例:

Enter ten number : 1.9 2.5 3.7 2 1.5 6 3 4 5 2 The minimum number is 1.5

8 (找出最小元素的下标),编写一个方法,求出整数数组中最小元素的下标,如果这样元

素个数大于1,则返回最小的下标。使用下面的方法头; public int indexOfSmallestElement(double[] array)

编写测试程序,提示用户输入十个数字,调用这个方法返回最小元素的下标,然后显示这个下标值。

9 (数组倒置)编写一个方法,实现数组的倒置,方法将传递到实参数组倒置,然后返回

这个数组。编写一个测试程序,提示用户输入十个数字,调用这个方法倒置这个数组,然后显示这个数组。

public int [] reverse(int [] array)

10 (对学生进行排序)编写一个程序,提示用户输入学生个数,学生姓名和他们成绩,然

后按照学生成绩降序打印学生的姓名

11 八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著

名的数学家高斯1850年提出:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 高斯认为有76种方案。1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。计算机发明后,有多种方法可以解决此问题。编写程序给出一个解决方案

12 一个学校有100个储物柜和100个学生。所有储物柜在上学的第一天都是关着的。随着

学生进来,第一个学生用s1表示,打开每个柜子,然后第二个学生,用s2表示,从第二个柜子开始,第二个柜子用L2表示,然后关闭其他的柜子。学生s3从第三个柜子开始,然后改变每个柜子(如果它是开着就关上,如果它是关上就打开)。学生s4从柜子L4开始,然后改变每个柜子。学生s5从柜子L5开始,然后改变每个柜子。以此类推,直到s100改变L100为止。

在所有学生经过教学楼并改变了柜子后,哪些柜子是开着的,编写程序找出答案

提示:使用存放100个布尔类型元素的数组,每个元素表明一个柜子是开的还是关的,初始状态,所有柜子都是关的。

13. 选择排序(Selection sort)是一种简单直观的排序算法。它的工作原理如下。首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到所有元素均排序完毕。 写一个排序方法,方法头如下所示:

public int[] sort(int[] array)

对数组进行从小到大进行排序,编写测试程序,读取10个int类型数字,调用该方法,然后显示排好序的数组。

14.(完全相同的数组)如果两个数组list1和list2长度相同,而且对于每个i,list1[i]都等于list2[i],则认为list1和list2是完全相同的,使用下面方法头编写一个方法,如果list1和list2完全相同,那么这个方法返回true public Boolean equal(int[] list1 int[] list2)

编写一个测试程序,提示用户输入两个整数数列,然后显示这两个整数数列是否完全相同。 15.(数学方面:组合)编写一个程序,提示用户输入10个整数,然后显示从10个数中选出两个数的所有组合

16.(模式识别方面,四个连续相等的数)编写下面的方法,测试某个数组中是否有四个连续的值相同的数字 public Boolean isConsecutiveFour(int[] values)

编写测试程序,提示用户输入一个整数数列,如果这个数列有四个连续的具有相同值的数,那就显示true,否则显示false。 二维数组

17 编写一个方法,求整数矩阵所有整数之和,使用下列方法头:

public double sumMatrix(int [][] m)

编写一个测试程序,读取一个3*3 的矩阵,然后显示所有元素的和。下面是一个运行示例:

Enter a 3-by-3 matrix row by row : 1 2 3 4 5 6 7 8 9

Sum of matrix is 136

18编写一个方法,求n*n矩阵主对角线所有整数之和,使用下列方法头:

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库第三次Java练习题(2)在线全文阅读。

第三次Java练习题(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/298261.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: