第三届蓝桥杯高职java预赛题及参考答案.docx
《第三届蓝桥杯高职java预赛题及参考答案.docx》由会员分享,可在线阅读,更多相关《第三届蓝桥杯高职java预赛题及参考答案.docx(17页珍藏版)》请在冰豆网上搜索。
第三届蓝桥杯高职java预赛题及参考答案
1、造成高房价的原因有许多,比如土地出让价格。
既然地价高,土地的面积必须仔细计算。
遗憾的是,有些地块的形状不规则,比如是如图【1.jpg】中所示的五边形。
一般需要把它划分为多个三角形来计算。
已知三边求三角形的面积需要用海伦定理,参见【2.jpg】
各条边长数据如下:
AB=52.1
BC=57.2
CD=43.5
DE=51.9
EA=33.4
EB=68.2
EC=71.9
根据这些数据求五边形地块的面积。
四舍五入到小数后两位。
只写结果,不要源代码!
1.jpg2.jpg
publicclassOnea{
publicstaticvoidmain(Stringargs[])
{
doubles_ABE=(52.1+68.2+33.4)/2;
doubles_BEC=(68.2+57.2+71.9)/2;
doubles_EDC=(71.9+51.9+43.5)/2;
//sqrt()是Math中的静态方法可以用类名直接调用
doubleA_ABE=Math.sqrt(s_ABE*(s_ABE-52.1)*(s_ABE-33.4)*(s_ABE-68.2));
doubleA_BEC=Math.sqrt(s_BEC*(s_BEC-68.2)*(s_BEC-57.2)*(s_BEC-71.9));
doubleA_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.8640994485186
publicclassOne{
publicstaticvoidmain(String[]args){
doubleAB=52.1,BC=57.2,CD=43.5,DE=51.9,EA=33.4,EB=68.2,EC=71.9;
System.out.println(mainji(AB,EB,EA)+mainji(EB,BC,EC)+mainji(EC,CD,DE));
}
staticdoublemainji(doublea,doubleb,doublec)
{
doubles=(a+b+c)/2;
returnMath.sqrt(s*(s-a)*(s-b)*(s-c));
}
}输出结果:
3789.8640994485186
2、今年的植树节(2012年3月12日),小明和他的叔叔还有小伙伴们一起去植树。
休息的时候,小明的同学问他叔叔多大年纪,他叔叔说:
“我说个题目,看你们谁先猜出来!
”
“把我出生的年月日连起来拼成一个8位数(月、日不足两位前补0)正好可以被今天的年、月、日整除!
”
他想了想,又补充到:
“再给个提示,我是6月出生的。
”
根据这些信息,请你帮小明算一下,他叔叔的出生年月日。
格式是年月日连成的8位数。
例如,如果是1948年6月12日,就写:
19480612
publicclassTwo{
publicstaticvoidmain(String[]args){
{
for(inty=2011;y>1900;y--)
{
for(intd=0;d<31;d++)
{
intval=y*10000+6*100+d;
if(val%2012==0&&val%3==0&&val%12==0)
{
if(d<10){
System.out.println(y+"060"+d);
break;
}else{
System.out.println(y+"06"+d);
break;
}
}
}
}
}
}19550604
3、你一定听说过这个故事。
国王对发明国际象棋的大臣很佩服,问他要什么报酬,大臣说:
请在第1个棋盘格放1粒麦子,在第2个棋盘格放2粒麦子,在第3个棋盘格放4粒麦子,在第4个棋盘格放8粒麦子,......后一格的数字是前一格的两倍,直到放完所有棋盘格(国际象棋共有64格)。
国王以为他只是想要一袋麦子而已,哈哈大笑。
当时的条件下无法准确计算,但估算结果令人吃惊:
即使全世界都铺满麦子也不够用!
请你借助计算机准确地计算,到底需要多少粒麦子。
importjava.math.BigInteger;
publicclassThree{
publicstaticvoidmain(String[]args){
BigIntegersum=newBigInteger("1");
BigIntegern=newBigInteger("2");
BigIntegernum=newBigInteger("1");
for(inti=1;i<=64;i++)
{
num=num.multiply(n);
System.out.println(num);
sum=sum.add(num);
}
}184********709551616
4、有一群海盗(不多于20人),在船上比拼酒量。
过程如下:
打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
再打开一瓶酒平分,又有倒下的,再次重复......直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。
当第4瓶酒平分喝下后,大家都倒下了。
等船长醒来,发现海盗船搁浅了。
他在航海日志中写到:
“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”
请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。
如果有多个可能的答案,请列出所有答案,每个答案占一行。
格式是:
人数,人数,...
例如,有一种可能是:
20,5,4,2,0
publicclassFour{
publicstaticvoidmain(String[]args){
for(intd=20;d>0;d--)
{
for(intc=20;c>3;c--)
{
for(intb=20;b>2;b--)
{
for(inta=20;a>1;a--)
{
doubles;
s=1.0/d+1.0/a+1.0/b+1.0/c;
if(s==1.0&&(a
{
System.out.println(d+","+c+","+b+","+a+","+"0");
}
}
}
}20,5,4,2,0
}18,9,3,2,0
}12,6,4,2,0
}
5、以下的静态方法实现了:
把串s中第一个出现的数字的值返回。
如果找不到数字,返回-1例如:
s="abc24us43"则返回2
s="82445adb5"则返回8
s="ab"则返回-1
publicstaticintgetFirstNum(Strings)
{
if(s==null||s.length()==0)return-1;
charc=s.charAt(0);
if(c>='0'&&c<='9')return_____________;//填空
returngetFirstNum(______________);//填空
}
解析:
1)、publicclassfive{
publicstaticvoidmain(String[]args){
Strings="abc24us43";
inta=getFirstNum(s);
System.out.println(a);
s="82445adb";
a=getFirstNum(s);
System.out.println(a);
s="ab";
a=getFirstNum(s);
System.out.println(a);
}
publicstaticintgetFirstNum(Strings)
{
if(s==null||s.length()==0)return-1;
charc=s.charAt(0);
if(c>='0'&&c<='9')returnc-'0';
returngetFirstNum(s.substring
(1));
}
2、)publicclassFive{
publicstaticvoidmain(String[]args){
System.out.println(getFirstNum("abc51"));
}
publicstaticintgetFirstNum(Strings)
{
if(s==null||s.length()==0)
return-1;
charc=s.charAt(0);
if(c>='0'&&c<='9')
returnInteger.parseInt(String.valueOf(c).toString());
returngetFirstNum(s.substring
(1));
}
}6、下面代码模拟了一套扑克牌(初始排序A~K,共13张)的操作过程。
操作过程是:
手里拿着这套扑克牌,从前面拿一张放在后面,再从前面拿一张放桌子上,再从前面拿一张放在后面,....
如此循环操作,直到剩下最后一张牌也放在桌子上。
下面代码的目的就是为了求出最后桌上的牌的顺序。
初始的排列如果是A,2,3...K,则最后桌上的顺序为:
[2,4,6,8,10,Q,A,5,9,K,7,3,J]
importjava.util.*;
publicclassSix{
publicstaticListmoveCard(Listsrc)
{
if(src==null)
returnnull;
Listdst=newVector();
for(;;)
{
if(src.size()==0)
break;
src.add(src.remove(0));