ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:21.18KB ,
资源ID:10288246      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/10288246.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(国信蓝桥杯比赛试题与答案.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

国信蓝桥杯比赛试题与答案.docx

1、国信蓝桥杯比赛试题与答案2012第三届蓝桥杯软件大赛C/C+语言本科组答案第一题:假设有两种微生物 X 和 YX出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。一个新出生的X,半分钟之后吃掉1个Y,并且,从此开始,每隔1分钟吃1个Y。现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。如果X=10,Y=90 呢?本题的要求就是写出这两种初始条件下,60分钟后Y的数目。题目的结果令你震惊吗?这不是简单的数字游戏!真实的生物圈有着同样脆弱的性质!也许因为你消灭的那只 Y 就是最终导致 Y 种群灭绝的最后一根稻草!1 #include 2 using nam

2、espace std; 3 4 int main() 5 6 int x=10,y=90; 7 int time=60,k; 8 for ( k=1;k=time;k+ ) 9 10 y -= x ;11 if ( k%2=0 ) y *= 2;12 if ( k%3=0 ) x *= 2;13 / printf(%dtime:tx=%dty=%dn,k,x,y);14 15 printf(y = %dn,y);16 消除行号最后算出的结果,第一种情况是个巨大的负数:-979369984,其实就是等于 0。第二种情况是 94371840。第二题:ABCDE * ? = EDCBA“ABCDE代

3、表不同的数字,问号也代表某个数字!1 #include 2 using namespace std; 3 4 int main() 5 6 int a,b,c,d,e; 7 for (a=0;a10;a+) 8 9 for (b=0;b10;b+)10 11 if (b=a) continue;12 for (c=0;c10;c+)13 14 if (c=b | c=a) continue;15 for (d=0;d10;d+)16 17 if (d=c | d=b | d=a ) continue;18 for (e=0;e10;e+)19 20 if (e=d | e=c |e=b | e

4、=a) continue;21 if (a+b*10+c*100+d*1000+e*10000)%(a*10000+b*1000+c*100+d*10+e)=0)22 23 printf(%d%d%d%d%dn,a,b,c,d,e);24 25 26 27 28 29 30 这样得出的结果有三个:02178、04356、21978第三题:有一群海盗(不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复. 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。等船长醒来,发现海盗船

5、搁浅了。他在航海日志中写到:“.昨天,我正好喝了一瓶.奉劝大家,开船不喝酒,喝酒别开船.”请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。如果有多个可能的答案,请列出所有答案,每个答案占一行。格式是:人数,人数,.例如,有一种可能是:20,5,4,2,01 #include 2 using namespace std; 3 4 int main() 5 6 int a,b,c,d; 7 for (a=20;a=4;a-) 8 9 for (b=a-1;b=3;b-)10 11 for (c=b-1;c=2;c-)12 13 for (d=c-1;d=1;d-)14 15 if (

6、1.0/a+1.0/b+1.0/c+1.0/d = 1)16 printf(%d,%d,%d,%d,0n,a,b,c,d);17 18 19 20 21 消除行号最后算出来的结果有四种,分别是: “20,5,4,2,0” ,“18,9,3,2,0”,“15,10,3,2,0”,“12,6,4,2,0”第四题:某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。每位选手都有一个起步的分数为10分。某获胜选手最终得分刚好是100分,如果不让你看

7、比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。你的任务是算出所有可能情况。每个答案占一行。1 #include 2 using namespace std; 3 4 int ans10; 5 6 void play(int time,int score) 7 8 int k; 9 if (time=10)10 11 if (score=100)12 13 for (k=0;k 14 10 6 29 10 11 12 15 11 7 313 14 15

8、 16 16 12 8 4题目附带的不完整代码: 1 void rotate(int* x, int rank) 2 3 int* y = (int*)malloc(_); / 填空 4 5 for(int i=0; irank * rank; i+) 6 7 y_ = xi; / 填空 8 9 10 for(i=0; irank*rank; i+) 11 12 xi = yi;13 14 15 free(y);16 17 18 int main(int argc, char* argv) 19 20 int x44 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,

9、16; 21 int rank = 4; 22 23 rotate(&x00, rank); 24 25 for(int i=0; irank; i+) 26 27 for(int j=0; jrank; j+) 28 29 printf(%4d, xij); 30 31 printf(n); 32 33 34 return 0; 35 消除行号正确的答案是:sizeof(int)*rank*rank(i%rank)*rank-(i/rank)+rank-1第六题:依旧是补全代码,大数乘法,本来还算比较繁杂的,但是题目当时附了图,变的很简单了题目附带的不完整代码: 1 void bigmul(

10、int x, int y, int r) 2 3 int base = 10000; 4 int x2 = x / base; 5 int x1 = x % base; 6 int y2 = y / base; 7 int y1 = y % base; 8 9 int n1 = x1 * y1; 10 int n2 = x1 * y2; 11 int n3 = x2 * y1; 12 int n4 = x2 * y2; 13 14 r3 = n1 % base; 15 r2 = n1 / base + n2 % base + n3 % base; 16 r1 = _; / 填空17 r0 =

11、n4 / base; 18 19 r1 += _; / 填空20 r2 = r2 % base; 21 r0 += r1 / base; 22 r1 = r1 % base; 23 24 25 int main(int argc, char* argv) 26 27 int x = 0,0,0,0; 28 29 bigmul(87654321, 12345678, x); 30 31 printf(%d%d%d%dn, x0,x1,x2,x3); 32 33 return 0; 34 答案:n2 / base + n3 / base + n4 % baser2 / base第七题:补全代码,有

12、个6*6的棋盘,预先已经放置了一部分棋子,现在要再补充棋子使得每行每列都有3个棋子 1 int N = 0; 2 3 bool CheckStoneNum(int x6) 4 5 for(int k=0; k6; k+) 6 7 int NumRow = 0; 8 int NumCol = 0; 9 for(int i=0; i6; i+) 10 11 if(xki) NumRow+; 12 if(xik) NumCol+; 13 14 if(_) return false; / 填空 15 16 return true; 17 18 19 int GetRowStoneNum(int x6,

13、 int r) 20 21 int sum = 0; 22 for(int i=0; i6; i+) if(xri) sum+; 23 return sum; 24 25 26 int GetColStoneNum(int x6, int c) 27 28 int sum = 0; 29 for(int i=0; i6; i+) if(xic) sum+; 30 return sum; 31 32 33 void show(int x6) 34 35 for(int i=0; i6; i+) 36 37 for(int j=0; j6; j+) printf(%2d, xij); 38 pri

14、ntf(n); 39 40 printf(n); 41 42 43 void f(int x6, int r, int c); 44 45 void GoNext(int x6, int r, int c) 46 47 if(c=3) / 本列已满 75 GoNext(x,r,c); 76 else if(rr=3) / 本行已满 77 f(x, r+1, 0); 78 else 79 80 xrc = 1; 81 GoNext(x,r,c); 82 xrc = 0; 83 84 if(!(3-rr = 6-c | 3-cc = 6-r) / 本行或本列严重缺子,则本格不能空着! 85 GoN

15、ext(x,r,c); 86 87 88 89 int main(int argc, char* argv) 90 91 int x66 = 92 1,0,0,0,0,0, 93 0,0,1,0,1,0, 94 0,0,1,1,0,1, 95 0,1,0,0,1,0, 96 0,0,0,1,0,0, 97 1,0,1,0,0,1 98 ; 99 100 f(x, 0, 0); 101 102 printf(%dn, N); 103 104 return 0; 105 消除行号答案:NumRow != 3 | NumCol != 3f(x,r,c+1)xrc=1第八题:编程题:这个程序的任务就是

16、把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。变换的过程如下:第一步. 把字符串6个一组折叠起来,比如wangximing则变为:wangximing第二步. 把所有垂直在同一个位置的字符的ascii码值相加,得出6个数字,如上面的例子,则得出:228 202 220 206 120 105第三步. 再把每个数字“缩位”处理:就是把每个位的数字相加,得出的数字如果不是一位数字,就再缩位,直到变成一位数字为止。例如: 228 = 2+2+8=12 = 1+2=3上面的数字缩位后变为:344836, 这

17、就是程序最终的输出结果!要求程序从标准输入接收数据,在标准输出上输出结果。输入格式为:第一行是一个整数n(100),表示下边有多少输入行,接下来是n行字符串,就是等待变换的字符串。输出格式为:n行变换后的6位密码。1 #include 2 3 int litenum(int oldnum) 4 5 int newnum=0; 6 if ( oldnum 0 ) 8 9 newnum += oldnum % 10 ;10 oldnum /= 10;11 12 return litenum(newnum);13 14 15 int main()16 17 int n;18 scanf(%dn,&n

18、);19 while (n-)20 21 int snum6=0,0,0,0,0,0; /密码22 char tmpc;23 int time=0,k;24 /*25 由于题目没有给出输入的字符串的最大长度26 使用while(1)和getchar()来实现几乎不受限的输入 27 */28 while (1)29 30 tmpc=getchar();31 if ( tmpc=n ) break;32 snumtime%6 += tmpc;33 time+;34 35 for (k=0;k6;k+)36 37 printf(%d,litenum(snumk);38 39 printf(n);40 41 return 0;42 第九题:足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表: 甲 乙 丙 丁甲 - 0.1 0.3 0.5乙 0.9 - 0.7 0.4丙 0.7 0.3 - 0.2丁 0.5 0.6 0.8 -数据含义:甲对乙的取胜概率为0.1,丙对乙的胜率为0.3,.现在要举行一次锦标赛。双方抽签,分两个组比,获胜的两个队再争夺冠军。(参见【1.jpg】)请你进行10万次模拟,计算出甲队夺冠的概率。

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

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