2011软件大赛java试题

上传人:E**** 文档编号:118346984 上传时间:2019-12-14 格式:DOC 页数:13 大小:96.50KB
返回 下载 相关 举报
2011软件大赛java试题_第1页
第1页 / 共13页
2011软件大赛java试题_第2页
第2页 / 共13页
2011软件大赛java试题_第3页
第3页 / 共13页
2011软件大赛java试题_第4页
第4页 / 共13页
2011软件大赛java试题_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《2011软件大赛java试题》由会员分享,可在线阅读,更多相关《2011软件大赛java试题(13页珍藏版)》请在金锄头文库上搜索。

1、第二届全国软件专业人才设计与开发大赛JAVA试题本科题目考生须知:考试时间为4小时。本试卷包含两种题型:“代码填空”与“程序设计”。总计100分。其中代码填空:3+4+5+7+9+19 = 47 分程序设计:12+17+24 = 53分填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不超过一条语句(即不能出现分号)。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号文件夹中的“解答.txt”中即可。编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果的时候才有机会得分。注意:在评卷时使用的

2、输入数据与试卷中给出的实例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。对每个题目,要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号文件夹中的“解答.txt”中即可。相关的工程文件不要拷入。请不要使用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。1.代码填空 (满分3分)圆周率我国古代数学家对圆周率方面的研究工作,成绩是突出的。三国时期的刘徽、南北朝时期的祖冲之都在这个领域取得过辉煌战绩。有了计算机,圆周率的计算变得十分容易了。如今,人们创造了上百种方法求的值。其中比较常用且易于编程的是无穷级数

3、法。/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 - 是初学者特别喜欢的一个级数形式,但其缺点是收敛太慢。/2 = 1 + 1/3 +1/3*2/5 + 1/3*2/5*3/7 + 1/3*2/5*3/7*4/9 + 是收敛很快的一个级数方法。下面的代码演示了用这种方法计算值。请填写缺失的代码部分。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号文件夹中的“解答.txt”中即可。double x = 1;double y = 1;int a = 1;int b = 3;while(y1e-15)y = _y*a/b_;x += y;a+;b += 2;Syst

4、em.out.println(x*2);2.代码填空 (满分4分)孪生素数所谓孪生素数指的就是间隔为 2 的相邻素数,它们之间的距离已经近得不能再近了,就象孪生兄弟一样。最小的孪生素数是 (3, 5),在 100 以内的孪生素数还有 (5, 7), (11, 13), (17, 19), (29, 31), (41, 43), (59, 61) 和 (71, 73),总计有 8 组。但是随着数字的增大,孪生素数的分布变得越来越稀疏,寻找孪生素数也变得越来越困难。那么会不会在超过某个界限之后就再也不存在孪生素数了呢?孪生素数有无穷多对!这个猜想被称为孪生素数猜想,至今没有被严格证明。但借助于计算

5、机我们确实可以找到任意大数范围内的所有孪生素数对。下面的代码求出了正整数n以内(不含n)的所有孪生素数对的个数。比如,当n=100的时候,该方法返回8。试补全缺少的代码。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号文件夹中的“解答.txt”中即可。public static boolean isPrime(int x)for(int i=2; i=x/2; i+)if(x%i=0) _return false_;return true;public static int twinPrimeNum(int n)int sum = 0;for(int i=2; in; i+)

6、if(isPrime(i) & _isPrime(i+2)_) sum+;return sum;3.代码填空 (满分5分)反转串我们把“cba”称为“abc”的反转串。求一个串的反转串的方法很多。下面就是其中的一种方法,代码十分简洁(甚至有些神秘),请聪明的你通过给出的一点点线索补充缺少的代码。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号文件夹中的“解答.txt”中即可。public static String reverseString(String x)if(x=null | x.length()2) return x;return _ reverseString(x

7、)_ + x.charAt(0);4.代码填空(满分7分)最近距离已知平面上的若干点的位置,存入一个List中。现在需要计算所有这些点中,距离最近的两个点间的最小距离。请补全缺失的代码。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号文件夹中的“解答.txt”中即可。class MyPointprivate double x; / 横坐标private double y; / 纵坐标public MyPoint(double x, double y)this.x = x;this.y = y;public static double distance(MyPoint p1,

8、MyPoint p2)double dx = p1.x - p2.x;double dy = p1.y - p2.y;return Math.sqrt(dx*dx + dy*dy);/* lst中含有若干个点的坐标 返回其中距离最小的点的距离*/public static double getMinDistance(List lst)if(lst=null | lst.size()2) return Double.MAX_VALUE;double r = Double.MAX_VALUE;MyPoint p0 = lst.remove(0);for(int i=0; ilst.size();

9、i+)MyPoint p = lst.get(i);double d = MyPoint.distance(p0,p);if(dr) _r=d_;double d2 = _ getMinDistance(lst) _;return d2 2 ? new Cow() : _null_;public static void showTotalCowNum(int n)List list = new ArrayList();list.add(new Cow();for (int i = 0; i n; i+)int cowCount = list.size();for (int j = 0; j c

10、owCount; j+)Cow cow = list.get(j).afterYear();if (cow != null)_cow.age=0_; list.add(cow);System.out.println(n + 年后,共有: + list.size();6.代码填空 (满分19分)迷宫问题对于走迷宫,人们提出过很多计算机上的解法。深度优先搜索、广度优先搜索是使用最广的方法。生活中,人们更愿意使用“紧贴墙壁,靠右行走”的简单规则。下面的代码则采用了另一种不同的解法。它把走迷宫的过程比做“染色过程”。假设入口点被染为红色,它的颜色会“传染”给与它相邻的可走的单元。这个过程不断进行下去,

11、如果最终出口点被染色,则迷宫有解。仔细分析代码中的逻辑,填充缺少的部分。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号文件夹中的“解答.txt”中即可。public class Mazeclass Cellprivate int row;private int col;private Cell from;public Cell(int row, int col, Cell from)this.row = row;this.col = col;this.from = from;char maze = #,#,#,#,B,#,#,#,#,#,#,#,#,#,#,#,.,.,.,

12、.,#,#,#,#,#,#,#,#,.,#,#,#,#,.,.,#,#,.,.,.,.,#,#,#,#,#,.,#,#,.,#,#,#,#,#,.,#,#,.,#,#,.,#,#,#,#,#,.,#,#,.,#,#,.,#,#,.,.,.,.,.,.,.,#,#,.,#,#,.,#,#,#,.,#,.,#,#,.,.,.,.,#,#,#,.,#,.,#,#,#,.,#,.,#,#,#,.,#,.,A,#,#,.,#,#,#,.,.,.,#,#,#,#,#,#,#,#,#,#,#,#,#,#,#;public void show()for(int i=0; imaze.length; i+)for(int j=0; jmaz

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号