蓝桥杯java试题及答案_第1页
蓝桥杯java试题及答案_第2页
蓝桥杯java试题及答案_第3页
蓝桥杯java试题及答案_第4页
蓝桥杯java试题及答案_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、蓝桥杯java试题及答案【篇一:蓝桥杯java历年真题(共129道题目及答案)】 这样的,如果给定n个不同字符,将这n个字符全排列,最终的结 果将会是n!种。如:给定a、b、c三个不同的字符,则结果为: abc acb、bac、bca、cab cba共 3!=3*2=6 种情况。package questiord_9;有问题。-广 import java.util.scan ner;import java.util.vector;public class questiord public static long count=0;private void fullpermutation(vect

2、orcharactersourse, vectorcharacter result) if(sourse.size()=0)for (int i = 0; i result.size(); i+) system.out. print(result.elementat(i);system.out. print(n);count+;return;for (int i = 0; i sourse.size(); i+) vectorcharactertsourse=new vectorcharacter(sourse); vectorcharactertresult=new vectorcharac

3、ter( result); tresult.add(sourse.elementat(i);tsourse.remove(i);new question1().fullpermutation(tsourse, tresult);public static void main(stringQ args) scanner seanner=new scanner(systemn); int n=scanner.nextint();vectorcharacter sourse=new vectorcharacter(); vectorcharacter result=new vectorcharact

4、er();for (int i = 0; i n; i+) sourse.add(char)(a-i-i);new questiord().fullpermutation(sourse, result); system.out. pri ntln (questionl.count);*/方法二import java.util.arraylist;import java.util.iterator;import java.utilinkedhashset;import java.util.list;import java.util.sca nn er;import java.util.set;p

5、ublic class demo03 II去掉重复元素,放入lispublic static void removeduplicate(string s,setcharacter lis) for(char x:s.tochararray() lis.add(x);II为方便操作将sets转lispublic static void convert(listcharacter lis,setcharacter sets) iteratorcharacter iter = sets.iterator();while(iter.hasnext() lis.add(iter.next();II检测符

6、合条件的元素组合public static void check(setcharacter sets) listcharacter lis = new arraylistcharacter(); convert(lis,sets); II 为方便操作将 sets 转 lis stringbuffer sb = new stringbuffer();for(int i=0;ilis.size()-2;i+)for(int j=i+1 ;j+1 lis.size();j+)/ 向后添加两位,所以 j+1 lis.size() for(int k=j+1;klis.size();k+)sb.appe

7、 nd(lis.get(i); sb.append(lis.get(j); sb.append(lis.get(k);system.out.println(sb); II 输出组合 sb.setlength(O); II 清空public static void main(string args)scanner scan = new scanner(system.in); system.out.println(输入串(不夭于30个李符)。); string s = scan.nextline();setcharacter sets = new linkedhashsetcharacter();

8、 removeduplicate(s,sets); II 去掉重复元素,放入 lis check(sets); II检测符合条件的元素组合运行结果:输入串(不大于30个字符)。abedabcabdacd2串的简单处理 串的处理 在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:把每个单词的首字母变为大写。把数字与字母之间用下划线字符(.)分开,使得更清晰把单词中间有多个空格的调整为1个空格。例如: 用户输入:you and me what cpp2005program则程序输出:you and me what cpp_2005_pro

9、gram 用户输入:this is a99cat则程序输出:this is a 99_cat我们假设:甬户输入的串中只有小写字母,空格和数字,不含其它 的字母或符号。每个单词间由1个或多个空格分隔。假设用户输入的串长度不超过200个字符。package question1_9;import java.util.sca nner; import java.util.vector;public class question2 public static void main(string args) scanner seanner=new seanner(system.in); string str

10、ing=scanner.nextline(j;vectorcharactervector=new vectorcharacterf); for (int i = 0; i stringength(); I+) vector.add(string.charat(i);tryint index=0;while (indexvector.size() if(in dex=Ovector.elementat(i ndex尸avector.elementat(i ndex)=z )vector.set(index, (char)(vector.elementat(index)-(a-a);else if

11、(vector.elementat(index-1 )=vector.eleme ntat(in dex)=)vector, remove(index);index-;else if (vector.elementat(index-1 )=(vector,elementat(index)=avector.elementat(index)=z) vector.set(index, (char)(vector.elementat(index)-(a-ajj); elseif(vector.elementat(i ndex)=avector.elementat(i ndex)=z)(vector.

12、elemen tat(index-1 )=Ovector.elementat(i ndex-1 )=9) vector.add(i ndex, _);in dex+;elseif(vector.elementat(index-1 )=avector.eleme ntat(in dex-1 )=z)(vector.elementat(i ndex)=Ovector.elementat(i ndex)=9) vector.add(index,index+;index+;for (int i = 0; i vector.size(); i+) system .o utprint(vector.ele

13、mentat(i);system.out. pri ntln(); catch (arrayindexoutofboundsexception e) II todo: handle exception运行结果:you and me what cpp2005program you and me what cpp_2005_program方法二:import java.util.scanner;import java.util.regex.matcher;import java.util.regex.pattern;本题目即是要求程序对用户输入的串进行处理。具体规则如下: *1.把每个单词的首字母

14、变为大写。*2.把数字与字母之间用下划线字符(_)分开,使得更清晰*3.把单词中间有多个空格的调整为1个空格。水我们假设:用户输入的串中只有小写字母,空格和数字,不含其它 的字母或符号。每个单词间由1个或多个空格分隔。.假设用户输入的串长度不超过200个字符。public class simplestring public static void main(string argsQ) string str=;str=(new seanner(system.in).nextline();string Qstr1=str.split(+);for(inti=0;istr1 .Iength;i+)s

15、tr1 i=string.valueof(char)(str1 i.charat(0) +(a-a)+str1 i.substring(1 );string s=;for(int i=0;istrl.length-1;i+)/system.out.print(str1 l+ );s+=str1 i+ ;s+=str1 str1.length-1;matcher m=p.matcher(s); string fln=;int st=O;while(m.find()int start=m.start();int end=m.end();fin+=s.substring(st,start); if(

16、s.charat(start-1)!= )fin+=_; fin+=m.group(1);st=end;if(sts .len gth()fin+=s.substri ng(st);system.out. printl n(fin);方法三:import java.util.sca nn er;import java.util.regex.matcher;import java.util.regex.pattern;public class demo02 public static void print(stringQ s)for(int i=0;is.length-1;i+) system.

17、out. pri nt(si+ );system.out. pri ntln(ss.l ength-1);public static void main(string args) scanner sean = new seanner(system.in); string s = sean.nextline();【篇二:2011蓝桥杯高职java试题及部分参考答案】=txt考生须知:考试时间为4小时。本试卷包含两种题型:代码填空”与“程序设计”。总计20分。其中代码填空:3+3+4+6+7+9+10 = 42分程序设计:14+17+27 = 58分填空题要求参赛选手在弄清给定代码工作原理的基础上

18、填写缺失的 部分,使得程序逻辑正确.完整。所填写的代码不超过一条语句(即不能出现分号)。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下 对应题号的“解答txt呻即可。编程题要求选手设计的程序对于给定 的输入能给出正确的输出结果。考生的程序只有能运行出正确结果 的时候才有机会得分。注意:在评卷时使用的输入数据与试卷中给 出的实例数据可能是不同的。选手的程序必须是通用的,不能只对 试卷中给定的数据有效。对每个题目,要求考生把所有类写在一个文件中。调试好后,存入 与考生文件夹下对应题号的“解答txt”中即可。相关的工程文件不要 另夕源程序中只能出现jdk1.5允许的语法或调用。不能使用

19、16或更高版本。4代码填空(满分3分)计算蔬菜总价为了丰富群众菜篮子,平抑菜价,相关部分组织了蔬菜的调运。今 某箱中有多个品种的蔬菜。蔬菜的单价(元/公斤)存放在price数 组中,蔬菜的重量(公斤)存放在weight数组中。下面的代码计算 该箱蔬菜的总价,试完善之。把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下 对应题号的壮解答txt”中即可。2代码填空(满分3分)计算行程低碳生活,有氧运动。骑自行车出行是个好主意。小明为自己的自 行车装了个计数器,可以计算出轮子转动的圈数。在一次骑车旅行 中,出发时计算器的示数为begin,到达目的地时的示数为end。下 列代码计算了小明一共骑

20、行了多远(单位:公里)。其中d表示小 明自行车轮子的直径(单位:米)。把填空的答案(仅填空处的答 案,不包括题面)存入考生文件夹下对应题号的栏解答txt冲即可。public static double getdistance(int begin, int end, double d) return (end-begin) * math.pi * d * d; public staticdouble gettotal(double price, doubleQ weight) double x = 0; for(int i=0; ipriceength; i+) return x;代码填空(满分

21、4分)反转的串解决同一个问题往往有许多方法。小刚很喜欢别出心裁。一天他在 纸上草草写了一段程序,实现了把串s中的内容反转后放入S2的功 能。也就是说,S2最后的内容变成了“7654321”。可惜草纸出现了一处污损,请补全缺失的部分。把填空的答案(仅 填空处的答案,不包括题面)存入考生文件夹下对应题号的“解 答.txt”中即可。代码填空(满分6分)最近距离已知平面上的若干点的位置,存入一个list中。现在需要计算所有 这些点中,距离最近的两个点间的最小距离。请补全缺失的代码。把填空的答案(仅填空处的答案,不包括题面) 存入考生文件夹下对应题号的壮解答txt冲即可。class mypointpri

22、vate double x; II 横坐标 private double y; II 纵坐标 public static double distance(mypoint p1, mypoint p2) fist 中含有若干个点的坐标返回其中距询最小的点的距离*/ publicstatic double getmindistance(listmypoint 1st) double dx = p1.x - p2.x; double dy = p1.y - p2.y;return math.sqrt(dx*dx + dy*dy); this.x = x; this.y = y; public myp

23、oint(double x, double y) string s = 1234567; string s2 = ; for(int i=0; is.length(); i+) system.out.println(s2); s2 = s.charat(i) +; double r =; int n = lst.size(); for(int i=0;in; i+) return r;for(int j=i+1; jn; j+) mypoint p1 = Ist.get(i);mypoint p2 = lst.get(j); double d = mypoint.distance(p1,p2)

24、;if( d r);代码填空(满分7分)股票风险股票交易上的投机行为往往十分危险。假设某股票行为十分怪异, 每天不是涨停(上涨10%)就是跌停(下跌10%)。假设上涨和下 跌的概率均等(都是50%) o再假设交易过程没有任何手续费。某 人在开始的时候持有总价值为X的该股股票,那么100个交易日后, 他盈利的可能性是多少呢?以下程序通过计算机模拟了该过程,一般的输出结果在0.3左右。请填写缺失的代码。把填空的答案(仅填空处的答案,不包括题面) 存入考生文件夹下对应题号的“解答txt ”中即可。代码填空(满分 9 分)int n = 10000; int n = 0; for(int i=0; i

25、n; i+) system.out.println(1.0*n/n); double value = 1000.0; for(int k=0; k100; k+) if() n+;if(math.random() ) else value = value * 0.9; value =value * 1.1;猜数字很多人都玩过这个游戏:甲在心中想好一个数字,乙来猜。每猜一 个数字,甲必须告诉他是猜大了,猜小了,还是刚好猜中了。下列 的代码模拟了这个过程。其中用户充当甲的角色,计算机充当乙的 角色。为了能更快地猜中,计算机使用了二分法。阅读分析代码,填写缺失的部分。把填空的答案(仅填空处的答案,

26、不包括题面)存入考生文件夹下对应题号的“解答饮忙中即可。代码填空(满分40分)基因牛张教授采用基因干预技术成功培养出一头母牛,三年后,这头母牛 每年会生出1头母牛,生出来的母牛三年后,又可以每年生出一头 母牛。如此循环下去,请问张教授n年后有多少头母牛?以下程序模拟了这个过程,请填写缺失的代码。把填空的答案(仅 填空处的答案,不包括题面)存入考生文件夹下对应题号的“解 答.txt”中即可。public static class cowprivate int age; public cow afteryear() public static void showtotalcownum(int n)

27、 listcow list = new arraylistcow(); list.add(new cow(); age+; return age 2 ? new cow(): ; system.out.println(请在心中想好一个薮字(1*100),我来猜);system.out.println(我每猜一个数字,你要告 诉我是猜大了”,“旃小了还是“猜中”);scanner scan = new scanner(systemn); int v1 = 1; int v2 = 100; for(;) int m = (v1 + v2)/2; system.out.println(我猜是:+ m

28、);system.out.println(1.猜得太大了); system.out.println(2.猜得太小T); system.out.println(3.猜中! ); system.out.print(请选择:);int user = integer.parseint(scan.nextline(); if(user=3) break;if(user=1); if(user=2);程序设计(满分14分)在实际的开发工作中,对字符串的处理是最常见的编程任务。本题 目即是要求程序对用户输入的串进行处理。具体规则如下:把每个单词的首字母变为大写。把数字与字母之间用下划线字符(_)分开,使得更

29、清晰把单词中间有多个空格的调整为1个空格。用户输入:you and me what cpp2005program 则程序输出:you and me what cpp_2005_program用户输入:this is a99cat则程序输出:this is a 99_cat我们假设:有户输入的串中只有小写字母,空格和数字,不含其它 的字母或符号。每个单词间由1个或多个空格分隔。假设用户输入的串长度不超过200个字符。要求考生把所有类写在一个文件中。调试好后,存入与考生文件夹 下对应题号的“解答txt”中即可。相关的工程文件不要拷入。请不要 package另外,源程序中只能出现jdk1.5中允许的

30、语法或调用。不能使用 46或更高版本。程序设计(满分仃分)方阵的主对角线之上称为上三角” O请你设计一个用于填充n阶方阵的上三角区域的程序。填充的规则 是:使用仁2, 3的自然数列,for (inti = 0;i n; i+) system.out.printlnfn + 年后,共有:+ list.size();int cowcount = list.size(); for (int j = 0; j cowcount; j+) cow cow = list.get(j).afteryear(); if (cow != null) ;list.add(cow);【篇三:蓝桥杯java历年真题及

31、答案整理(闭关一个月, 呕心沥血整理出来的)】理出来的)4算法是这样的,如果给定n个不同字符,将这n个字符全排列, 最终的结果将会是n!种。如:给定a、b、c三个不同的字符,则结果为:abc acb bac bca cab cba 共3!=3*2=6种情况。package question1_9;import java.util.scanner;import java.util.vector;public class questiord public static long count=0;private void fullpermutation(vectorcharactersourse,

32、vectorcharacter result) if(sourse.size()=0)for (int i = 0; i result.size(); i+) system.out. pri nt(result.elementat(i);system.out. pri nt(n);count+;return;for (int i = 0; i sourse.size(); i+) vectorcharactertsourse=new vectorcharacter(sourse); vectorcharactertresult=new vectorcharacter( result); tre

33、sult.add(sourse.elementat(i);tsourse.remove(i);new question1().fullpermutation(tsourse, tresult);public static void main(string| args) scanner seanner=new scanner(system.in);int n=scanner.nextint();vectorcharacter sourse=new vectorcharacter(); vectorcharacter result=new vectorcharacter();for (int i

34、= 0; i n; i+) sourse.add(char)(a+i);2. new question1().fullpermutation(sourse,result);system.out.println(question1.count);串的简单处理 串的处理在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:把每个单词的首字母变为大写。把数字与字母之间用下划线字符(.)分开,使得更清晰把单词中间有多个空格的调整为1个空格。例如:用户输入:you and me what cpp2005program则程序输出:you and me

35、 what cpp_2005_program用户输入:this is a99cat则程序输出:this is a 99_cat我们假设:厉户输入的串中只有小写字母,空格和数字,不含其它 的字母或符号。每个单词间由1个或多个空格分隔。假设用户输入的串长度不超过200个字符。package question 1_9;import java.util.scanner; import java.util.vector;public class question2 public static void main(stringn args) scanner seanner=new scanner(syst

36、emn); string string=scanner.nextline(j; vectorcharactervector=new vectorcharacter(); for (int i = 0; i stringdength(); i+) vector.add(string.charat(i);tryint index=0;while (indexvector.size() if(ind ex=Ovector.elementat(i ndex)=avector.elementat(index)=z )vector.set(index, (char)(vector.elementat(in

37、dex)-(a-a);else if(vector.elementat(index-1 )= vector.elementat(index)= ) vector. remove(i ndex);in dex-;else if (vector.elementat(index-1)=(vector.elementat(index)=avector.elementat(index)=z) vector.set(index, (char)(vector.elementat(index)-(a-ajj);elseif(vector.elementat(index)=avector.elementat(i

38、 ndex)=z)(vector. elementat(i ndex-1 )=0vector.elementat(index-1 )=9) vector.add(i ndex,;index+;elseif(vector.elementat(i ndex-4 )=avector.elementat(i ndex )=z)(vector.eleme ntat(index)=Ovector.eleme ntat(index)=9) vector.add(index, _);in dex+;index+;for (int i = 0; i vector.size(); i+) system.out.

39、print(vector.elementat(i);system.out. pri ntln(); catch (arrayindexoutofboundsexception e) todo: handle exception运行结果:you and me what cpp2005programyou and me what cpp_2005_program3.猜算式-看下面的算式: xx 它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。但目前的限定是:这9个方块,表示9的9个数字,不包含0。 该算式中1至9的每个数字出现且只出现一次!比如:46 x79

40、 = 23 x 15854 x69 = 27 x 13854 x93 = 27 x 186请编程,输出所有可能的情况!注意:左边的两个乘数交换算同一方案,不要重复输出!不同方案的输出顺序不重要package question1_9;import java.util.arraylist;import java.util.list;import java.util.scanner;import java.util.vector;public class question3 public static long count=0;public static listvectorcharacter filtered no nred undan tresults; private static boolean isfilter(vectorcharacter result) int a=(result.elementat(0)-0)*10+(result.elementat(1 )-0);int b=(result.elementat(2)-0)*10+(result.elementat(3)-0);int c=(result.elementat(4)-0)*10+(resu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论