java经典编程题二及详细解答_第1页
java经典编程题二及详细解答_第2页
java经典编程题二及详细解答_第3页
java经典编程题二及详细解答_第4页
java经典编程题二及详细解答_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java经典编程题二及详细答案2.1上机练习,基本题) 编程观察如下输出语句: 1System.out.println(“hello test escape char“); 在“escape”处换上各种转义字符测试输出效果。如何实现如下输出: Hello “test“ Hello test 2) 设有如下代码段,考虑赋值转换问题: int a=234; byte b=a; System.out.println(“a=“ a “,b=“ b); 将a,b的类型以及数据进行各种替换,观察什么时候能赋值,什么时候需要使用强制转换,什么时候不能强制转换,什么时候强制转换会丢失数据。 23) 编写一个程序求半径R为10的圆的面积,结果保留2为有效小数。公式为:S=R 注:可用Math类的常量PI表示(即Math.PI)。保留小数请查阅DecimalFormat类 ,提高题1) 设有一个边长为30的等边三角形,三角形内有一个内切圆,计算除内切圆外三角形内其它部分的面积。 【提示】先算三角形面积,再计算圆的面积,其差即为结果。h是等边三角形的高,内切圆的半径r=h/3,面积s=h,/9。 2) 调试分析以下程序的运行结果: public class test public static void main(String a) int m=10,n=517; System.out.println(n % m); System.out.println(n / m); System.out.println(m 2); System.out.println(m System.out.println(Integer.toBinaryString(m); System.out.println(Integer.toBinaryString(m 2); 注意:Integer.toBinaryString(int)用于将一个整数转化为二进制形式的数字串。在进行位运算时,注意观察二进制的数据变化规律。 2.2上机练习,基本题1) 从键盘输入4个学生的成绩,找出最高分和最低分。 【提示】引入两个变量分别存放最高分和最低分,根据比较改变这两个变量值。 2) 输入一个百分制分数,输出其对应的五分制成绩,包括:优、良、中、及格、不及格。 ,提高题1) 设有一元二次方程如下: 2 aX bx c=0 试根据从键盘输入的a,b,c求解方程的根。 【提示】要考虑各种情形:一是a为0的情形,方程根为-c/b。还有就是根据判别式 2=b - 4ac进行判断,如果.0有两个实根;=0,有一个实根;0 循环 4.1 根据whoplay的值决定是计算机拿x根还是提示人拿x根;计算机拿时最好带有智能,人拿时要限制输入数量。 4.2 修改 whoplay的值; 4.3 修改remain的值; (5) 根据whoplay的值决定胜者 4)某地刑侦大队对涉及六个嫌疑人的一桩疑案进行分析: A、B至少有一人作案; A、E、F三人中至少有两人参与作案; A、D不可能是同案犯; B、C或同时作案,或与本案无关; C、D中有且仅有一人作案;如果D没有参与作案,则E也不可能参与作案。 试编一程序,将作案人找出来。 2.4 上机练习,基本题1) 利用求n!的方法计算 2 4 5!的值。分别利用递归和非递归方法实现求n!。 2) 编写根据三条边求三角形面积的方法。利用该方法求以下两个三角形面积。 (1)三条边分别为:3,4,5 (2)三条边分别为:5.3, 6.2, 8 3)从命令行参数获取两个整数,找出两个整数之间的所有素数,每行输出3个数。 ,提高题1) 利用求素数的方法,就6,20之间的所有偶数验证歌德巴赫猜想: 任何一个大于6的偶数可以分解为两个素数之和。 2) 分别编写一个方法求两个整数的最大公约数和最小公倍数,输入两个整数,计算这两个整的最大公约数和最小公倍数。 2.5上机练习,基本题1)利用随机函数产生20个学生的英语成绩存入一个数组中。 ,输出数组所有元素,每行输出3个数; ,求最高分、最低分; ,求平均成绩。 2) 产生Fibonacci数列的头20项存入一个一维数组中,按每行4个输出数组的元素。 3) 利用随机函数产生50,500之间的整数给一个6*6的矩阵赋值. l 求第3行的元素之和; l 求第2列的最小元素; l 求主对角线上最大元素; l 求数组所有元素之和。 4)利用随机函数产生36个10,30之间的整数给一个6*6的矩阵赋值. ,求最大元素值,指出其在矩阵中的所有出现位置; ,求该矩阵的转置矩阵。 5)利用数组元素间的关系输出含8行的杨辉三角形; 杨辉三角形特点: (1)第1列元素为1,对角线元素为1; (2)其他元素均为前一行的同一列位置元素和前一行的前一列元素之和。 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 ,提高题1)产生20个范围为0,50之间的不重复随机整数存入到一个数组中,将数组中元素按由小到大输出,并求数组所有元素的平均值。 【提示】每产生一个整数要跟前面已产生的数进行比较,如果已存在,则不算,要重新产生,可以用一个循环来控制产生一个新数,只有产生的数未出现过,才能出循环。 2)利用随机函数产生36个随机整数给一个6*6的二维数组赋值。求出所有鞍点,鞍点的条件是该元素在所在行是最大值,在所在列是最小值。 【提示】 先找出行上最大的元素,然后在判断该元素在所在的列上是否是最小的。 3)利用排序算法将一数组按由小到大排列,输入一个数据,查找在数组中是否存在,采用“折半查找”加快查找速度。 所谓“折半查找”就是先与中间位置元素进行比较,如果小于中间位置的元素,则在其上半部的中间位置继续查找,否则在下半部的中间位置查找,该过程反复进行,直到找到或发现不存在为止。 4) 构造一个n阶方阵,方阵的大小从键盘输入,方阵的最外一圈元素为1,以后往内依次为2,3,.n。例如: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 详细答案如下: 实验2.1 , 基本题 1)System.out.println(“hello “test“ escape char“); 输出结果是 hello “test“ System.out.println(“hello test escape char“);输出结果是hello est 2)int a=234; byte b=a;在这种情况下,由于a是int型,b是byte型而int的级别比byte高,故b不能被赋值,若要赋值必需利用强制转换如:byte b=(byte)a; 当a的取值在其范围-128127内时强制转换不会丢失数据,否则就会丢失数据。 通过各种数据类型的转换可知:当两个数据类型相同或将低级类型数据赋给高级类型时可以直接赋值;由于byte、short、char是平级的不能自动转换,必需使用强制转换,另外由高级到低级时就要用到强制转换;布尔类型不能与其他类型进行转换;在强制转换中,当某一数据超出它所声明的类型的长度范围就会导致溢出或者降低数据精度而丢失数据。 3)程序如下: import java.text.DecimalFormat; public class Area public static void main(String args) int R=10; String S; DecimalFormat a= new DecimalFormat(“#0.00“); S=a.format(Math.PI*R*R); System.out.println (“圆的面积为: “ S); 结果截图: , 提高题 1)程序如下: public class Area public static void main(String s) double a1; double a2; double area; a1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论