Java练习题

  • 格式:doc
  • 大小:55.00 KB
  • 文档页数:7

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<price.length; i++){____________________;}return x;}2.代码填空(满分3分)计算行程低碳生活,有氧运动。

骑自行车出行是个好主意。

小明为自己的自行车装了个计数器,可以计算出轮子转动的圈数。

在一次骑车旅行中,出发时计算器的示数为begin,到达目的地时的示数为end。

下列代码计算了小明一共骑行了多远(单位:公里)。

其中d表示小明自行车轮子的直径(单位:米)。

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

public static double getDistance(int begin, int end, double d){return (end-begin) * Math.PI * d * d _________;}3.代码填空(满分4分)反转的串解决同一个问题往往有许多方法。

小刚很喜欢别出心裁。

一天他在纸上草草写了一段程序,实现了把串s中的内容反转后放入s2的功能。

也就是说,s2最后的内容变成了“7654321”。

可惜草纸出现了一处污损,请补全缺失的部分。

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

String s = "1234567";String s2 = "";for(int i=0; i<s.length(); i++){s2 = s.charAt(i) + __________;}System.out.println(s2);4.代码填空(满分6分)最近距离已知平面上的若干点的位置,存入一个List中。

现在需要计算所有这些点中,距离最近的两个点间的最小距离。

请补全缺失的代码。

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

class MyPoint{private double x; // 横坐标private double y; // 纵坐标public MyPoint(double x, double y){this.x = x;this.y = y;}public static double distance(MyPoint p1, MyPoint p2){double dx = p1.x - p2.x;double dy = p1.y - p2.y;return Math.sqrt(dx*dx + dy*dy);}/*lst中含有若干个点的坐标返回其中距离最小的点的距离*/public static double getMinDistance(List<MyPoint> lst){double r = ________________;int n = lst.size();for(int i=0; i<n; i++){for(int j=i+1; j<n; j++){MyPoint p1 = lst.get(i);MyPoint p2 = lst.get(j);double d = MyPoint.distance(p1,p2);if( d < r ) ______________;}}return r;}}5.代码填空(满分7分)股票风险股票交易上的投机行为往往十分危险。

假设某股票行为十分怪异,每天不是涨停(上涨10%)就是跌停(下跌10%)。

假设上涨和下跌的概率均等(都是50%)。

再假设交易过程没有任何手续费。

某人在开始的时候持有总价值为x的该股股票,那么100个交易日后,他盈利的可能性是多少呢?以下程序通过计算机模拟了该过程,一般的输出结果在0.3左右。

请填写缺失的代码。

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

int N = 10000;int n = 0;for(int i=0; i<N; i++){double value = 1000.0;for(int k=0; k<100; k++){if(Math.random() > _______)value = value * 1.1;elsevalue = value * 0.9;}if(____________) n++;}System.out.println(1.0*n/N);6.代码填空(满分9分)猜数字很多人都玩过这个游戏:甲在心中想好一个数字,乙来猜。

每猜一个数字,甲必须告诉他是猜大了,猜小了,还是刚好猜中了。

下列的代码模拟了这个过程。

其中用户充当甲的角色,计算机充当乙的角色。

为了能更快地猜中,计算机使用了二分法。

阅读分析代码,填写缺失的部分。

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

System.out.println("请在心中想好一个数字(1~100),我来猜");System.out.println("我每猜一个数字,你要告诉我是“猜大了”,“猜小了”,还是“猜中”");Scanner scan = new Scanner(System.in);int v1 = 1;int 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) _____________;if(user==2) _____________;}7.代码填空(满分10分)基因牛张教授采用基因干预技术成功培养出一头母牛,三年后,这头母牛每年会生出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<Cow> list = new ArrayList<Cow>();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.把每个单词的首字母变为大写。

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”中即可。

相关的工程文件不要拷入。

请不要使用package语句。

另外,源程序中只能出现JDK1.5中允许的语法或调用。

不能使用1.6或更高版本。

9.程序设计(满分17分)方阵的主对角线之上称为“上三角”。

请你设计一个用于填充n阶方阵的上三角区域的程序。

填充的规则是:使用1,2,3….的自然数列,从左上角开始,按照顺时针方向螺旋填充。