蓝桥杯模拟试题java 和C本科Word文档下载推荐.docx

上传人:b****4 文档编号:17226020 上传时间:2022-11-29 格式:DOCX 页数:13 大小:20.23KB
下载 相关 举报
蓝桥杯模拟试题java 和C本科Word文档下载推荐.docx_第1页
第1页 / 共13页
蓝桥杯模拟试题java 和C本科Word文档下载推荐.docx_第2页
第2页 / 共13页
蓝桥杯模拟试题java 和C本科Word文档下载推荐.docx_第3页
第3页 / 共13页
蓝桥杯模拟试题java 和C本科Word文档下载推荐.docx_第4页
第4页 / 共13页
蓝桥杯模拟试题java 和C本科Word文档下载推荐.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

蓝桥杯模拟试题java 和C本科Word文档下载推荐.docx

《蓝桥杯模拟试题java 和C本科Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《蓝桥杯模拟试题java 和C本科Word文档下载推荐.docx(13页珍藏版)》请在冰豆网上搜索。

蓝桥杯模拟试题java 和C本科Word文档下载推荐.docx

{

intd=____________________________;

System.out.println(a.remove(d));

}

}

}

2.代码填空(满分3分)

不同进制的数值间的转换是软件开发中很可能会遇到的常规问题。

下面的代码演示了如何把键盘输入的3进制数字转换为十进制。

试完善之。

BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

Strings=br.readLine();

intn=0;

for(inti=0;

s.length();

i++)

charc=s.charAt(i);

if(c<

'

0'

||c>

'

2'

)thrownewRuntimeException("

Formaterror"

);

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连续的次数

for(inti=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;

return0;

publicstaticStringjin_zhi_16_3(Stringx)

intn=0;

//累加真值

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分钟内运行完毕。

 

2011模拟c语言本科

11.代码填空(满分2分)

下列代码,把一个2位整数交换十位与个位的位置。

请填写缺失的代码。

当x=95时,返回59。

intswitch_num(intx)

inta=x/10;

intb=x%10;

return__________________;

12.代码填空(满分3分)

下列代码把一个二进制的串转换为整数。

请填写缺少的语句;

char*p="

1010110001100"

i<

strlen(p);

n=__________________;

printf("

%d\n"

n);

13.代码填空(满分3分)

假设a,b,c是3个互不相等的整数。

下列代码取出它们中居中的数值,记录在m中。

其中的swap()函数可以交换两个变量的值。

请完善代码。

if(a>

b)swap(&

a,&

b);

if(b>

c)swap(&

b,&

c);

______________________;

intm=b;

14.代码填空(满分5分)

计算3个A,2个B可以组成多少种排列的问题(如:

AAABB,AABBA)是《组合数学》的研究领域。

但有些情况下,也可以利用计算机计算速度快的特点通过巧妙的推理来解决问题。

下列的程序计算了m个A,n个B可以组合成多少个不同排列的问题。

请完善它。

intf(intm,intn)

if(m==0||n==0)return1;

return_______________________;

15.代码填空(满分6分)

此段代码的意图是把一个缓冲区中的整数重新排列,使得所有负数都在正数的左边。

请分析其工作流程,补充缺失的代码。

voidreorder(int*pData,intlen)

if(pData==NULL||len==0)return;

int*pBegin=pData;

int*pEnd=____________;

while(pBegin<

pEnd)

if(*pBegin<

0)

pBegin++;

__________;

if(*pEnd>

=0)

pEnd--;

___________;

inttemp=*pBegin;

*pBegin=*pEnd;

*pEnd=temp;

intmain(intargc,char**argv)

inta[]={1,2,3,-5,-4,5,9,-8,-1};

reorder(a,9);

9;

i++)printf("

%d"

a[i]);

\n"

return0;

16.代码填空(满分9分)

给定一个字符串,其含有的字符各不相同。

程序输出该字符串的所有排列(全排列)情形。

给定字符串“xyz”,则程序输出:

xyz

xzy

yxz

yzx

zyx

zxy

试完善程序中空缺的部分。

voidf(char*str,intlen,intn)

{

inti;

chartmp;

char*p=(char*)malloc(__________);

if(n==len-1){

printf("

%s\n"

str);

}else{

for(i=n;

len;

i++){

strcpy(p,str);

tmp=*(str+n);

*(str+n)=*(str+i);

*(str+i)=tmp;

_______________;

strcpy(str,p);

}

}

free(p);

}

charstr[]="

xyz"

f(str,3,0);

17.代码设计(满分5分)

18.代码设计(满分11分)

某游戏规则中,甲乙双方每个回合的战斗总是有一方胜利,一方失败。

游戏规定:

失败的一方要把自己的体力值的1/4加给胜利的一方。

如果双方体力值当前都是4,则经过一轮战斗后,双方的体力值会变为:

5,3。

现在已知:

双方开始时的体力值甲:

1000,乙:

2000。

假设战斗中,甲乙获胜的概率都是50%

求解:

双方经过4个回合的战斗,体力值之差小于1000的理论概率。

19.代码设计(满分18分)

20.代码设计(满分20分)

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

当前位置:首页 > 解决方案 > 学习计划

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

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