收藏 分享(赏)

2011软件大赛JAVA试题.doc

上传人:精品资料 文档编号:10552307 上传时间:2019-11-28 格式:DOC 页数:13 大小:96.50KB
下载 相关 举报
2011软件大赛JAVA试题.doc_第1页
第1页 / 共13页
2011软件大赛JAVA试题.doc_第2页
第2页 / 共13页
2011软件大赛JAVA试题.doc_第3页
第3页 / 共13页
2011软件大赛JAVA试题.doc_第4页
第4页 / 共13页
2011软件大赛JAVA试题.doc_第5页
第5页 / 共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;Sy

4、stem.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 lst)if(lst=null | lst.size() 2 ? new Cow() : _null_;public static void showTotalCowNum(int n)List list = new Arra

6、yList();list.add(new Cow();for (int i = 0; i from, Set dest)Iterator it = from.iterator();while(it.hasNext()Cell a = it.next();Cell c = new Cell4;c0 = new Cell(a.row-1, a.col, a);c1 = new Cell(a.row, a.col-1, a);c2 = new Cell(a.row+1, a.col, a);c3 = _;for(int i=0; i= maze.length) continue;if(ci.col

7、= maze0.length) continue;char x = mazeci.rowci.col;if(x=B) return a;if(x=.) mazeci.rowci.col = ?;_;return null;public void resolve()Set set = new HashSet();set.add(new Cell(9,11,null);for(;)Set set1 = new HashSet();Cell a = colorCell(set, set1);if(a!=null)System.out.println(“找到解!“);while(a!=null)maz

8、ea.rowa.col = +;_;break;if(set1.isEmpty()System.out.println(“无解!“);break;set = set1;public static void main(String args)Maze m = new Maze();m.show();m.resolve();m.show();7.程序设计 (满分12分)在中文Windows环境下,控制台窗口中也可以用特殊符号拼出漂亮的表格来。比如: 其实,它是由如下的符号拼接的:左上 = 上 = 右上 = 左 = 中心 = 右 = 左下= 下 = 右下 = 垂直 = 水平 = 本题目要求编写一个程

9、序,根据用户输入的行、列数画出相应的表格来。例如用户输入:3 2则程序输出: 用户输入:2 3则程序输出: 要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号文件夹中的“解答.txt”中即可。相关的工程文件不要拷入。请不要使用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。8.程序设计 (满分17分)某财务部门结账时发现总金额不对头。很可能是从明细上漏掉了某1笔或几笔。如果已知明细账目清单,能通过编程找到漏掉的是哪1笔或几笔吗?如果有多种可能,则输出所有可能的情况。我们规定:用户输入的第一行是:有错的总金额。接下来是一个整数

10、n,表示下面将要输入的明细账目的条数。再接下来是n行整数,分别表示每笔账目的金额。要求程序输出:所有可能漏掉的金额组合。每个情况1行。金额按照从小到大排列,中间用空格分开。比如:用户输入:6532431表明:有错的总金额是6;明细共有5笔。此时,程序应该输出:1 3 32 53 4为了方便,不妨假设所有的金额都是整数;每笔金额不超过1000,金额的明细条数不超过100。要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号文件夹中的“解答.txt”中即可。相关的工程文件不要拷入。请不要使用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更

11、高版本。9.程序设计(满分24分)一种Playfair密码变种加密方法如下:首先选择一个密钥单词(称为pair) (字母不重复,且都为小写字母) ,然后与字母表中其他字母一起填入至一个5x5的方阵中,填入方法如下:1.首先按行填入密钥串。2.紧接其后,按字母序按行填入不在密钥串中的字母。3.由于方阵中只有25个位置,最后剩下的那个字母则不需变换。如果密钥为youandme,则该方阵如下: y o u a nd m e b cf g h i jk l p q rs t v w x在加密一对字母时,如am,在方阵中找到以这两个字母为顶点的矩形:o u a m e b 这对字母的加密字母为该矩形的另

12、一对顶点,如本例中为ob。请设计程序,使用上述方法对输入串进行加密,并输出加密后的串。另外有如下规定:1、一对一对取字母,如果最后只剩下一个字母,则不变换,直接放入加密串中;2、如果一对字母中的两个字母相同,则不变换,直接放入加密串中;3、如果一对字母中有一个字母不在正方形中,则不变换,直接放入加密串中;4、如果字母对出现在方阵中的同一行或同一列,如df或hi,则只需简单对调这两个字母,即变换为fd或ih;5、如果在正方形中能够找到以字母对为顶点的矩形,假如字母对为am,则该矩形的另一对顶点字母中,与a同行的字母应在前面,在上例中应是ob;同样若待变换的字母对为ta,则变换后的字母对应为wo;

13、6、本程序中输入串均为小写字母,并不含标点、空格或其它字符。解密方法与加密相同,即对加密后的字符串再加密,将得到原始串。要求输入形式如下:从控制台输入两行字符串,第一行为密钥单词(长度小于等于25) ,第二行为待加密字符串(长度小于等于50) ,两行字符串末尾都有一个回车换行符,并且两行字符串均为小写字母,不含其它字符。在标准输出上输出加密后的字符串。例如,若输入:youandmewelcometohangzhou则表示输入的密钥单词为youandme,形成的正方形如上所示;待加密字符串为welcometohangzhou。在正方形中可以找到以第一对字母we为顶点的矩形,对应另一对顶点字母为v

14、b,因此加密后为vb,同理可找到与字母对lc,et,oh,ho对应的顶点字母对。而字母对om位于上述正方形中的同一列,所以直接以颠倒这两个字母来加密,即为mo,字母对an同理。字母对gz中的z不在上述正方形中,因此原样放到加密串中。最后剩一个字母u也原样输出。因此输出的结果为:vbrmmomvugnagzguu要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号文件夹中的“解答.txt”中即可。相关的工程文件不要拷入。请不要使用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。高职题目考生须知:考试时间为4小时。本试卷包含两种题

15、型:“代码填空”与“程序设计” 。总计100分。其中代码填空:3+3+4+6+7+9+10 = 42 分程序设计:14+17+27 = 58分填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不超过一条语句(即不能出现分号) 。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号文件夹中的“解答.txt”中即可。编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果的时候才有机会得分。注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据

16、有效。对每个题目,要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号文件夹中的“解答.txt”中即可。相关的工程文件不要拷入。请不要使用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。1.代码填空 (满分3分)计算蔬菜总价 为了丰富群众菜篮子,平抑菜价,相关部分组织了蔬菜的调运。今某箱中有多个品种的蔬菜。蔬菜的单价(元/公斤)存放在price数组中,蔬菜的重量(公斤)存放在weight数组中。下面的代码计算该箱蔬菜的总价,试完善之。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号文件夹中的“解答.txt”中

17、即可。public static double getTotal(double price, double weight)double x = 0;for(int i=0; i lst)double r = _ Double.MAX_VALUE _;int n = lst.size();for(int i=0; i _0.5_)value = value * 1.1;elsevalue = value * 0.9;if(_value1000_) n+;System.out.println(1.0*n/N);6.代码填空 (满分9分)猜数字很多人都玩过这个游戏:甲在心中想好一个数字,乙来猜。每猜

18、一个数字,甲必须告诉他是猜大了,猜小了,还是刚好猜中了。下列的代码模拟了这个过程。其中用户充当甲的角色,计算机充当乙的角色。为了能更快地猜中,计算机使用了二分法。阅读分析代码,填写缺失的部分。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号文件夹中的“解答.txt”中即可。System.out.println(“请在心中想好一个数字(1100) ,我来猜“);System.out.println(“我每猜一个数字,你要告诉我是“猜大了” , “猜小了” ,还是“猜中”“);Scanner scan = new Scanner(System.in);int v1 = 1;int

19、 v2 = 100;for(;)int m = (v1 + v2)/2;System.out.println(“我猜是:“ + m);System.out.println(“1.猜得太大了“);System.out.println(“2.猜得太小了“);System.out.println(“3.猜中!“);System.out.print(“请选择:“);int user = Integer.parseInt(scan.nextLine();if(user=3) break;if(user=1) _v2=m_;if(user=2) _v1=m_;7.代码填空 (满分10分)基因牛张教授采用基

20、因干预技术成功培养出一头母牛,三年后,这头母牛每年会生出1头母牛, 生出来的母牛三年后,又可以每年生出一头母牛。如此循环下去,请问张教授n年后有多少头母牛?以下程序模拟了这个过程,请填写缺失的代码。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号文件夹中的“解答.txt”中即可。public static class Cow private int age;public Cow afterYear()age+;return age 2 ? new Cow() : _;public static void showTotalCowNum(int n)List list = ne

21、w ArrayList();list.add(new Cow();for (int i = 0; i n; i+)int cowCount = list.size();for (int j = 0; j cowCount; j+)Cow cow = list.get(j).afterYear();if (cow != null)_; list.add(cow);System.out.println(n + “年后,共有:“ + list.size();8.程序设计(满分14分)在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:1. 把

22、每个单词的首字母变为大写。2. 把数字与字母之间用下划线字符(_)分开,使得更清晰3. 把单词中间有多个空格的调整为1个空格。例如:用户输入:you and me what cpp2005program则程序输出:You And Me What Cpp_2005_program用户输入:this is a 99cat则程序输出:This Is A 99_cat我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由1个或多个空格分隔。假设用户输入的串长度不超过200个字符。要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号文件夹中的“解答.txt”

23、中即可。相关的工程文件不要拷入。请不要使用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。9.程序设计(满分17分)方阵的主对角线之上称为“上三角” 。请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:使用1,2,3.的自然数列,从左上角开始,按照顺时针方向螺旋填充。例如:当n=3时,输出:1 2 36 45当n=4时,输出:1 2 3 49 10 58 67当n=5时,输出:1 2 3 4 512 13 14 6 11 15 710 89程序运行时,要求用户输入整数n(320)程序输出:方阵的上三角部分。要求格式:每个数据宽度为

24、4,右对齐。要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号文件夹中的“解答.txt”中即可。相关的工程文件不要拷入。请不要使用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。10.程序设计(满分27分)A、B、C、D、E、F、G、H、I、J 共10名学生有可能参加本次计算机竞赛,也可能不参加。因为某种原因,他们是否参赛受到下列条件的约束:1. 如果A参加,B也参加;2. 如果C不参加,D也不参加;3. A和C中只能有一个人参加;4. B和D中有且仅有一个人参加;5. D、E、F、G、H 中至少有2人参加;6. C和G或者都参加,或者都不参加;7. C、E、G、I中至多只能2人参加 8. 如果E参加,那么F和G也都参加。9. 如果F参加,G、H就不能参加10. 如果I、J都不参加,H必须参加请编程根据这些条件判断这10名同学中参赛者名单。如果有多种可能,则输出所有的可能情况。每种情况占一行。参赛同学按字母升序排列,用空格分隔。比如:C D G J就是一种可能的情况。要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号文件夹中的“解答.txt”中即可。相关的工程文件不要拷入。请不要使用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报