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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

第三届蓝桥杯C语言本科组复赛题与及解析.docx

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

2、的并给出了代码。我理解错了题意,误以为是“兔子繁殖”了。/代码:#include int main( longint X=10, Y=90。 for(int k=1。 k/半分钟一个单位 if(k%2=1Y -= X。/因为X出生半分钟后就要吃Y,尔后每1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y,又因为此时X不会增长Y *= 2。/每2分钟翻倍 if(k%6=0X *= 2。/每3分钟翻倍,X和Y的翻倍是相互独立的,不需要另作讨论。 printf(%d, Y。 return0。 b5E2RGbCAP2:ABCDE * ? = EDCBA “ABCDE代表不同的数字,问号也代表某个数字!2

3、1978/5层循环就OK了3:有一群海盗不多于20人),在船上比拼酒量。过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。再打开一瓶酒平分,又有倒下的,再次重复. 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。当第4瓶酒平分喝下后,大家都倒下了。 等船长醒来,发现海盗船搁浅了。他在航海日志中写到:“.昨天,我正好喝了一瓶.奉劝大家,开船不喝酒,喝酒别开船.” 请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。 如果有多个可能的答案,请列出所有答案,每个答案占一行。 格式是:人数,人数,. 例如,有一种可能是:20,5,4,2,0p1EanqFDPw/松鼠123 告

4、诉我这道题的答案要严格递减的,所以我删掉了不符合要求的组合。20 5 4 2 018 9 3 2 015 10 3 2 012 6 4 2 /先求处4个数【递减的,4层循环就OK】的最小公倍数,然后求倒数和是否为14: 某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪: 每位选手需要回答10个问题其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数选手必须回答问题,不回答按错误处理)。 每位选手都有一个起步的分数为10分。 某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他*rank*rankrank-1-i/rank+rank*(i%r

5、ank/经 神雕 指正。我写的4而不是rank。应该是rank才对。RTCrpUDGiTvoid rotate(int* x, int rank int* y = (int*malloc(_。 / 填空for(int i=0。 i y_ = xi。 / 填空 for(i=0。 i xi = yi。 free(y。int main(int argc, char* argv int x44 = 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16。 int rank = 4。 rotate(&x00, rank。 for(int i=0。 i for(int j=0。 j

6、printf(%4d, xij。 printf(n。 return0。 5PCzVD7HxA6:大数乘法n3/base+n2/base+n4%baser2/basevoid bigmul(int x, int y, int r intbase = 10000。 int x2 = x / base。 int x1 = x % base。 int y2 = y / base。 int y1 = y % base。 int n1 = x1 * y1。 int n2 = x1 * y2。 int n3 = x2 * y1。 int n4 = x2 * y2。 r3 = n1 % base。 r2 =

7、n1 / base + n2 % base + n3 % base。 r1 = _。 / 填空 r0 = n4 / base。 r1 += _。 / 填空 r2 = r2 % base。 r0 += r1 / base。 r1 = r1 % base。 int main(int argc, char* argv int x = 0,0,0,0。 bigmul(87654321, 12345678, x。 printf(%d%d%d%dn, x0,x1,x2,x3。 return0。 jLBHrnAILg7:6*6棋盘放棋子,使每行每列都是3个xrc=1int N = 0。 bool Check

8、StoneNum(int x6 for(int k=0。 k int NumRow = 0。 int NumCol = 0。 for(int i=0。 i if(xki NumRow+。 if(xik NumCol+。 if(_ returnfalse。 / 填空 returntrue。 int GetRowStoneNum(int x6, int r int sum = 0。 for(int i=0。 i if(xri sum+。 return sum。 int GetColStoneNum(int x6, int c int sum = 0。 for(int i=0。 i if(xic s

9、um+。 return sum。 void show(int x6 for(int i=0。 i for(int j=0。 j printf(%2d, xij。 printf(n。 printf(n。 void f(int x6, int r, int c。 void GoNext(int x6, int r, int c if(c _。 / 填空else f(x, r+1, 0。 void f(int x6, int r, int c if(r=6 if(CheckStoneNum(x N+。 show(x。 return。 if(_ / 已经放有了棋子 GoNext(x,r,c。 retu

10、rn。 int rr = GetRowStoneNum(x,r。 int cc = GetColStoneNum(x,c。 if(cc=3 / 本列已满 GoNext(x,r,c。 elseif(rr=3 / 本行已满 f(x, r+1, 0。 else xrc = 1。 GoNext(x,r,c。 xrc = 0。 if(!(3-rr = 6-c | 3-cc = 6-r / 本行或本列严重缺子,则本格不能空着! GoNext(x,r,c。 int main(int argc, char* argv int x66 = 1,0,0,0,0,0, 0,0,1,0,1,0, 0,0,1,1,0,

11、1, 0,1,0,0,1,0, 0,0,0,1,0,0, 1,0,1,0,0,1 。 f(x, 0, 0。 printf(%dn, N。 return0。 xHAQX74J0X8:这个程序的任务就是把一串拼音字母转换为6位数字作为输入,程序输出6位数字。 变换的过程如下: 第一步. 把字符串6个一组折叠起来,比如wangximing则变为: wangxi ming 第二步. 把所有垂直在同一个位置的字符的ascii码值相加,得出6个数字,如上面的例子,则得出: 228202220206120185 第三步. 再把每个数字“缩位”处理:就是把每个位的数字相加,得出的数字如果不是一位数字,就再缩位

12、,直到变成一位数字为止。例如: 228 = 2+2+8=12 = 1+2=3 上面的数字缩位后变为:344836, 这就是程序最终的输出结果! 要求程序从标准输入接收数据,在标准输出上输出结果。 输入格式为:第一行是一个整数n100),表示下边有多少输入行,接下来是n行字符串,就是等待变换的字符串。 输出格式为:n行变换后的6位密码。LDAYtRyKfE#include#include #includeint str6,istr。 int res1026,ires。 void getstr(/read str from stdin char ch。 while(ch=getchar(!=n s

13、tristr%6+=ch。 istr+。 void cal(/calculate the result int i,t。 for(i=0。i while(stri9 t=stri。 stri=0。 while(t stri+=t%10。 t/=10。 void save(/put the result into res array int i。 for(i=0。i resiresi=stri。 ires+。void main( int n,i,j。 scanf(%d,&n。 getchar(。 while(n- memset(str,0,sizeof(str。 istr=0。 getstr(。

14、 cal(。 save(。 for(i=0。i/print the res array to stdout for(j=0。j printf(%d,resij。 printf(n。 Zzz6ZB2Ltk9: 足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。 假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表: 甲 乙 丙 丁 甲 - 0.10.30.5 乙 0.9 - 0.70.4 丙 0.70.3 - 0.2 丁 0.50.60.8 - 数据含义:甲对乙的取胜概率为0.1,丙对乙的胜率为0.3,. 现在要举行一次锦标赛。双方抽签,分两个组比,获

15、胜的两个队再争夺冠军。 + P(甲,X*P(Y, Z*P(Y, 甲 + P(甲,X*P(Z, Y*P(Z, 甲即甲赢的概率是 1 减去上诉结果。10万数据模拟可以得到甲赢的概率大约0.076。rqyn14ZNXI验算:甲换成乙丙丁后分别算出四个数据,相加为1.010: 今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。 我们约定: 每个人从盒子中取出的球的数目必须是:1,3,7或者8个。 轮到某一方取球时不能弃权! A先取球,然后双方交替取球,直到取完。 被迫拿到最后一个球的一方为负方输方) 请编

16、程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢? 程序运行时,从标准输入获得数据,其格式如下: 先是一个整数n(n,表示接下来有n个整数。然后是n个整数,每个占一行整数10000),表示初始球数。 程序则输出n行,表示A的输赢情况输为0,赢为1)。EmxvxOtOco【我把10001写成了101,所以。又悲剧了】#13楼2018-04-08 12:34|Muse牧马?#include #include int a10001。 int b4 = 1, 3, 7, 8。int main( int i,n, j。 freopen(2.out, w, stdout。memset(a,0, sizeof a。/初始化判定数组为0 a0=1。/说明对方取完了最后一堆,那么自己胜利for(i=1。i for(j=0。 jif(i-bj=0if(ai-bj=0/有取法能致使对方输,那么自己就要赢ai=1。break。for(int k=0。 kprintf(%d:%dn, k, ak。scanf(%d,&n。 while(n- scanf(%d,&i。 printf(%dn, ai。/直接输出即可,不需要存储下来统一输出,PS:ACM里都是这样处理的。return 0。申明:所有资料为本人收集整理,仅限个人学习使用,勿做商业用途。

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

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