2011年蓝桥杯预赛Java高职试题解析

需积分: 9 1 下载量 30 浏览量 更新于2024-09-15 1 收藏 55KB DOC 举报
"2011年蓝桥杯预赛真题,主要涵盖算法和程序设计,分为高职组,考试时间4小时,总分为100分,包括代码填空和程序设计题型。代码填空不允许出现多余语句,编程题需确保程序能处理不同输入数据,使用JDK1.5的语法。" 在2011年蓝桥杯预赛中,题目主要测试参赛者的编程能力和算法理解。一道关键的代码填空题如下: ```java double x = 1; double y = 1; int a = 1; int b = 3; while(y > 1e-15) { y = ____________; x += y; a++; b += 2; } System.out.println(x * 2); ``` 这个程序的目的是计算数学中的一个序列,其中`y`的更新值应该是一个递减的分数,直到`y`变得足够小,小于等于`1e-15`。这是一个典型的无限循环,用于逼近某个值。由于`x`和`y`的初始值都是1,且在循环中`x`每次增加`y`的值,`a`每次增加1,`b`每次增加2,我们可以推断`y`的值应该是`1 / (a * b)`。因此,缺失的代码应该是`y = 1.0 / (double)(a * b)`。这样,随着循环的进行,`y`的值会逐渐减小,最终使得循环结束。 另一道代码填空题如下: ```java public static double getTotal(double[] price, double[] weight) { double x = 0; for (int i = 0; i < price.length; i++) { ________________; } return x; } ``` 这个函数的目的是计算数组`price`和`weight`对应元素的乘积之和,也就是蔬菜的总价。因此,缺失的代码应该是`x += price[i] * weight[i]`,将每种蔬菜的价格与其重量相乘,然后累加到总价`x`上。 编程题通常要求参赛者设计能够处理各种输入的通用程序,确保其不仅对给定的示例数据有效,而且对所有可能的输入都能得出正确结果。例如,上述的自行车行程计算问题,参赛者需要根据车轮转动的圈数(`end - begin`)和车轮直径(`d`)来计算骑行的距离。这涉及到圆周长的计算,公式是`distance = (end - begin) * Math.PI * d`。 这些题目旨在考察选手对基础编程概念的理解,如循环、条件判断、数组操作以及基本的数学计算,同时也要求选手具备良好的逻辑思维和问题解决能力。在准备类似的竞赛时,考生需要扎实掌握编程语言的基础语法,熟悉算法思想,并能灵活应用到实际问题中。