Java语言程序设计基础篇前三章课后习题 下载本文

第1章 计算机、程序和Java概述

1.1(显示三条消息)编写程序,显示Welcome to Java、Welcome to Computer Science和Programming is fun。 程序:

显示:

1.2(显示五条消息)编写程序,显示Welcome to Java五次 程序:

显示:

1.3(显示图案)编写一个程序,显示下面的图案:

程序:

显示:

1.4(打印表格)编写程序,显示以下表格:

程序:

显示:

1.5(计算表达式)编写程序,显示(9.5x4.5-2.5x3)/(45.5-3.5)的结果 程序:

显示:

1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果 程序:

显示:

1.7(近似求π)可以使用以下公式计算π: Π=4x(1-1/3+1/5-1/7+1/9-1/11+1/13+...)

编写程序,显示4x(1-1/3+1/5-1/7+1/9-1/11+1/13...)的结果。在程序中用1.0代替1 程序:

显示:

第2章 基本程序设计

2.1(将摄氏温度转换为华氏温度)编写程序,从控制台读入double型的摄氏温度,然后将其转换华氏温度,并显示结果。转换公式如下所示:

Fahrenheit-=(9/5)*celsius+32 (华氏度=(9/5)*摄氏度+32) 程序:

显示:

2.2(计算圆柱体的体积)编写程序,读入圆柱体的半径和高,并使用下列公式计算圆柱体的体积

面积=半径x半径xπ 体积=面积x高 程序:

显示:

2.3(将英尺转换为米)编写程序,读入英尺数,将其转换为米数并显示结果。一英尺等于0.305米。 程序:

显示:

2.4(将磅转换为千克)编写程序,将磅数转换为千克数。程序提示用户输入磅数,然后转换成千克并显示结果。1磅等于0.454千克。 程序:

显示:

2.5(财务应用程序:计算小费)编写一个程序,读入一笔费用与酬金率,就算酬金和总钱数。例如,如果用户读入10作为费用,15%作为酬金率,计算结果显示酬金为$1.5,总费用为$11.5. 程序:

显示:

2.6(求一个整数各位数的和)编写程序,读取一个在0和1000之间的整数,并将该整数的各位数字相加。例如:整数是932,各位数字之和为14. 程序:

显示::

2.7(求出年数)编写程序,提示用户输入分钟数(例如十亿)然后显示这些分钟代表多少年和多少天。为了简化问题,假设一年有365天。 程序:

显示:

2.8(求ASCII码对应的字符)编写程序接受一个ASCII码(从0到128的整数),然后显示它所代表的字符。例如,如果用户输入的是97,程序显示的是字符a。 程序:

显示:

2.9(财务应用程序:货币单位)改写程序清单2-10,解决将double型值转换为int型值时可能会造成精度损失的问题。输入的输入值是一个整数,则其后两位代表的是分币值。例如:1156就表示的是11美元56美分 程序:

显示:

2.10(使用图形用户界面输入)改写程序清单2-10,使用图形用户界面进行输入和输出。 程序:

显示:

2.11(财务应用程序:工资单)编写程序,读入下列信息并打印工资单: 雇员的名字(例如Smith) 每周工作小时数(例如10) 每小时工资(例如6.75)

联邦所得税税率(例如20%) 州所得税税率(例如9%)

编写两个版本的程序:

(1)使用对话框获取输入并显示输出: 程序:

显示:

(2)使用控制台进行输入和输出: 程序:

显示:

2.12(财务应用程序:计算利息)如果你知道收支余额和年利率的百分比,你就可以使用下面的公式计算下个月要支付的利息额: 利息额=收支余额x(年利率/1200)

编写程序,读取收支余额和年百分比利率,显示两个版本的下月利息: (1)使用对话框获取输入并显示输出: 程序:

显示:

(2)使用控制台进行输入和输出: 程序:

显示:

2.13(财务应用程序:计算未来投资值)编写程序,读取投资总额、年利率和年数,然后使用下面的公式显示未来投资金额:

显示:

显示:

2.14(医疗应用程序:计算BMI)身体质量指数(BMI)是对体重的健康测量。它的值可以通过将体重(以公斤为单位)处以身高(以米为单位)的平方值得到。编写程序,提示用户输入体重(以磅为单位)以及身高(以英寸为单位),然后显示BMI。注意:一磅是0.45359237公斤而一英寸是0.0254米。 程序:

显示:

2.15(财务应用程序:复利值)假设你每月向银行账户存100美元,年利率为5%,那么每月利率是0.05/12=0.00417。第一个月,账户上的值就变成: 100*(1+0。00417)=100.417

第二个月之后,账户上的值就变成: (100+100.417)*(1+0.00417)=201.252 第三个月之后,账户上的值就变成: (100+201.252)*(1+0.00417)=302.507 以此类推。

编写程序显示六个月后账户上的钱数 程序:

显示:

2.16(科学方面:计算能量)编写程序,计算将水从初始温度加热到最终温度所需的能量。程序应该提示用户输入水的重量(以千克为单位),以及水的初始温度和最终温度。计算能量的公式是:

Q=M x(最终温度---初始温度) x4184

这里的M是以千克为单位的水的重量,温度以摄氏度为单位,而能量以焦耳为单位。 程序:

显示:

2.17(科学方面:风寒温度)外面到底有多冷?只有温度是不足以提供答案的,包括风速、想对温度以及阳光等其他的因素在确定室外是否寒冷方面都起了很重要的作用。2001年,国家气象服务(NWS)利用温度和风速,使用新的风寒温度在测量寒冷程度。计算公式如下所示:

Twc=35.74+0.6215*Ta--35.75*V^0.16+0.425*Ta*V^0.16 这里的Ta是室外的温度,以华氏摄氏度为单位,而V是速度,以每小时英里数为单位,Twc是风寒温度。该公式不适用于风速低于2mph或温度在--58℉以下和41℉以上的情况。 编写程序,提示用户输入在--58℉和41℉之间的度数,同时大于或等于2的风速,然后显示风寒温度。使用Math.pow(a,b)来计算V^0.16。 程序:

显示:

2.18(打印表格)编写程序,显示下面的表格:

程序:

显示:

2.19(随机字符)编写程序,使用system。CurrentMillsTime()显示任意一个大写字母。 程序:

显示:

2.20(几何方面)编写程序,提示用户输入两个点(x1,y1)和(x2,y2),然后显示两个点间的距离。计算两点间距离的公式是Math.Sqrt((x2-x1)^2+(y2-y1)^2).注意:可以使用Math.Pow(a,0.5)来计算。 程序:

显示:

2.21(几何方面:三角形的面积)编写程序,提示用户输入三角形的三个点(x1,y2)、(x2,y2)、(x3,y3),然后显示它的面积。计算三角形面积的公式是: s=(side1+side2+side3)/2 Area=Math.Pow(s(s-side1)(s-side2)(s-side3),0.5) 程序:

显示:

2.22(几何方面:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。计算六边形面积的公式是:area=3*sqrt(3)/2 *s^2,这里的s就是边长。 程序:

显示:

2.23(物理方面:加速度)平均加速度定义为速度的变化量处以这个变化所用的时间,如下式所示:a=(v1-v0)/t

编写程序,提示用户输入以米/秒为单位的起始速度v0,以米/秒为单位的终止速度v1,以及以秒为单位的时间段,最后显示平均加速度。 程序:

显示:

2.24(物理方面:求出跑道长度)假设一个飞机的加速度是a而起飞速度是v,那么可以使用下面的公式计算出飞机起飞所需的最短跑道长度: Length=v^2/(2*a)

编写程序,提示用户输入以米/秒的平方(m/s^2)为单位的加速度a,然后显示最短跑道长度。 程序:

显示:

2.25(当前时间)程序清单2--6给出了显示当前格林威治时间的程序。修改这个程序,是只能够做到程序提示用户输入相对于GMT的时区偏移量,然后显示在这个特定时区的时间。 程序:

显示:

第3章 选择

3.1(代数方面:解一元二次方程)可以使用下面的公式求一元二次方程ax^2+bx+c=0的两个根:r1=(-b+Math.sqrt(b^2-4ac))/(2*a)和r2=(-b-Math.sqrt(b^2-4ac)/(2*a)

b^2-4ac称作一元二次方程的判别式。如果它是正值,那么一元二次方程就有两个正根。如果它为0,方程式就只有一个根。如果它是负值,方程式无实根。

编写程序,提示用户输入a、b和c的值,并且显示基于判别式的结果。如果这个判别式为正,显示两个根。如果判别式为0,显示一个根。否则,显示”The equation has no real root”(该方程式无实根) 显示:

程序::

3.2(检查一个数字是否是偶数)编写程序,读入一个整数并检查它是不是偶数 程序:

检查:

3.3(代数方面:求解2x2线性方程)可以使用Cramer规则解下面的2x2线性方程组: ax+by=e cx+dy=f x=(ed-bf)/(ad-bc) y=(af-ec)/(ad-bc)

编写程序,提示用户输入a、b、c、d、e和f,然后显示结果。如果ad-bc=0.报告x消息”The equation has no solution”(方程式无解)。 程序:

显示:

3.4(游戏:学习加法)编写程序,产生两个100以下的整数,然后提示用户输入这两个整数的和。如果答案正确,程序报告结果true;否则,报告false。改程序类似于程序清单3-1 程序:

显示:

3.5(游戏:三个数的加法)程序清单3-1中的程序产生两个整数,并提示用户输入这两个整数的和。修改该程序使之能产生三个一个整数,然后提示用户输入这三个整数的和。 程序:

显示:

3.6(医疗应用程序:BMI)修改程序清单3-5,让用户输入重量,英尺和英寸。例如:一个人身高是5英尺10英寸,输入的英尺值就是5而英寸值为10. 程序:

显示:

3.7(财务应用程序:整钱兑零)修改程序清单2-10,使之只显示非零的币值单位,用单词的单数形式显示一个单位,例如1 dollar and 1 penny(1美元和1美分);用单词的复数形式显示多于一个单位的值,例如2 dollars and 3 pennies(2美元和3美分)(使用输入值23.67来测试改程序) 程序:

显示:

3.8(对三个整数排序)编写程序对三个整数排序。这些整数都由输入对话框输入,并分别存储在变量num1,num2,和num3中。程序对这些数进行排序,使之满足num1<=num2<=num3. 程序:

显示:

3.9(商业方面:检查ISBN)ISBN(国际标准书号)以前是一个10位整数d1d2d3d4d5d6d7d8d9d10,最后的一位d10是校验和,它是使用下面的公式用另外9个数计算出来的。

(d1x1+d2x2+d3x3+d4x4+d5x5+d6x6+d7x7+d8x8+d9x9)

如果校验和为10,那么按照ISBN的习惯,最后一位应该表示为X。编写程序,提示用户输入前9个数,然后显示10位ISBN(包括前面起始位置的0)。程序应该读取一个整数输入。例如:输入的是013601267,那么程序就应该显示0136012671. 程序:

显示:

3.10(游戏:加法测试)程序清单3-4随机产生一个减法问题。修改这个程序,随机产生一个计算两个小于100的整数的加法问题。 程序:

显示:

3.11(给出一个月的总天数)编写程序,提示用户输入月份和年份,然后显示这个月的天数。例如:如果用户输入的月份是2而年份是2000,那么程序应该显示“February 2000 has 29 days”(2000年2月有29天)。如果用户输入的月份为3月而年份为2005,那么程序就应该显示“March 2005 has 31 days”(2005年3月有31天)。 程序:

显示:

3.12(检测数字)编写程序,提示用户输入一个整数,然后判断这个整数是否能被5和6都整除,或者不能被它们中的任何一个整除,或者只能被其中一个整除。下面是分别输入10、30、23时的一些运行实例。 10 is divisible by 5 or 6,but not both 30 is divisible by both 5 and 6 23 is not divisible by either 5 or 6 程序:

显示:

3.13(财务应用程序:计算税款)程序清单3-6给出计算单身登记人税款的源代码。整个程序清单3-6给出的就是完整的源代码。 程序:

显示:

3.14(游戏:猜硬币的正反面)编写程序,让用户猜一猜是硬币的正面还是反面。这个程序随机产生一个整数0或者1,它们分别表示硬币的正面和反面。程序提示用户输入一个猜测值,然后报告这个猜测值是正确的还是错误的。 程序:

显示:

3.15(游戏:彩票)修改程序清单3-9,产生三位整数的彩票。程序提示用户输入一个三位整数,然后依照下面的规则判定用户是否赢得奖金。

(1)如果用户输入的所有数匹配彩票的确切顺序,奖金是10000美金。 (2)如果用户输入的所有数匹配彩票的所有数字,奖金是3000美金。

(3)如果用户输入的其中一个数匹配彩票号码中的一个数,奖金是1000美金。 程序:

显示:

3.16(任意字符)使用Math.random()编写程序,显示任意的一个大写字母。 程序:

显示:

3.17(游戏:剪刀、石头、布)编写可以玩最流行的剪刀-石头-布游戏的程序。(剪刀可以剪布,石头可以砸剪刀,而布可以包石头)程序提示用户随机产生一个数,这个数为0、1或者2,分别表示石头、剪刀和布。程序提示用户输入值0、1或者2,然后显示一个消息,表明用户和计算机谁赢了游戏,谁输了游戏,或是打成平手。 程序:

显示:

3.18(使用对话框输入)使用输入对话框改写程序清单3-8 程序:

显示:

3.19(验证三角形的有效性)编写程序,读取三角形的三条边,并确定输入是否有效。如果任意两条边的和大雨第三条边则输入有效。 程序:

显示:

3.20(科学方面:风寒温度)练习题2.17给出计算风寒温度的公式。这个公式适用于温度在华氏-58°到41°之间,并且风速大于或等于2的情况。编写一个程序,提示用户输入一个温度值和一个风速值。如果输入值是合法的,那么显示风寒温度,否则显示一条消息,表明温度或风速是不合法数值。 程序:

显示:

3.21(科学方面:某天是星期几)泽勒一致性是由克里斯汀泽勒开发的用于计算某天是星期几的算法。这个公式是:

h=(q+(26(m+1)/10)+k+(k/4)+(j/4)+5*j)%7 其中:

h是一个星期中的每一天(0为星期六;1为星期天;2为星期一;3为星期二;4为星期三;5为星期四;6为星期五)。 q是某月的天数

m是月份(3为三月,4为四月,…,12为十二月)。一月和二月分别记为上一年的13和14月。

j是世纪数(即|year/100|) k是世纪的年数(即year0)

编写程序,提示用户输入年、月和该月的哪一天,然后显示它是一周中的星期几。 程序:

显示:

3.22(几何方面:点是否在圆内?)编写程序,提示用户输入一个点(x,y)然后检查这个点是否在以原点(0,0)为圆心、半径为10的圆内。例如:(4,5)是圆内的一点,而(9,9)是圆外的一点。 程序:

显示:

3.23(几何方面:点是否在矩形内?)编写程序,提示用户输入点(x,y),然后检测该点是否在以原点(0,0)为中心、宽为10、高为5的矩形中。例如:(2,2)在矩形内而(6,4)在矩形外。 程序:

显示:

3.24(游戏:挑一张牌)编写程序,模拟从一副52张的牌中选择一张牌。程序应该显示牌的大小(Ace,2,3,4,5,6.7.8.9.10.Jack,Queen,King)以及牌的花色(Clubs(黑梅花)、Diamond(红方块)、Heart(红心)、Spades(黑桃))。 程序:

显示:

3.25(计算一个三角形的周长)编写程序,读取三角形的三条边,如果输入值合法就计算这个三角形的周长;否则,显示这些输入值不合法。如果任意两条边的和大于第三边,那么输入值都是合法的。 程序:

显示:

3.26(使用运算符&&、||和^)编写一个程序,提示用户输入一个整数值,然后判定它是否能被5和6整除,是否能被5或6整除,以及是否能被5或6整除但是不能同时被它们整除。 程序:

显示:

3.27(几何方面:点是否在三角形内?)假设一个直角三角形放在一个平面上,如下图所示。直角点在(0,0)处,其他两个点分别在(200,0)和(0,100)处。编写程序,提示用户输入一个点x坐标和y坐标,然后判定这个点是否在该三角形内。 程序:

显示:

3.28(几何方面:两个三角形)编写一个程序,提示用户输入两个三角形中点的x坐标和y坐标以及它们的宽度和高度,然后判定第二个三角形是在第一个三角形内,还是和第一个三角形重叠。 程序:

显示:

3.29(几何方面:两个圆)编写程序,提示用户输入两个圆的中心坐标和各自的半径值,然后决定第二个圆是否在第一个圆内,还是和第一个圆重叠。 程序:

显示: