《蓝桥杯高职java试题及部分参考答案.docx》由会员分享,可在线阅读,更多相关《蓝桥杯高职java试题及部分参考答案.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2019年 选拔赛 java 高职考生须知:考试时间为4小时。本试卷包含两种题型:“代码填空”与“程序设计”。总计100分。其中代码填空:3+3+4+6+7+9+10 = 42 分程序设计:14+17+27 = 58分填空题要求参赛选手在弄清给定代码工作原理的根底上填写缺失的局部,使得程序逻辑正确、完好。所填写的代码不超过一条语句(即不能出现分号)。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果的时候才有时机得分。留意:在评卷时运用的输入数据与试卷中给出的实例
2、数据可能是不同的。选手的程序必需是通用的,不能只对试卷中给定的数据有效。对每个题目,要求考生把全部类写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。请不要运用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能运用1.6或更高版本。1. 代码填空 (满分3分)计算蔬菜总价 为了丰富群众菜篮子,平抑菜价,相关局部组织了蔬菜的调运。今某箱中有多个品种的蔬菜。蔬菜的单价(元/公斤)存放在price数组中,蔬菜的重量(公斤)存放在weight数组中。下面的代码计算该箱蔬菜的总价,试完善之。把填空的答案(仅填空处的答案,不包
3、括题面)存入考生文件夹下对应题号的“解答.txt”中即可。public static double getTotal(double price, double weight)double x = 0;for(int i=0; iprice.length; i+)_;return x;2. 代码填空 (满分3分)计算行程低碳生活,有氧运动。骑自行车出行是个好方法。小明为自己的自行车装了个计数器,可以计算出轮子转动的圈数。在一次骑车旅行中,动身时计算器的示数为begin,到达目的地时的示数为end。下列代码计算了小明一共骑行了多远(单位:公里)。其中d表示小明自行车轮子的直径(单位:米)。把填空的
4、答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。public static double getDistance(int begin, int end, double d)return (end-begin) * Math.PI * d * d _; 3. 代码填空 (满分4分)反转的串解决同一个问题往往有很多方法。小刚很宠爱别出心裁。一天他在纸上草草写了一段程序,实现了把串s中的内容反转后放入s2的功能。也就是说,s2最终的内容变成了“”。惋惜草纸出现了一处污损,请补全缺失的局部。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.
5、txt”中即可。String s = 1234567;String s2 = ;for(int i=0; is.length(); i+)s2 = s.charAt(i) + _;System.out.println(s2);4. 代码填空(满分6分)最近间隔 已知平面上的若干点的位置,存入一个List中。如今须要计算全部这些点中,间隔 最近的两个点间的最小间隔 。请补全缺失的代码。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。class MyPointprivate double x; / 横坐标private double y; / 纵坐标pu
6、blic 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 lst)double r = _;int n = lst.size();for(in
7、t i=0; in; i+)for(int j=i+1; jn; 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个交易日后,他盈利的可能性是多少呢?以下程序通过计算机
8、模拟了该过程,一般的输出结果在0.3左右。请填写缺失的代码。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。int N = 10000;int n = 0;for(int i=0; iN; i+)double value = 1000.0;for(int k=0; k _)value = value * 1.1;elsevalue = value * 0.9;if(_) n+;System.out.println(1.0*n/N);6. 代码填空 (满分9分)猜数字很多人都玩过这个嬉戏:甲在心中想好一个数字,乙来猜。每猜一个数字,甲必需告知他是猜大了
9、,猜小了,还是刚好猜中了。下列的代码模拟了这个过程。其中用户充当甲的角色,计算机充当乙的角色。为了能更快地猜中,计算机运用了二分法。阅读分析代码,填写缺失的局部。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。System.out.println(请在心中想好一个数字(1100),我来猜);System.out.println(我每猜一个数字,你要告知我是“猜大了”,“猜小了”,还是“猜中”);Scanner scan = new Scanner(System.in);int v1 = 1;int v2 = 100;for(;)int m = (v1
10、 + 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头母牛, 生出来的母牛三年后,又可
11、以每年生出一头母牛。如此循环下去,请问张教授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 list = new ArrayList();list.add(new Cow();for (int i = 0; i n;
12、 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. 把单词中间有多个空格
13、的调整为1个空格。例如:用户输入:you and me what cpp2019program则程序输出:You And Me What Cpp_2019_program用户输入:this is a 99cat则程序输出:This Is A 99_cat我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由1个或多个空格分隔。假设用户输入的串长度不超过200个字符。要求考生把全部类写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。请不要运用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。
14、不能运用1.6或更高版本。9. 程序设计(满分17分)方阵的主对角线之上称为“上三角”。请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:运用1,2,3.的自然数列,从左上角开场,依据顺时针方向螺旋填充。例如:当n=3时,输出:1 2 36 45当n=4时,输出:1 2 3 49 10 58 67当n=5时,输出: 1 2 3 4 5 12 13 14 6 11 15 7 10 8 9程序运行时,要求用户输入整数n(320)程序输出:方阵的上三角局部。要求格式:每个数据宽度为4,右对齐。要求考生把全部类写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。相
15、关的工程文件不要拷入。请不要运用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能运用1.6或更高版本。10. 程序设计(满分27分)A、B、C、D、E、F、G、H、I、J 共10名学生有可能参与本次计算机竞赛,也可能不参与。因为某种缘由,他们是否参赛受到下列条件的约束: 1. 假设A参与,B也参与; 2. 假设C不参与,D也不参与; 3. A和C中只能有一个人参与; 4. B和D中有且仅有一个人参与; 5. D、E、F、G、H 中至少有2人参与; 6. C和G或者都参与,或者都不参与; 7. C、E、G、I中至多只能2人参与 8. 假设E参与,那么F和G也都参与。
16、 9. 假设F参与,G、H就不能参与 10. 假设I、J都不参与,H必需参与请编程依据这些条件推断这10名同学中参赛者名单。假设有多种可能,则输出全部的可能状况。每种状况占一行。参赛同学按字母升序排列,用空格分隔。比方:C D G J就是一种可能的状况。要求考生把全部类写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。请不要运用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能运用1.6或更高版本。参考答案:前面7个题目简洁这里 略8.import java.util.Scanner;public class Te
17、st8 public String zhuanhua(String s) boolean start=false;char b=s.toCharArray();String s1=;String s2=;String s3=;for(int i=0;i0&bi-1= &bi= )start=false;if(i0&bi-1!= &bi= )start=true;if(bi= &start)|bi!= )s1+=bi;/System.out.println(s1);char c=s1.toCharArray();if(c0=a&c0=z)c0-=a-A;s2+=c0;for(int i=1;i=
18、a&ci=z)ci-=a-A;s2+=ci;continue;s2+=ci;/System.out.println(s2);char d=s2.toCharArray();s3+=d0;for(int i=1;i=a&di-1=A&di-1=0&di=a&di=A&di=0&di-1=9);if(m|n)s3+=_;s3+=di;return s3;public static void main(String args) / TODO Auto-generated method stubScanner sc=new Scanner(System.in);String s=sc.nextLine
19、();System.out.println(new Test8().zhuanhua(s);9.import java.util.Scanner;public class Testtwo public static void main(String args) / TODO Auto-generated method stubScanner sc=new Scanner(System.in);System.out.println(put n!);int n=sc.nextInt();int k=1;int a=new intnn;for(int i=0;in;i+)for(int j=i;jn
20、-1-i*2;j+)aij=k;k+;for(int j=i;jn-i*2-1;j+)ajn-1-i-j=k;k+;for(int j=i;jn-2*i-1;j+)an-1-i-ji=k;k+;if(n-1)%3=0)a(n-1)/3(n-1)/3=k;for(int i=0;in;i+)for(int j=0;jn;j+)if(aij=0)continue;if(aij10)System.out.print(aij+ );else if(aij=0;i-)k=(char) (74-i);if(bi=1)s1+=k+ ;return s1;public void count() Testpai
21、lie tp=new Testpailie();for(int count = 0;count1024;count+)/1. 假设A参与,B也参与;boolean a1 = count/512%2=1(count/256%2=1true:false):true;/2. 假设C不参与,D也不参与;boolean a2= count/128%2=0(count/64%4=0true:false):true;/3. A和C中只能有一个人参与;boolean a3 = (count/512%2+count/128%2)=1true:false;/4. B和D中有且仅有一个人参与;boolean a4
22、= (count/256%2+count/64%2)=2true:false;/6. C和G或者都参与,或者都不参与;boolean a6 = count/128%2=1(count/8%2=1true:false):(count/8%2=0true:false);/7. C、E、G、I中至多只能2人参与 boolean a7 = (count/2%2+count/8%2+count/32%2+count/128%2)=2true:false;/8. 假设E参与,那么F和G也都参与。boolean a8 = count/32%2=1(count/8%4=3true:false):true;/9
23、. 假设F参与,G、H就不能参与boolean a9 = count/16%2=1(count/4%4=0true:false):true; /a8和a9可以无视/10. 假设I、J都不参与,H必需参与boolean a10 = count%4=0(count/4%2=1true:false):true;if(a1&a2&a3&a4&a5&a6&a7&a8&a9&a10)/System.out.println(count);System.out.println(new Testpailie().zhuanhua2(count);public static void main(String args) new Testpailie().count();第 18 页