《第三届蓝桥杯(高职java预赛题及参考答案).pdf》由会员分享,可在线阅读,更多相关《第三届蓝桥杯(高职java预赛题及参考答案).pdf(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、1、造成高房价的原因有许多,比如土地出让价格。既然地价高,土地的面积必须仔细计算。遗憾的是,有些地块的形状不规则,比如是如图【1.jpg】中所示的五边形。一般需要把它划分为多个三角形来计算。已知三边求三角形的面积需要用海伦定理,参见【2.jpg】各条边长数据如下:AB=52.1BC=57.2CD=43.5DE=51.9EA=33.4EB=68.2EC=71.9根据这些数据求五边形地块的面积。四舍五入到小数后两位。只写结果,不要源代码!1.jpgpublicpublic classclass Onea publicpublic staticstatic voidvoid main(String
2、args)doubledouble s_ABE=(52.1+68.2+33.4)/2;doubledouble s_BEC=(68.2+57.2+71.9)/2;doubledouble s_EDC=(71.9+51.9+43.5)/2;2.jpg/sqrt()是Math中的静态方法可以用类名直接调用doubledouble A_ABE=Math.sqrt(s_ABE*(s_ABE-52.1)*(s_ABE-33.4)*(s_ABE-68.2);doubledouble A_BEC=Math.sqrt(s_BEC*(s_BEC-68.2)*(s_BEC-57.2)*(s_BEC-71.9);d
3、oubledouble A_EDC=Math.sqrt(s_EDC*(s_EDC-71.9)*(s_EDC-43.5)*(s_EDC-51.9);System.out.println(A_ABE+A_BEC+A_EDC);/输出的结果是 3789.8640994485186publicpublic classclass One publicpublic staticstatic voidvoid main(String args)doubledouble AB=52.1,BC=57.2,CD=43.5,DE=51.9,EA=33.4,EB=68.2,EC=71.9;System.out.pri
4、ntln(mainji(AB,EB,EA)+mainji(EB,BC,EC)+mainji(EC,CD,DE);staticstatic doubledouble mainji(doubledouble a,doubledouble b,doubledouble c)doubledouble s=(a+b+c)/2;returnreturn Math.sqrt(s*(s-a)*(s-b)*(s-c);输出结果:3789.86409944851862、今年的植树节(2012 年 3 月 12 日),小明和他的叔叔还有小伙伴们一起去植树。休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:“我说个题
5、目,看你们谁先猜出来!”“把我出生的年月日连起来拼成一个 8 位数(月、日不足两位前补 0)正好可以被今天的年、月、日整除!”他想了想,又补充到:“再给个提示,我是 6 月出生的。”根据这些信息,请你帮小明算一下,他叔叔的出生年月日。格式是年月日连成的 8 位数。例如,如果是 1948年 6 月 12 日,就写:19480612publicpublic classclass Two publicpublic staticstatic voidvoid main(String args)forfor(intint y=2011;y 1900;y-)forfor(intint d=0;d 31;d
6、+)intint val=y*10000+6*100+d;ifif(val%2012=0&val%3=0&val%12=ifif(d 10)System.out.println(y+060+d);breakbreak;elseelse System.out.println(y+06+d);breakbreak;0)195506043、你一定听说过这个故事。国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:请在第 1 个棋盘格放 1 粒麦子,在第 2 个棋盘格放 2 粒麦子,在第 3 个棋盘格放 4粒麦子,在第 4 个棋盘格放 8 粒麦子,.后一格的数字是前一格的两倍,直到放完所有棋盘格(
7、国际象棋共有 64 格)。国王以为他只是想要一袋麦子而已,哈哈大笑。当时的条件下无法准确计算,但估算结果令人吃惊:即使全世界都铺满麦子也不够用!请你借助计算机准确地计算,到底需要多少粒麦子。importimport java.math.BigInteger;publicpublic classclass Three publicpublic staticstatic voidvoid main(String args)BigInteger sum=newnew BigInteger(1);BigInteger n=newnew BigInteger(2);BigInteger num=newn
8、ew BigInteger(1);forfor(intint i=1;i 0;d-)forfor(intint c=20;c 3;c-)forfor(intint b=20;b 2;b-)forfor(intint a=20;a 1;a-)doubledouble s;s=1.0/d+1.0/a+1.0/b+1.0/c;ifif(s=1.0&(a b&b c&c=0&c=0&c=0&c=9)returnreturn Integer.parseInt(String.valueOf(c).toString();returnreturn getFirstNum(s.substring(1);6、下面
9、代码模拟了一套扑克牌(初始排序 AK,共 13 张)的操作过程。操作过程是:手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,.如此循环操作,直到剩下最后一张牌也放在桌子上。下面代码的目的就是为了求出最后桌上的牌的顺序。初始的排列如果是 A,2,3.K,则最后桌上的顺序为:2,4,6,8,10,Q,A,5,9,K,7,3,Jimportimport java.util.*;publicpublic classclass Six publicpublic staticstatic List moveCard(List src)ifif(src=nullnu
10、ll)returnreturn nullnull;List dst=newnew Vector();forfor(;)ifif(src.size()=0)breakbreak;src.add(src.remove(0);dst.add(src.remove(0);returnreturn dst;publicpublic staticstatic voidvoid main(String args)List a=newnew Vector();a.addAll(Arrays.asList(A,2,3,4,5,6,7,8,9,10,J,Q,K);System.out.println(moveCa
11、rd(a);7、下面的代码用于判断一个串中的括号是否匹配所谓匹配是指不同类型的括号必须左右呼应,可以相互包含,但不能交叉例如:.(.).是允许的.(.).是禁止的对于 main 方法中的测试用例,应该输出:falsetruefalseFalseimportimport java.util.*;publicpublic classclass Seven publicpublic staticstatic voidvoid main(String args)System.out.println(isGoodBracket(.(.).(.).);System.out.println(isGoodBr
12、acket(.(.(.).).(.).);System.out.println(isGoodBracket(.(.).).(.).);System.out.println(isGoodBracket(.(.(.).).(.).);publicpublic staticstatic booleanboolean isGoodBracket(String s)Stack a=newnew Stack();forfor(intint i=0;is.length();i+)charchar c=s.charAt(i);ifif(c=()a.push();ifif(c=)a.push();ifif(c=
13、)a.push();ifif(c=)|c=|c=)ifif(a.size()=0)returnreturn falsefalse;ifif(a.pop()!=c)returnreturn falsefalse;ifif(s.replace(.,).length()%2!=0)returnreturn falsefalse;returnreturn truetrue;8、30 年的改革开放,给中国带来了翻天覆地的变化。2011全年中国手机产量约为 11.72亿部。手机已经成为百姓的基本日用品!给手机选个好听又好记的号码可能是许多人的心愿。但号源有限,只能辅以有偿选号的方法了。这个程序的目的就是:
14、根据给定的手机尾号(4 位),按照一定的规则来打分。其规则如下:1.如果出现连号,不管升序还是降序,都加 5 分。例如:5678,4321 都满足加分标准。2.前三个数字相同,或后三个数字相同,都加 3 分。例如:4888,6665,7777 都满足加分的标准。注意:7777因为满足这条标准两次,所以这条规则给它加了 6 分。3.符合 AABB 或者 ABAB模式的加 1 分。例如:2255,3939,7777都符合这个模式,所以都被加分。注意:7777因为满足这条标准两次,所以这条标准给它加了 2 分。4.含有:6,8,9 中任何一个数字,每出现一次加 1 分。例如 4326,6875,99
15、18 都符合加分标准。其中,6875被加 2 分;9918 被加 3 分。尾号最终得分就是每条标准的加分总和!要求程序从标准输入接收数据,在标准输出上输出结果。输入格式为:第一行是一个整数 n(100),表示下边有多少输入行,接下来是 n 行 4位一组的数据,就是等待计算加分的手机尾号。输出格式为:n 行整数。例如,输入:1430450211234565437777888878787788668824242244991867898866则输出:005681233511385importimport java.util.Scanner;publicpublic classclass Eight
16、publicpublic staticstatic voidvoid main(String args)Scanner scanner=newnew Scanner(System.in);intint num=scanner.nextInt();intint j=num;String strings=newnew Stringnum;forfor(intint i=0;i 0)System.out.println(score(stringsj-num);num-;staticstatic intint score(String s)intint score=0;intint num=newne
17、w intint4;charchar c=s.toCharArray();forfor(intint i=0;i 2+2+8=12=1+2=3上面的数字缩位后变为:344836,这就是程序最终的输出结果!要求程序从标准输入接收数据,在标准输出上输出结果。输入格式为:第一行是一个整数 n(100),表示下边有多少输入行,接下来是n 行字符串,就是等待变换的字符串。输出格式为:n 行变换后的 6 位密码。例如,输入:5zhangfengwangximingjiujingfaziwoaibeijingtiananmenhaohaoxuexi则输出:77224334483629733271665287
18、5843importimport java.util.Scanner;publicpublic classclass NIne publicpublic staticstatic voidvoid main(String args)Scanner scanner=newnew Scanner(System.in);intint num=scanner.nextInt();intint j=num;String strings=newnew Stringnum;forfor(intint i=0;i 0)System.out.println(mima(stringsj-num);num-;sta
19、ticstatic String mima(String s)charchar c=s.toCharArray();/int count=c.length/6;intint sum=0,0,0,0,0,0;intint length=0;ifif(c.length%6=0)length=c.length/6;elseelselength=c.length/6+1;intint i=0;intint j=0;/System.out.println(length);whilewhile(i=c.length%6&j*6+i=c.length)sumi=sumi+0;elseelsesumi=sum
20、i+cj*6+i;j+;ifif(j=length)i+;j=0;/System.out.println(sum0+sum1+sum2+sum3+sum4+sum5);intint mima=newnew intint6;String mimastring=;i=0;forfor(intint num:sum)mimai=getnum(num);mimastring=mimastring.concat(String.valueOf(mimai);i+;returnreturn mimastring;staticstatic intint getnum(intint sum)intint num
21、=0;charchar c=String.valueOf(sum).toCharArray();intint i=0;whilewhile(i=10)num=getnum(num);i+;returnreturn num;10、匪警请拨 110,即使手机欠费也可拨通!为了保障社会秩序,保护人民群众生命财产安全,警察叔叔需要与罪犯斗智斗勇,因而需要经常性地进行体力训练和智力训练!某批警察叔叔正在进行智力训练:1 2 3 4 5 6 7 8 9=110;请看上边的算式,为了使等式成立,需要在数字间填入加号或者减号(可以不填,但不能填入其它符号)。之间没有填入符号的数字组合成一个数,例如:12+34
22、+56+7-8+9 就是一种合格的填法;123+4+5+67-89 是另一个可能的答案。请你利用计算机的优势,帮助警察叔叔快速找到所有答案。每个答案占一行。形如:12+34+56+7-8+9123+4+5+67-89.publicpublic classclass Ten publicpublic staticstatic voidvoid main(String args)/String string=123+4+5+67-89;charchar a=,+,-;charchar num=1,2,3,4,5,6,7,8,9;forfor(charchar x1:a)forfor(charcha
23、r x2:a)forfor(charchar x3:a)forfor(charchar x4:a)forfor(charchar x5:a)forfor(charchar x6:a)forfor(charchar x7:a)forfor(charchar x8:a)intint result=0;charchars=x1,x2,x3,x4,x5,x6,x7,x8;String string=;forfor(intint i=0;i=7;i+)string=string+numi+si;string=string.replaceAll(StringjianString=,);string.spl
24、it(-);jianStirng.length;intintaddResult=newnewintintaddResult0=0;StringaddStringforfor(intintj=0;i=+=jianString0.split(+);addString.length;j+)addResult0Integer.parseInt(String.valueOf(addStringj);result=addResult0;forfor(intint i=1;i jianString.length;Stringresulti+)num1=jianStringi.split(+);Integer.parseInt(String.valueOf(num10);forfor(intint p=1;p num1.length;p+)resultInteger.parseInt(String.valueOf(num1(p1);ifif(result=110)System.out.println(string);+=