您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 第五届蓝桥杯校内选拔赛试题java组
第五届“蓝桥杯”全国软件和信息技术专业人才大赛校内选拔赛试题(Java组)第一部分:准备工作:1、在D:盘中建立一个以自己“学号+姓名”命名的考生文件夹。如:学号:123456,姓名:张三,则考生文件夹为:123456张三2、答题时:(1)填空题的答案全部写在一个记事本(.txt)文件中,文件名为“tk_姓名的首字母”。如:姓名:张三,则文件名为“tk_zs.txt”(2)编程题,每个小题一个源文件,每道题的源程序文件名为:“姓名的首字母+题号”。如:姓名:张三,第1小题,源程序文件名为“zs1.java”3、答题结束时,请把填空题答案文件和所有的源程序文件复制到您的考生文件夹中,再把考生文件夹复制到“Student:\蓝桥杯”中(即student盘的蓝桥杯目录中)。第二部分:试题一、填空题:(每空5分,共50分)1、素数问题素数是指一个只能被1和它本身整除的数,在数论中占有重要的研究地位,在当代密码学中也被广泛应用。输入:取值范围输出:该范围内的最大素数importjava.util.Scanner;importjava.math.*;publicclassAAA{publicstaticintjudgeis(inta){inti;for(i=2;iMath.sqrt(a);i++){if(【1】____a%i==0__________){return0;}}return1;}publicstaticvoidmain(Stringargs[]){intn;Scannerinput=newScanner(System.in);n=input.nextInt();while(【2】___judgeis(n)==0___________){n--;}System.out.print(Themaxprimenumberis+n);}}结果:输入:100输出:Themaxprimenumberis97.2、下面程序段的执行结果是【3】__12345____________publicclassMyClass{inta[]={1,2,3,4,5};voidout(){for(intj=0;ja.length;j++)System.out.print(a[j]+);}publicstaticvoidmain(String[]args){MyClassmy=newMyClass();my.out();}}3、求最大数约数求最大数问555555的约数中最大的三位数是多少?请填写缺失的代码部分。publicclassTest3{publicstaticvoidmain(Stringargs[]){getMaxYUESHU();}publicstaticvoidgetMaxYUESHU(){for(inti=999;i99;i--){if(【4】_555555%i==0______){System.out.println(maxyeushu=+i);return;}}System.out.println(noone);}}4、计算蔬菜总价为了丰富群众菜篮子,平抑菜价,相关部分组织了蔬菜的调运。今某箱中有多个品种的蔬菜。蔬菜的单价(元/公斤)存放在price数组中,蔬菜的重量(公斤)存放在weight数组中。下面的代码计算该箱蔬菜的总价,试完善之。publicstaticdoublegetTotal(double[]price,double[]weight){doublex=0;for(inti=0;i【5】__price.length______;i++){x=x+price[i]*weight[i];}returnx;}5、有如下程序借书方案知多少小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?publicclassTest5{publicstaticvoidmain(Stringargs[]){intcount=0;System.out.println(不同的借书方法是:);for(inta=1;a=5;a++)for(intb=1;b=5;b++)for(intc=1;c=5;c++){if(【6】a!=b&&c!=a&&c!=b){System.out.printf(++count%8!=0?%2d:%d,%d,%d:%2d:%d,%d,%d\n,count,a,b,c);}}}}6、该存多少钱假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中的年底取出1000元,到第五年时刚好取完,请算出他存钱时应存入多少。publicclassTest13{publicstaticvoidmain(Stringargs[]){doubletotal=0.0;for(inti=0;【7】______i5________;i++)//total=(total+1000)/(1+12*0.0063);System.out.printf(Hemustsave%6.2faffirst.\n,total);}}7、水仙花数所谓水仙花数是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个水仙花数,因为153=1的三次方+5的三次方+3的三次方。以下程序打印出所有的水仙花数,请补充完整程序。publicclassabc{publicstaticvoidmain(String[]args){intb1,b2,b3;for(intm=101;m1000;m++){b3=【8】__m/100________;//求百位数b2=m%100/10;b1=【9】__m%100%10________;//求个位数if((b3*b3*b3+b2*b2*b2+b1*b1*b1)==m){System.out.println(m+是一个水仙花数);}}}}8、分析以下代码的结果【10】______ok_____________classA{publicstaticvoidmain(Stringargs[]){booleanb=false;if(b=true)System.out.println(“ok”);elseSystem.out.println(“no”);}}二、编程题(共50分)9、(14分)有一种特殊形式的字符串,其正反序相同,被称为“回文字符串”。例如LeveL就是一个回文字符串。输入:字符串输出:Yes或者No说明:如输出Yes,说明输入的字符串是一个回文字符串输出No,说明输入的字符串不是一个回文字符串请使用递归算法实现。如结果1:输入:LeveL输出:Yes如结果2:输入:12ABC21输出:No10、(18分)请使用递归算法求下列序列的前n项之和。1+1/2-1/3+1/4-1/5......输入:n输出:序列的前n项和(精确到小数点之后第6位)publicclassMyClass{publicstaticdoubleadd(doublenum){if(num==0){return0;}elseif(num==1){return1;}elseif(num%2!=0){return-1/num+add(num-1);}else{return1/num+add(num-1);}}publicstaticvoidmain(String[]args){while(true){Scannerscanner=newScanner(System.in);intm=scanner.nextInt();doublei=add(m);System.out.println(i);System.out.println(String.format(%.6f,i));}}}11、(18分)身份证的奥秘背景18位身份证标准在国家质量技术监督局于1999年7月1日实施的GB11643-1999《公民身份号码》中做了明确的规定。GB11643-1999《公民身份号码》为GB11643-1989《社会保障号码》的修订版,其中指出将原标准名称社会保障号码更名为公民身份号码,另外GB11643-1999《公民身份号码》从实施之日起代替GB11643-1989。GB11643-1999《公民身份号码》主要内容如下:一、范围该标准规定了公民身份号码的编码对象、号码的结构和表现形式,使每个编码对象获得一个唯一的、不变的法定号码。二、编码对象公民身份号码的编码对象是具有中华人民共和国国籍的公民。三、号码的结构和表示形式1、号码的结构公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位数字校验码。2、地址码表示编码对象常住户口所在县(市、旗、区)的行政区划代码,按GB/T2260的规定执行。3、出生日期码表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。4、顺序码表示在同一地址码所标识的区域范围内,对同年、同月、同日出生的人编定的顺序号,顺序码的奇数分配给男性,偶数分配给女性。5、校验码(1)十七位数字本体码加权求和公式S=Sum(Ai*Wi),i=0,...,16,先对前17位数字的权求和Ai:表示第i位置上的身份证号码数字值Wi:表示第i位置上的加权因子Wi:7910584216379105842(2)计算模Y=mod(S,11)(3)通过模得到对应的校验码Y:012345678910校验码:10X98765432四、举例如下:北京市朝阳区:11010519491231002X广东省汕头市:44052418800101001415位的身份证号升级办法:15位的身份证号:ddddddyymmddxxp18位的身份证号:ddddddyyyymmddxxpy其中dddddd为地址码(省地县三级)yyyymmddyymmdd为出生年月日xx顺号类编码p性别15位的yy年升为18位后,变成19yy年,但对于百岁以上老人,则为18yy年,此时,他们的最后三位顺序码为996,997,998或999来标记。输入输入n组身份证号码,第一行为个数,以后每行为身份证号码。输出如果输入的身份证号码为15位,则将其升级为18位后显示输出;否则判断其是否为合法身份证号,并逐行输出。例:输入:435062219790413033111010519491231002X110105491231002110105491231996输出:InvalidValid11010519491231002X110105184912319965
本文标题:第五届蓝桥杯校内选拔赛试题java组
链接地址:https://www.777doc.com/doc-4164809 .html