《2023蓝桥杯高职java试题及部分参考答案.docx》由会员分享,可在线阅读,更多相关《2023蓝桥杯高职java试题及部分参考答案.docx(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、2023年选拔赛java高职考生须知:考试时间为4小时。本试卷包含两种题型:“代码填空”与“程序设计”。总计100分。其中代码填空:3+3+4+6+7+9+10 = 42分程序设计:14+17+27 = 58分填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑 正确、完整。所填写的代码不超过一条语句(即不能出现分号)。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt” 中即可。编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能 运行出正确结果的时候才有机会得分。留意:在评卷时运用的输入数据与试卷中给出的实 例
2、数据可能是不同的。选手的程序必需是通用的,不能只对试卷中给定的数据有效。对每个题目,耍求考生把全部类写在一个文件中。调试好后,存入与考生文件夹下对应 题号的“解答.txt”中即可。相关的工程文件不要拷入。请不要运用package语句。另外,源程序中只能出现JDKL5中允许的语法或调用。不能运用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、:米)。if(aij=0)continue;if(aij10)System.out.print(aij+);else if(aij=0;i-) k=(char) (74-i);if(bi=,l)sl+=k+n M;return si;public void count() Testpailie tp=new Testpailie(); for(int count = 0;count1024;count+) /l.假如A参与,B也参与; boolean al = count/512%2=l?(count/256%2=l?true:false):true;/2 .假如C不参与,D也不参与; boo
5、lean a2= count/128%2=0?(count/64%4=0?true:false):true;3.A和C中只能有一个人参与;boolean a3 = (count/512%2+count/128%2)=l?true:false;/4. B和D中有且仅有一个人参与; boolean a4 = (count/256%2+count/64%2)=2?true:false;/6. C和G或者都参与,或者都不参与;booleana6=count/128%2=1?(count/8%2=l?true:false):(count/8%2=0?true:false);/7. C、E、G、工中至多只
6、能2人参与booleana7=(count/2%2+count/8%2+count/32%2+count/128%2)=2?true:false;/8.假如E参与,那么F和G也都参与。boolean a8 = count/32%2=l?(count/8%4=3?true:false):true;/9.假如F参与,G、H就不能参与boolean a9 = count/16%2=l?(count/4%4=0?true:false):true; a8和a9可以忽视/10.假如工、J都不参与,H必需参与boolean al0 = count%4=0?(count/4%2=1?true:false):t
7、rue;if(al&a 2&a 3&a4&a 5&a 6&a 7&a 8&a 9&a10)/System.out. println(count);System.out.printIn(new Testpailie().zhuanhua2(count);)public static void main(String args) new Testpailie().count();)把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt” 中即可。public static double getDistance(int begin, int end, double d)(
8、return (end-begin) * Math. PI * d * d ;)3.代码填空(满分4分)反转的串解决同一个问题往往有很多方法。小刚很喜爱别出心裁。一天他在纸上草草写了一段程 序,实现了把串s中的内容反转后放入s2的功能。也就是说,s2最终的内容变成了“7654321”。惋惜草纸出现了一处污损,请补全缺失的部分。把填空的答案(仅填空处的答案,不包 括题面)存入考生文件夹下对应题号的“解答.txt”中即可。String s = 1234567”;String s2 = n n;for (int i=0; is.length (); i+) s2 = s . charAt (i) +
9、 ; ) System.out.printIn (s2);4.代码填空(满分6分)最近距离已知平面上的若干点的位置,存入一个List中。现在须要计算全部这些点中,距离最 近的两个点间的最小距离。请补全缺失的代码。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下 对应题号的“解答.txt”中即可。class MyPointprivate double x; / 横坐标 private double y; / 纵坐标public MyPoint(double x, double y) ( this.x = x; this.y = y;)public static double dista
10、nce(MyPoint pl, MyPoint p2) ( double dx = pl.x - p2.x;double dy = pl.y - p2.y;return Math.sqrt(dx*dx + dy*dy);/*1st中含有若干个点的坐标返回其中距离最小的点的距离*/public static double getMinDistance(List 1st) (double r = ;int n = 1st.size ();for (int i=0; in; i+) (for (int j=i + l; jn; j+) (MyPoint pl = 1st.get(i);MyPoint
11、 p2 = 1st.get(j);double d = MyPoint.distance(pl,p2);if ( d r ) ; )return r;)5_代码填空(满分7分)股票风险股票交易上的投机行为往往非常危急。假设某股票行为非常怪异,每天不是涨停(上涨 10%)就是跌停(下跌10%)。假设上涨和下跌的概率均等(者B是50%)。再假设交易过程没 有任何手续费。某人在起先的时候持有总价值为X的该股股票,那么100个交易日后,他盈 利的可能性是多少呢?以下程序通过计算机模拟了该过程,一般的输出结果在0.3左右。请填写缺失的代码。 把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应
12、题号的“解答.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+;)(1.0*n/N);6.代码填空(满分9分)猜数字很多人都玩过这个嬉戏:甲在心中想好一个数字,乙来猜。每猜一个数字,甲必需告知 他是猜大了,猜小了,还是刚好猜中了。下列的代码模拟了这个过程。其中用户充当甲的角 色,计算机充当乙的角色。为了能更快地猜中,计算机运用了二分法。阅读分
13、析代码,填写缺失的部分。把填空的答案(仅填空处的答案,不包括题面)存入 考生文件夹下对应题号的“解答.txt”中即可。System. out .printIn (请在心中想好一个数字(1100),我来猜“);Systm.。ut.println(“我每猜一个数字,你要告知我是“猜大了”,“猜小了”,还是“猜中” n);Scanner scan = new Scanner(System.in);int vl = 1;int v2 = 100;for(;)(int m = (vl + v2)/2;Systemout println (我猜是: + m);System. out .printIn.猜得
14、太大了“);System. out .print In (112.猜得太小 了”);System. out .printIn (3 猜中! n);System, out .print (请选择:);int user = Integer.parseInt(scan.nextLine ();if (user=3) break;if(user=l) ;if(user=2) ;)7 .代码填空(满分10分)基因牛张教授采纳基因干预技术胜利培育出一头母牛,三年后,这头母牛每年会生出I头母牛, 生出来的母牛三年后,又可以每年生出一头母牛。如此循环下去,请问张教授n年后有多少 头母牛?以下程序模拟了这个过程
15、,请填写缺失的代码。把填空的答案(仅填空处的答案,不包 括题面)存入考生文件夹下对应题号的“解答中即可。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; i+) int cowCount = list.size ();fo
16、r (int j = 0; j cowCount; j+) (Cow cow = list.get(j) .afterYear ();if (cow != null)list . add(cow); ) )System. out .printin (n + “年后,共有:” + list. size (); ) )8 .程序设计(满分14分)在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用 户输入的串进行处理。详细规则如下:1 .把每个单词的首字母变为大写。2 .把数字与字母之间用下划线字符(_)分开,使得更清楚3 .把单词中间有多个空格的调整为I个空格。例如:用户
17、输入:you and me what cpp2023program则程序输出:You And Me What Cpp_202 3_program 用户输入: this is a 99cat 则程序输出: This Is A 99_cat我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个 单词间由1个或多个空格分隔。假设用户输入的串长度不超过200个字符。要求考生把全部类写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解 答.txt”中即可。相关的工程文件不要拷入。请不要运用package语句。另外,源程序中只能出现JDK1.5中允许的语法或调用。不能运用L6或
18、更高版本。9 .程序设计(满分17分)方阵的主对角线之上称为“上三角二请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则是:运用I, 2, 3. 的自然数列,从左上角起先,依据顺时针方向螺旋填充。例如:当n=3时,输出: 12 36 45当n=4日寸,输出:12 3 49 10 58 67当n=5时,输出:1 2 3 4 512 13 14 611 15 710 8 9程序运行时,要求用户输入整数n (320) 程序输出:方阵的上三角部分。要求格式:每个数据宽度为4,右对齐。要求考生把全部类写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解 答.txt”中即可。相关的工程文件不
19、要拷入。请不要运用package语句。另外,源程序中只能出现JDKL5中允许的语法或调用。不能运用L6或更高版本。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也都参与。9 .假如F参与,G、H就不能参与1
20、0 .假如I、J都不参与,H必需参与请编程依据这些条件推断这10名同学中参赛者名单。假如有多种可能,则输出全部的 可能状况。每种状况占一行。参赛同学按字母升序排列,用空格分隔。比如:C D G J就是一种可能的状况。要求考生把全部类写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解 答.txt”中即可。相关的工程文件不要拷入。请不要运用package语句。另外,源程序中只能出现JDKL5中允许的语法或调用。不能运用1.6或更高版本。参考答案:前面7个题目简洁这里略import java.util.Scanner;public class Test8 public String zhua
21、nhua(String s) boolean start=false;char b=s.toCharArray();String sl=,H;String s2=;String s3=,H;for(int i=0;i0&bi=l=, &bi= ) start=false;)if(i0&bi-l!=, &bi= ) start=true;if(bi= &start)|bi!=) sl+=bi;)/System.out.println(sl);char c=sl.toCharArray();if(c0=a,&c0=,z)(c0-=,a,-,A,;)s2+=c0;for(int i=l;i=,a,&
22、ci=,z,) ci-=,a,-,A,;s2+=ci;continue;) s2+=ci;)/System.out.println(s2);char d=s2.toCharArray();s3+=d0;for(int i=l;i=Ia,&di-l=,A,&di-l=0,& &di=laI&di=lA,&di=I0,&di-lif(m|n) s3+=_”;)s3+=di;)return s3;)public static void main(String args) / TODO Auto-generated method stub Scanner sc=new Scanner(System.i
23、n); String s=sc.nextLine();System.out.printIn(new Test8().zhuanhua(s);)import java.util.Scanner;public class Testtwo public static void main(String args) / TODO Auto-generated method stub Scanner sc=new Scanner(System.in); System.out.printIn(put n!);int n=sc.nextlnt();int k=l;int a=new intnn;for(int i=0;in;i+) for(int j=i ;jn-l-i*2;j+)aij=k; k+;)for(int j=i;j+)ajn-l-i-j=k; k+;)for(int j=i;jn-2*i-l;j+)an-l-i-ji=k; k+;)if(n-l)%3=0)a(n-l)/3(n-l)/3=k;for(int i=0;in;i+)