java经典编程题二及详细答案 联系客服

发布时间 : 星期一 文章java经典编程题二及详细答案更新完毕开始阅读04fad62c647d27284b735173

2.1 上机练习

? 基本题

1) 编程观察如下输出语句:

System.out.println(\

在“escape”处换上各种转义字符测试输出效果。如何实现如下输出: Hello \ Hello ‘\\test’

2) 设有如下代码段,考虑赋值转换问题:

int a=234; byte b=a;

System.out.println(\

将a,b的类型以及数据进行各种替换,观察什么时候能赋值,什么时候需要使用强制转换,什么时候不能强制转换,什么时候强制转换会丢失数据。

3) 编写一个程序求半径R为10的圆的面积,结果保留2为有效小数。公式为:S=πR2

注:π可用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 & n);

System.out.println(Integer.toBinaryString(m)); System.out.println(Integer.toBinaryString(m >> 2));

} }

注意:Integer.toBinaryString(int)用于将一个整数转化为二进制形式的数字串。在进行位运算

时,注意观察二进制的数据变化规律。

2.2上机练习

? 基本题

1) 从键盘输入4个学生的成绩,找出最高分和最低分。

【提示】引入两个变量分别存放最高分和最低分,根据比较改变这两个变量值。

2) 输入一个百分制分数,输出其对应的五分制成绩,包括:优、良、中、及格、不及格。

? 提高题

1) 设有一元二次方程如下: aX bx c=0

试根据从键盘输入的a,b,c求解方程的根。

【提示】要考虑各种情形:一是a为0的情形,方程根为-c/b。还有就是根据判别式

Δ=b - 4ac进行判断,如果Δ.>0有两个实根;Δ=0,有一个实根;Δ<0,无实数解。

2

2

另外,求x的平方根可用Math.sqrt(x)方法。

2) 输入某人的应纳税所得额,计算个人所得税。税率表如下:

级数 1 2 3 4 5 6 7 8 9 全月应纳税所得额 不超过500元的 超过500元至2000元的部分 超过2000元至5000元的部分 超过5000元至20000元的部分 超过20000元至40000元的部分 超过40000元至60000元的部分 超过60000元至80000元的部分 超过80000元至100000元的部分 超过100000元的部分 税率% 5 10 15 20 25 30 35 40 45 速算扣除法(元) 0 25 125 375 1375 3375 6375 10375 15375 计算公式是:应纳个人所得税税额=应纳税所得额?适用税率-速算扣除数

例:王某当月应纳税所得额6400元。则应纳个人所得税税额=6400?20%-375=905元。

2.3.4 上机练习

? 基本题

1)写一个程序输入一个整数n,输出相应三角形。例如:N=4,则三角形如下:

# ## ### ####

2) 计算算式: 1-1/2 1/3-1/4 1/5-?-1/100 3) 输出九九乘法表,格式如下: 1*1=1 1*1=2 1*3=3 ?? 2*1=1 2*2=2 2*3=3 ?? ??

9*1=1 9*2=18 9*3=27 ??

4) 编写一个程序,用于输出Fibonacci数列的前20项。 5) 编写一个程序,输出90度以内的各度的sin()函数值。

? 提高题

1) 编写一个猜数的应用程序,用随机函数产生一个10到99的随机数。根据猜中使用的次数x计算得分。每次猜完给出是大于还是小于的提示。

注:得分计算办法:110-x*10 ;(其中,x为猜的次数) 2)找出1~100之间拥有除数最多的数。

【提示】在一定范围内找目标数,所以总体上是一个循环问题。对于每个被检测的数,要统计出其拥有除数的个数,这又是个循环问题,也就是在外循环内有内循环。为了求出拥有除数最多的哪个数,还涉及比较问题,所以要引入两个变量记下符合条件的这个数以及最多拥有的除数个数,在每次考察一个数的除数个数后要与最多者进行比较,从而决定是否要修改最多者。

3) 编写一个人与计算机对拿火柴的游戏程序。利用随机函数Math.random()产生火柴数量(20~50), 每次最多拿3根,拿到最后一根为胜者。

要求:游戏过程要显示火柴总数,选择谁先拿;每步要显示剩余火柴数量,以及计算机拿的数量,并提示用户输入拿多少;结束时显示谁是胜者。

【解题算法提示】

(1) 产生火柴总数(amount);

(2) 决定随先拿(whoplay:1--人, 2--计算机); (3) 定义一个变量保存剩余火柴数量(remain)=amount ; (4) 当remain>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的矩阵赋值.