2016蓝桥杯c-c++省赛试题及答案解析.pdf
《2016蓝桥杯c-c++省赛试题及答案解析.pdf》由会员分享,可在线阅读,更多相关《2016蓝桥杯c-c++省赛试题及答案解析.pdf(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2016 蓝桥杯 cc+B 组省赛试题及解析 第一题 煤球数目 有一堆煤球,堆成三角棱锥形。具体:第一层放 1 个,第二层 3 个(排列成三角形),第三层 6 个(排列成三角形),第四层 10 个(排列成三角形),.。如果一共有 100 层,共有多少个煤球?请填表示煤球总数目的数字。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。答案:171700 includestdio.h int main()int a101=0;for(int i=1;i 101;i+)ai=ai-1+i;int ans=0;for(int j=1;j 101;j+)ans+=aj;printf(dn
2、”,ans);return 0;第二题 生日蜡烛 某君从某年开始每年都举办一次生日 party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了 236 根蜡烛.请问,他从多少岁开始过生日 party 的?请填写他开始过生日 party 的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。答案:26 includestdio.h int main()int start,end;for(start=1;start 236;start+)for(end=start;end 236;end+)int sum=0;for(int i=start;i=end;i+)
3、sum+=i;if(sum=236)printf(”start:%d end:dn,start,end);return 0;第三题 凑算式 B DEF A+-+-=10 C GHI (如果显示有问题,可以参见【图 1.jpg】)这个算式中 AI 代表 19 的数字,不同的字母代表不同的数字。比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。这个算式一共有多少种解法?注意:你提交应该是个整数,不要填写任何多余的内容或说明性文字.答案:29 include void swap(int a,int i,int j)int t=ai;ai=aj;aj=t;int
4、 partition(int a,int p,int r)int i=p;int j=r+1;int x=ap;while(1)while(ir&a+ix);while(a-jx);if(i=j)break;swap(a,i,j);_;return j;void quicksort(int a,int p,int r)if(pr)int q=partition(a,p,r);quicksort(a,p,q1);quicksort(a,q+1,r);int main()int i;int a=5,13,6,24,2,8,19,27,6,12,1,17;int N=12;quicksort(a,0
5、,N-1);for(i=0;iN;i+)printf(%d”,ai);printf(”n”);return 0;注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。答案:swap(a,p,j)第五题 抽签 X 星球要派出一个 5 人组成的观察团前往 W 星.其中:A 国最多可以派出 4 人。B 国最多可以派出 2 人。C 国最多可以派出 2 人。.。那么最终派往 W 星的观察团会有多少种国别的不同组合呢?下面的程序解决了这个问题。数组 a 中既是每个国家可以派出的最多的名额。程序执行结果为:DEFFF CEFFF CDFFF CDEFF CCFFF CCEFF CCDFF CCDEF
6、 BEFFF BDFFF BDEFF BCFFF BCEFF BCDFF BCDEF.。.。(以下省略,总共 101 行)include stdio。h define N 6 define M 5#define BUF 1024 void f(int a,int k,int m,char b)int i,j;if(k=N)bM=0;if(m=0)printf(”sn”,b);return;for(i=0;i=ak;i+)for(j=0;ji;j+)bM-m+j=k+A;_;/填空位置 int main()int aN=4,2,2,1,1,3;char bBUF;f(a,0,M,b);retur
7、n 0;仔细阅读代码,填写划线部分缺少的内容.注意:不要填写任何已有内容或说明性文字。答案 f(a,k+1,mj,b)或 f(a,k+1,m-i,b)第六题 方格填数 如下的 10 个格子 +-+-+|+-+-+-+|+-+-+-+|+-+-+-+(如果显示有问题,也可以参看【图 1。jpg】)填入 09 的数字.要求:连续的两个数字不能相邻.(左右、上下、对角都算相邻)一共有多少种可能的填数方案?请填写表示方案数目的整数。注 意:你提 交的应 该是 一个 整数,不要 填写 任何 多余 的内容 或说 明性 文字。答案是:1580 include stdio.h include int flag
8、34;/表示哪些可以填数 int mpt34;/填数 bool visit10;int ans=0;void init()/初始化 int i,j;for(i=0;i 3;i+)for(j=0;j 4;j+)flagij=1;flag00=0;flag23=0;图 1.jpg void Solve()int dir82=0,1,0,-1,1,0,1,0,1,1,1,-1,-1,1,-1,1;int book=true;for(int i=0;i 3;i+)for(int j=0;j 4;j+)/判断每个数周围是否满足 if(flagij=0)continue;for(int k=0;k=3|y
9、 0|y=4 flagxy=0)continue;if(abs(mptxy-mptij)=1)book=false;if(book)ans+;void dfs(int index)int x,y;x=index/4;y=index%4;if(x=3)Solve();return;if(flagxy)for(int i=0;i 10;i+)if(!visiti)visiti=true;mptxy=i;dfs(index+1);visiti=false;else dfs(index+1);int main()init();dfs(0);printf(%dn,ans);return 0;第七题 剪邮
10、票 如【图 1.jpg】,有 12 张连在一起的 12 生肖的邮票。现在你要从中剪下 5 张来,要求必须是连着的。(仅仅连接一个角不算相连)比如,【图 2.jpg】,【图 3.jpg】中,粉红色所示部分就是合格的剪取.请你计算,一共有多少种不同的剪取方法。请填写表示方案数目的整数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。答案:116#include int mpt34;int mpt_visit34;int num6;int have13;int visit13;int ans=0;int Count=0;void init()int k=1;for(int i=0;
11、i 3;i+)for(int j=0;j 4;j+)mptij=k;k+;图 1.jpg 图 2.jpg 图 3.jpg int dir42=0,1,0,-1,-1,0,1,0;/判断五个数是否能连在一起 void dfs_find(int x,int y)for(int i=0;i 4;i+)int tx,ty;tx=x+diri0;ty=y+diri1;if(tx 0|tx=3 ty=4)continue;if(havempttxty=0|mpt_visittxty)continue;mpt_visittxty=1;Count+;dfs_find(tx,ty);void Solve()in
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2016 蓝桥杯 c+ 试题 答案 解析
限制150内