蓝桥杯模拟题Word文档格式.docx
- 文档编号:18625678
- 上传时间:2022-12-29
- 格式:DOCX
- 页数:66
- 大小:44.58KB
蓝桥杯模拟题Word文档格式.docx
《蓝桥杯模拟题Word文档格式.docx》由会员分享,可在线阅读,更多相关《蓝桥杯模拟题Word文档格式.docx(66页珍藏版)》请在冰豆网上搜索。
n=______________________;
System.out.println(n);
3.代码填空(满分4分)
有如下程序,完成的功能为:
找出数组中的最大元素。
请填写程序的中空白,使程序运行正确。
publicclasstest
publicstaticvoidmain(String[]args){
intarray[]={0,34,67,90,21,-9,98,1000,-78};
System.out.println(newtest().findMax(array,0));
publicintfindMax(intarray[],intindex)
if(array==null||array.length==0)
return0;
intmax=array[0];
if(index<
array.length-1)
max=____________________
if(max<
array[index])max=array[index];
returnmax;
4.代码填空(满分5分)
电视台开宝箱节目:
打进电话的人可以开启一个宝箱。
箱子中有一件礼品。
礼品是iphone的机率为1/12;
是mp3的机率为1/5;
是洗衣粉的机率为1/2;
剩余是KFC优惠券。
每次打进电话,宝箱会重置。
以下程序模拟了该抽奖过程。
请填写缺失的部分。
publicstaticvoidmain(String[]args)
inti=(int)Math.random()*_____________;
if(i<
5){
System.out.println("
恭喜中了:
iphone手机"
}elseif(i<
17){
mp3"
}elseif(i<
47){
洗衣粉"
}else{
KFC优惠券"
5.代码填空(满分6分)
下列代码求出一个二进制串中连续的1或连续的0出现的最大次数。
请填缺失代码。
例如:
s=“101100111100011”
则返回:
4
又例如:
s=”0111100000”
5
publicstaticintgetMaxContinuity(Strings)
intmax_1=0;
intmax_0=0;
intn_1=0;
//当前1连续的次数
intn_0=0;
//当前0连续的次数
if(s.charAt(i)=='
)
n_0++;
________;
else
n_1++;
_________;
if(n_1>
max_1)max_1=n_1;
if(n_0>
max_0)max_0=n_0;
returnmax_1>
max_0?
max_1:
max_0);
6.代码填空(满分9分)
下列代码把16进制表示的串转换为3进制表示的串。
x=“5”
“12”
x=”F”
“120”
privatestaticintgetRealValue(charx)
if(x>
&
&
x<
9'
)returnx-'
a'
f'
+10;
publicstaticStringjin_zhi_16_3(Stringx)
//累加真值
x.length();
n=_________+getRealValue(x.charAt(i));
//填空
Stringt="
for(;
if(n==0)break;
t=(n%3)+t;
_____________;
returnt;
7.代码设计(满分5分)
625这个数字很特别,625的平方等于390625,刚好其末3位是625本身。
除了625,还有其它的3位数有这个特征吗?
请编写程序,寻找所有这样的3位数:
它的平方的末3位是这个数字本身。
输出结果中,从小到大,每个找到的数字占一行。
比如那个625就输出为:
625
8.代码设计(满分11分)
考虑方程式:
a^3+b^3=c^3+d^3
其中:
“^”表示乘方。
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的不同的正整数解。
把abcd按从小到大排列,用逗号分隔,每个解占用1行。
比如,刚才的解输出为:
1,9,10,12
不同解间的顺序可以不考虑。
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(范围1~10)
程序输出该整数的所有划分。
10.代码设计(满分20分)
一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数。
当N=3时,153就满足条件,因为1^3+5^3+3^3=153,这样的数字也被称为水仙花数(其中,“^”表示乘方,5^3表示5的3次方,也就是立方)。
当N=4时,1634满足条件,因为1^4+6^4+3^4+4^4=1634。
当N=5时,92727满足条件。
实际上,对N的每个取值,可能有多个数字满足条件。
程序的任务是:
求N=21时,所有满足条件的花朵数。
注意:
这个整数有21位,它的各个位数字的21次方之和正好等于这个数本身。
如果满足条件的数字不只有一个,请从小到大输出所有符合条件的数字,每个数字占一行。
因为这个数字很大,请注意解法时间上的可行性。
要求程序在3分钟内运行完毕。
官网模拟题2
1.代码填空(满分3分)
以下程序打印出0~9的数字,请补充缺少的代码。
publicstaticvoidf(intbegin,intend)
__________________;
System.out.println(begin);
f(begin+1,end);
publicstaticvoidmain(String[]args)
f(0,9);
2.代码填空(满分4分)
如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡,但也可以在不借助任何其它变量的情况下完成。
试填写缺失的代码。
a=a^b;
b=_________;
a=_________;
3.代码填空(满分3分)
许多人都曾经玩过“拍七”游戏。
规则是:
大家依次从1开始顺序数数,数到含有7或7的倍数的要拍手或其它规定的方式表示越过(比如:
7,14,17等都不能数出),下一人继续数下面的数字。
违反规则者受罚。
下面的程序模拟这个过程,拍7的情况输出“*”,请完善之。
for(inti=1;
100;
if(i%7==0)
printf("
*\n"
elseif(___________________)
%d\n"
i);
下面的静态方法的目的是求出某个日期是该年度的第几天。
如果传入:
year=1980,month=1,day=1
则返回1
year=1980,month=2,day=1
则返回32
publicstaticintgetDayOfYear(intyear,intmonth,intday)
int[][]days=_____________________;
intflag=(year%4==0&
year%100!
=0)||year%400==0?
1:
0;
intsum=day;
i<
month;
i++){
sum+=days[flag];
}
returnsum;
5.代码填空(满分2分)
下列方法的目的是,找出1~n之间所有的平方数。
试补全缺失的代码。
当n=10时,输出结果是:
149
当n=100时,输出结果是:
149162536496481
publicstaticvoidshowSqure(intn)
n;
for(intj=1;
j<
=i;
j++)
if(i==_____________)System.out.print(i+"
"
System.out.println();
(a+b)的n次幂的展开式中各项的系数很有规律,对于n=2,3,4时分别是:
121,1331,14641。
这些系数构成了著名的杨辉三角形:
1
11
121
1331
14641
15101051
下列的程序给出了计算第m层的第n个系数的计算方法,试完善之(m,n都从0算起)。
publicstaticintf(intm,intn)
if(m==0)return1;
if(n==0||n==m)return1;
return__________________________;
7.代码填空(满分4分)
下面的代码将数组中的元素的位置颠倒过来:
原来的元素是[1,2,3]
则颠倒后变为:
[3,2,1]
publicstaticvoidreverse(int[]arrs)
{
for(inti=0,j=arrs.length-1;
i<
_________;
i++,j--)
inttemp=arrs;
arrs=arrs[j];
arrs[j]=temp;
8.程序设计(满分15分)
从键盘输入一个整数(1~20)
则以该数字为矩阵的大小,把1,2,3…n*n的数字按照顺时针螺旋的形式填入其中。
输入数字2,则程序输出:
12
43
输入数字3,则程序输出:
123
894
765
输入数字4,则程序输出:
1234
1213145
1116156
10987
9.程序设计(满分9分)
从键盘输入一个日期,格式为yyyy-M-d
要求计算该日期与1949年10月1日距离多少天
用户输入了:
1949-10-2
程序输出:
1
1949-11-1
31
10.程序设计(满分20分)
任意一个5位数,比如:
34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:
65432,一个最小的数23456。
求这两个数字的差,得:
41976,把这个数字再次重复上述过程(如果不足5位,则前边补0)。
如此往复,数字会落入某个循环圈(称为数字黑洞)。
比如,刚才的数字会落入:
[82962,75933,63954,61974]这个循环圈。
请编写程序,找到5位数所有可能的循环圈,并输出,每个循环圈占1行。
其中5位数全都相同则循环圈为[0],这个可以不考虑。
循环圈的输出格式仿照:
[82962,75933,63954,61974]
其中数字的先后顺序可以不考虑。
11.程序设计(满分9分)
当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?
其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。
该校验的过程:
1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。
2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。
3、将奇数位总和加上偶数位总和,结果应该可以被10整除。
例如,卡号是:
5432123456788881
则奇数、偶数位(用红色标出)分布:
奇数位和=35
偶数位乘以2(有些要减去9)的结果:
16261577,求和=35。
最后35+35=70可以被10整除,认定校验通过。
请编写一个程序,从键盘输入卡号,然后判断是否校验通过。
通过显示:
“成功”,否则显示“失败”。
比如,用户输入:
356827027232780
成功
【1】题目:
古典问题:
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第四个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.程序分析:
兔子的规律为数列1,1,2,3,5,8,13,21....
publicclassexp2{
publicstaticvoidmain(Stringargs[]){
inti=0;
for(i=1;
=20;
i++)
System.out.println(f(i));
publicstaticintf(intx)
if(x==1||x==2)
return1;
else
returnf(x-1)+f(x-2);
或
mathmymath=newmath();
System.out.println(mymath.f(i));
classmath
publicintf(intx)
2.题目:
判断101-200之间有多少个素数,并输出所有素数。
*程序分析:
判断素数的方法:
用一个数分别去除2到sqrt(这个数),如果能被整除,
则表明此数不是素数,反之是素数。
for(i=2;
=200;
if(mymath.iszhishu(i)==true)
System.out.println(i);
publicbooleaniszhishu(intx)
for(inti=2;
=x/2;
if(x%2==0)
returnfalse;
returntrue;
3.题目:
打印出所有的"
水仙花数"
,所谓"
是指一个三位数,其各位数字立方和等于该数本身。
153是一个"
,因为153=1的三次方+5的三次方+3的三次方。
*程序分析:
利用for循环控制100-999个数,每个数分解出个位,十位,百位。
for(i=100;
=999;
if(mymath.shuixianhua(i)==true)
publicbooleanshuixianhua(intx)
inti=0,j=0,k=0;
i=x/100;
j=(x%100)/10;
k=x%10;
if(x==i*i*i+j*j*j+k*k*k)
returnfalse;
4.题目:
将一个正整数分解质因数。
输入90,打印出90=2*3*3*5。
程序分析:
对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完成:
(1)如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。
(2)如果n<
>
k,但n能被k整除,则应打印出k的值,并用n除以k的商,作为新的正整数你,重复执行第一步。
(3)如果n不能被k整除,则用k+1作为k的值,重复执行第一步。
publicexp2(){}
publicvoidfengjie(intn){
for(inti=2;
=n/2;
i++){
if(n%i==0){
System.out.print(i+"
*"
fengjie(n/i);
System.out.print(n);
System.exit(0);
///不能少这句,否则结果会出错
publicstaticvoidmain(String[]args){
Stringstr="
exp2c=newexp2();
str=javax.swing.JOptionPane.showInputDialog("
请输入N的值(输入exit退出):
intN;
N=0;
try{
N=Integer.parseInt(str);
}catch(NumberFormatExceptione){
e.printStackTrace();
System.out.print(N+"
分解质因数:
+N+"
="
c.fengjie(N);
5.题目:
利用条件运算符的嵌套来完成此题:
学习成绩>
=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
(a>
b)?
a:
b这是条件运算符的基本例子。
importjavax.swing.*;
publicclassex5{
str=JOptionPane.showInputDialog("
catch(NumberFormatExceptione){
str=(N>
90?
A"
:
(N>
60?
B"
C"
));
System.out.println(str);
6.题目:
输入两个正整数m和n,求其最大公约数和最小公倍数。
利用辗除法。
最大公约数:
publicclassCommonDivisor{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 蓝桥杯 模拟