欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    蓝桥杯模拟试题java本科组试题及复习资料.docx

    • 资源ID:55668773       资源大小:19.43KB        全文页数:6页
    • 资源格式: DOCX        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    蓝桥杯模拟试题java本科组试题及复习资料.docx

    2021 模拟 java 本科注意:本套模拟题主要模拟命题形式及考核范围。真实竞赛题的数量、难度可能及此套模拟题有差异。说明:本试卷包含两种题型:“代码填空及“程序设计。填空题要求参赛选手在弄清给定代码工作原理的根底上填写缺失的局部,使得程序逻辑正确、完整。所填写的代码不多于一条语句即不能出现分号。编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。注意:在评卷时使用的输入数据及试卷中给出的实例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。1. 代码填空总分值2分在A B C D E F 六人中随机抽取3人中奖,要求中奖人不能重复。请完善以下代码:public class MyTestpublic static void main(String args)Vector a = new Vector();for(char i='A' i<='F' i+) a.add("" + i);for(int k=0; k<3; k+)int d = _;System.out.println(a.remove(d);new Random().nextInt(6-k) /(int)(Math.random()*(6-k)2. 代码填空总分值3分不同进制的数值间的转换是软件开发中很可能会遇到的常规问题。下面的代码演示了如何把键盘输入的3进制数字转换为十进制。试完善之。BufferedReader br = new BufferedReader(new InputStreamReader(System.in);String s = br.readLine();int n = 0;for(int i=0; i<s.length(); i+)char c = s.charAt(i);if(c<'0' | c > '2') throw new RuntimeException("Format error");n = _;System.out.println(n);3*n+c-'0'3. 代码填空总分值4分有如下程序,完成的功能为:找出数组中的最大元素。请填写程序的中空白,使程序运行正确。public class test public static void main(String args) int array=0,34,67,90,21,-9,98,1000,-78;System.out.println(new test().findMax (array, 0);public int findMax(int array,int index)if(array=null | array.length=0)return 0;int max=array0;while(index<array.length-1) max=_if(max<arrayindex) max= arrayindex;return max;max>array+index?max:arrayindex4. 代码填空总分值5分电视台开宝箱节目:打进 的人可以开启一个宝箱。箱子中有一件礼品。礼品是iphone的机率为1/12;是mp3 的机率为1/5;是洗衣粉的机率为1/2;剩余是KFC优惠券。每次打进 ,宝箱会重置。以下程序模拟了该抽奖过程。请填写缺失的局部。public static void main(String args) int i = (int) (Math.random() * _);if (i < 5) System.out.println("恭喜中了:iphone手机");else if (i < 17) System.out.println("恭喜中了:mp3"); else if (i < 47) System.out.println("恭喜中了:洗衣粉"); else System.out.println("恭喜中了:KFC优惠券");605. 代码填空总分值6分以下代码求出一个二进制串中连续的1或连续的0出现的最大次数。请填缺失代码。例如:s = “1011那么返回:4又例如:s=0111100000”那么返回:5public static int getMaxContinuity(String s)int max_1 = 0; int max_0 = 0; int n_1 = 0; / 当前1连续的次数int n_0 = 0; / 当前0连续的次数for(int i=0; i<s.length(); i+)if(s.charAt(i)='0')n_0+;_;elsen_1+;_;if(n_1 > max_1) max_1 = n_1;if(n_0 > max_0) max_0 = n_0;return max_1>max_0? max_1 : max_0);n_1=0 n_0=06. 代码填空总分值9分以下代码把16进制表示的串转换为3进制表示的串。试完善之。例如:x=“5那么返回:“12又例如:x=F那么返回:“120private static int getRealValue(char x)if(x>='0' && x<='9') return x-'0'if(x>='a' && x<='f') return x-'a'+10;if(x>='A' && x<='F') return x-'A'+10;return 0;public static String jin_zhi_16_3(String x)int n = 0; / 累加真值for(int i=0; i<x.length(); i+)n = _ + getRealValue(x.charAt(i); / 填空String t = ""for(;)if(n=0) break;t = (n % 3) + t; _; / 填空return t;16*n n/=37. 代码设计总分值5分625这个数字很特别,625的平方等于390625,刚好其末3位是625本身。除了625,还有其它的3位数有这个特征吗?请编写程序,寻找所有这样的3位数:它的平方的末3位是这个数字本身。输出结果中,从小到大,每个找到的数字占一行。比方那个625就输出为:625public static void main(String args) int temp = 0;for(int i = 100; i <= 999; +i)temp = i*i;temp %= 1000;if(temp = i)System.out.println(i);8. 代码设计总分值11分考虑方程式:a3 + b3 = c3 + d3其中:“表示乘方。a、b、c、d是互不一样的小于30的正整数。这个方程有很多解。比方:a = 1,b=12,c=9,d=10 就是一个解。因为:1的立方加12的立方等于1729,而9的立方加10的立方也等于1729。当然,a=12,b=1,c=9,d=10 显然也是解。如果不计abcd交换次序的情况,这算同一个解。你的任务是:找到所有小于30的不同的正整数解。把a b c d按从小到大排列,用逗号分隔,每个解占用1行。比方,刚刚的解输出为:1,9,10,12不同解间的顺序可以不考虑。public static void main(String args) int arr = new int31;for(int i = 1; i <= 30; +i)arri = (int)i*i*i;for(int a = 1 ; a <= 27; +a)for(int b = a+1 ; b <= 28; +b)for(int c = b+1 ; c <= 29; +c)for(int d = c+1 ; d <= 30; +d)if(arra + arrd)=(arrb + arrc)System.out.println(a + "," + b + "," + c + "," + d);9. 代码设计总分值18分整数的分划问题。 如,对于正整数n=6,可以分划为: 6 5+1 4+2, 4+1+1 3+3, 3+2+1, 3+1+1+1 2+2+2, 2+2+1+1, 2+1+1+1+1 1+1+1+1+1+1+1 现在的问题是,对于给定的正整数n,编写算法打印所有划分。用户从键盘输入 n 范围110程序输出该整数的所有划分。import java.util.*;public class Test private static LinkedList<String> str=new LinkedList<String>();public static void main(String args)int input = 10;Test.integerDivide(input, input);public static void integerDivide(int limit, int max)if(1 = max) str.add(String.valueOf(1);formatResult(str);str.removeLast();return;if(0 = max) formatResult(str);return;for(int i = limit ; i >= 1; -i)if(i <= max)str.add(String.valueOf(i);integerDivide(i, max-i);str.removeLast();public static void formatResult(LinkedList<String> s)System.out.print(s.getFirst();for(int i=1;i<s.size();i+)System.out.print("+"+s.get(i);System.out.println();10. 代码设计总分值20分一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,那么称其为花朵数。例如:当N=3时,153就满足条件,因为 13 + 53 + 33 = 153,这样的数字也被称为水仙花数其中,“表示乘方,53表示5的3次方,也就是立方。当N=4时,1634满足条件,因为 14 + 64 + 34 + 44 = 1634。当N=5时,92727满足条件。实际上,对N的每个取值,可能有多个数字满足条件。4491773991460386973071284686432程序的任务是:求N=21时,所有满足条件的花朵数。注意:这个整数有21位,它的各个位数字的21次方之和正好等于这个数本身。如果满足条件的数字不只有一个,请从小到大输出所有符合条件的数字,每个数字占一行。因为这个数字很大,请注意解法时间上的可行性。要求程序在3分钟内运行完毕。import java.math.BigInteger; import java.util.Arrays; public class Test private static int num = 21; private static BigInteger table = new BigInteger10; private static BigInteger store=new BigInteger1000; private static int nTotal=0; private static int nums; public static void main(String args) for (int i = 0; i < 10; i+) tablei = BigInteger.valueOf(i).pow(num);/long time = System.currentTimeMillis(); for (int i = 0; i < 10; i+) tablei = BigInteger.valueOf(i).pow(num); nums = new intnum; for(int j=0;j<10;j+) find(nums, 0, j); if(0=nTotal) System.out.println("没有符合条件的数!"); else Arrays.sort(store,0,nTotal);for(int i=0;i<nTotal;i+)System.out.println(storei); /time = System.currentTimeMillis() - time; /System.out.println(time / 1000.0 + "s"); public static void find(int nums, int level, int num) numslevel = num; if (level = nums.length - 1) BigInteger big = sum(nums);/当level为20时,表示nums数组下标为20即21位数字满后求和; int temp = getArray(big);/将得到的21位数和转化为整形数组;并返回; if (check(nums, temp)/测试是否是21位,并将数组复制给nums数组; storenTotal=big;/保存big数; nTotal+; return; for (int i = num; i < 10; i+)/递归;查找21位数字符合条件的数; find(nums, level + 1, i); public static boolean check(inta1, int a2) if (a1.length != a2.length) return false; Arrays.sort(a2); return Arrays.equals(a1, a2); * 4491773991460386973071284686432 * 得到nums数组的数做为table下标的数的和。并返回; * param nums * return public static BigInteger sum(int nums) BigInteger sum = BigInteger.ZERO; for (int i = 0; i < nums.length; i+) sum = sum.add(tablenumsi); return sum; * 将BigInteger转化为int类型数据; * param big * return public static int getArray(BigInteger big) String s = String.valueOf(big); char ch = s.toCharArray(); int res = new intch.length; for (int i = 0; i < ch.length; i+) resi = chi - '0' return res; 第 6 页

    注意事项

    本文(蓝桥杯模拟试题java本科组试题及复习资料.docx)为本站会员(叶***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开