蓝桥杯模拟题Word文档格式.docx

上传人:b****6 文档编号:18625678 上传时间:2022-12-29 格式:DOCX 页数:66 大小:44.58KB
下载 相关 举报
蓝桥杯模拟题Word文档格式.docx_第1页
第1页 / 共66页
蓝桥杯模拟题Word文档格式.docx_第2页
第2页 / 共66页
蓝桥杯模拟题Word文档格式.docx_第3页
第3页 / 共66页
蓝桥杯模拟题Word文档格式.docx_第4页
第4页 / 共66页
蓝桥杯模拟题Word文档格式.docx_第5页
第5页 / 共66页
点击查看更多>>
下载资源
资源描述

蓝桥杯模拟题Word文档格式.docx

《蓝桥杯模拟题Word文档格式.docx》由会员分享,可在线阅读,更多相关《蓝桥杯模拟题Word文档格式.docx(66页珍藏版)》请在冰豆网上搜索。

蓝桥杯模拟题Word文档格式.docx

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{

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 职业教育 > 中职中专

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1