2011蓝桥杯高职java选拨赛试题及部分参考答案 下载本文

2011年 选拔赛 java 高职

考生须知:

考试时间为4小时。 本试卷包含两种题型:“代码填空”与“程序设计”。总计100分。 其中代码填空:3+3+4+6+7+9+10 = 42 分 程序设计:14+17+27 = 58分

填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不超过一条语句(即不能出现分号)。

把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果的时候才有机会得分。注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。

对每个题目,要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。请不要使用package语句。

另外,源程序中只能出现JDK1.5中允许的语法或调用。不能使用1.6或更高版本。

1. 代码填空 (满分3分)

计算蔬菜总价

为了丰富群众菜篮子,平抑菜价,相关部分组织了蔬菜的调运。今某箱中有多个品种的蔬菜。蔬菜的单价(元/公斤)存放在price数组中,蔬菜的重量(公斤)存放在weight数组中。下面的代码计算该箱蔬菜的总价,试完善之。

把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

public static double getTotal(double[] price, double[] weight) { }

double x = 0;

for(int i=0; i

return x;

_x+= price[i]* weight[i]_;

2. 代码填空 (满分3分)

计算行程

低碳生活,有氧运动。骑自行车出行是个好主意。小明为自己的自行车装了个计数器,可以计算出轮子转动的圈数。在一次骑车旅行中,出发时计算器的示数为begin,到达目的地时的示数为end。下列代码计算了小明一共骑行了多远(单位:公里)。其中d表示小明自行车轮子的直径(单位:米)。

第 1/12 页

把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

public static double getDistance(int begin, int end, double d) { }

return (end-begin) *( Math.PI * d ) * d _0.001________;

3. 代码填空 (满分4分)

反转的串

解决同一个问题往往有许多方法。小刚很喜欢别出心裁。一天他在纸上草草写了一段程序,实现了把串s中的内容反转后放入s2的功能。也就是说,s2最后的内容变成了“7654321”。

可惜草纸出现了一处污损,请补全缺失的部分。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

String s = \ String s2 = \

for(int i=0; i

System.out.println(s2);

s2 = s.charAt(i) + ____ s2______;

4. 代码填空(满分6分)

最近距离

已知平面上的若干点的位置,存入一个List中。现在需要计算所有这些点中,距离最近的两个点间的最小距离。

请补全缺失的代码。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

class MyPoint {

private double x; // 横坐标 private double y; // 纵坐标 { }

public static double distance(MyPoint p1, MyPoint p2) {

double dx = p1.x - p2.x; double dy = p1.y - p2.y;

this.x = x; this.y = y;

public MyPoint(double x, double y)

第 2/12 页

}

} /*

return Math.sqrt(dx*dx + dy*dy);

lst中含有若干个点的坐标 返回其中距离最小的点的距离 */

public static double getMinDistance(List lst) { }

double r = ______double. MAX_VALUE __________; int n = lst.size(); for(int i=0; i

return r;

for(int j=i+1; j

MyPoint p1 = lst.get(i); MyPoint p2 = lst.get(j);

double d = MyPoint.distance(p1,p2); if( d < r ) _r=d_____________;

5. 代码填空 (满分7分)

股票风险

股票交易上的投机行为往往十分危险。假设某股票行为十分怪异,每天不是涨停(上涨10%)就是跌停(下跌10%)。假设上涨和下跌的概率均等(都是50%)。再假设交易过程没有任何手续费。某人在开始的时候持有总价值为x的该股股票,那么100个交易日后,他盈利的可能性是多少呢?

以下程序通过计算机模拟了该过程,一般的输出结果在0.3左右。请填写缺失的代码。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

int N = 10000; int n = 0;

for(int i=0; i

double value = 1000.0; for(int k=0; k<100; k++) {

第 3/12 页