蓝桥杯练习系统题目汇总c++版
蓝桥杯c c 省赛试题及答案解析

2016蓝桥杯c-c++B组省赛试题及解析第一题煤球数目有一堆煤球,堆成三角棱锥形。
具体:第一层放1个,第二层3个(排列成三角形),第三层6个(排列成三角形),第四层10个(排列成三角形),....如果一共有100层,共有多少个煤球?请填表示煤球总数目的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
答案:171700#include<>int main(){int a[101] ={0};for(int i = 1 ; i < 101 ; i ++) a[i] = a[i-1] + i;int ans = 0;for(int j = 1 ; j < 101 ; j ++) ans += a[j];printf("%d\n",ans);return 0;}第二题生日蜡烛某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。
现在算起来,他一共吹熄了236根蜡烛。
请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。
答案:26#include<>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 ++)sum += i;if( sum == 236){printf("start : %d end : %d\n",start,end); }}}return 0;}第三题凑算式B DEFA + --- + ------- = 10C GHI(如果显示有问题,可以参见【图】)这个算式中A~I代表1~9的数字,不同的字母代表不同的数字。
蓝桥比赛练习C语言[5篇]
![蓝桥比赛练习C语言[5篇]](https://img.taocdn.com/s3/m/b28120ac6429647d27284b73f242336c1eb930e0.png)
蓝桥比赛练习C语言[5篇]第一篇:蓝桥比赛练习C语言时间限制:1.0s 内存限制:256.0MB1闰年判断问题描述给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年: 1.年份是4的倍数而不是100的倍数; 2.年份是400的倍数。
其他的年份都不是闰年。
输入格式输入包含一个整数y,表示当前的年份。
输出格式输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
说明:当试题指定你输出一个字符串作为结果(比如本题的yes 或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。
样例输入2013 样例输出no 样例输入2016 样例输出yes 数据规模与约定1990 <= y <= 2050。
本题的C参考代码如下:1.#include2.int main()3.{4.int y;5.scanf(“%d”, &y);6.if(y%4==0 && y%100!=0 || y%400==0)7.printf(“yes”);8.else9.printf(“no”);10.return 0;11.} 2.01字串问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。
它们的前几个是:00000 00001 00010 00011 00100 请按从小到大的顺序输出这32种01串。
输入格式本试题没有输入。
输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。
样例输出00000 00001 00010 00011 本题的C参考代码如下:1.#include2.int main()3.{4.int i, j, k, l, m;5.for(i = 0;i <= 1;++i)6.for(j = 0;j <= 1;++j)7.for(k = 0;k <= 1;++k)8.for(l = 0;l <= 1;++l)9.for(m = 0;m <= 1;++m)10.printf(“%d%d%d%d%dn”, i, j, k, l, m);11.return 0;12.}3.字母图形问题描述利用字母可以组成一些美丽的图形,下面给出了一个例子:ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个5行7列的图形,请找出这个图形的规律,并输出一个n行m列的图形。
蓝桥杯cc省赛试题及答案解析

if(index == 9)
{
Solve();
return ;
}
for(int i = 1 ; i<10 ; i ++)
if(!visit[i])
{
visit[i] = true; num[index] = i; dfs(index+1);
visit[i] = false;
}
}
}
int mห้องสมุดไป่ตู้in()
#include<> 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 ++)
2016
第一题
煤球数目
有一堆煤球,堆成三角棱锥形。具体:
第一层放1个,
第二层3个(排列成三角形),
第三层6个(排列成三角形),
第四层10个(排列成三角形),
如果一共有100层,共有多少个煤球?
请填表示煤球总数目的数字。
注意:你提交的应该是一个整数, 不要填写任何多余的内容或说明性文字
答案:171700
{
dfs(0);
printf("%d\n",ans);
return 0;
第四题
快速排序
排序在各种场合经常被用到。
快速排序是十分常用的高效率的算法。
其思想是:先选一个“标尺”,
蓝桥杯试题C语言答案

1、A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参加,或者都不参加;(4)D和E中至少有一个人参加;(5)如果E参加,那么A和D也都参加。
00110 c、d#include<stdio.h>int main(){int a,b,c,d,e; /*0表示不参加, 1表示参加.*/for(a=0;a<2;a++)for(b=0;b<2;b++)for(c=0;c<2;c++)for(d=0;d<2;d++)for(e=0;e<2;e++){if(a&&!b) continue;if(b&&c||!b&&!c) continue;if(c&&!d||!c&&d) continue;if(!d&&!e) continue;if(e&&(!a||!d)) continue;printf("%d%d%d%d%d",a,b,c,d,e);}return 0;}2、某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:1)A和B两人中至少去一人;2)A和D不能一起去;3)A、E和F三人中要派两人去;4)B和C都去或都不去;5)C和D两人中去一个;6)若D不去,则E也不去。
试编写一个程序,输出问应当让哪几个人去?#include<stdio.h>int main(){int a,b,c,d,e,f;for(a=1;a>=0;a--)for(b=1;b>=0;b--)/*1:去 0:不去*/for(c=1;c>=0;c--)for(d=1;d>=0;d--)for(e=1;e>=0;e--)for(f=1;f>=0;f--){if(a+b>=1&&a+d!=2&&a+e+f==2&&b==c&&c+d==1&&(d+e==0||d==1))printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d",a,b,c,d,e,f);}return 0;}3、警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。
第九届蓝桥杯JavaC组省赛真题

第九届蓝桥杯JavaC组省赛真题解题代码部分来⾃⽹友,如果有不对的地⽅,欢迎各位⼤佬评论题⽬1、哪天返回题⽬描述⼩明被不明势⼒劫持。
后被扔到x星站再⽆问津。
⼩明得知每天都有飞船飞往地球,但需要108元的船票,⽽他却⾝⽆分⽂。
他决定在x星战打⼯。
好⼼的⽼板答应包⾷宿,第1天给他1元钱。
并且,以后的每⼀天都⽐前⼀天多2元钱,直到他有⾜够的钱买票。
请计算⼀下,⼩明在第⼏天就能凑够108元,返回地球。
要求提交的是⼀个整数,表⽰第⼏天。
请不要提交任何多余的内容。
package Lqb;public class Text27 {public static void main(String[] args) {int money=1;int dayMoney=1;int day=1;System.out.println("第 "+day+" 天:"+"⼯资:"+dayMoney+" "+money);while(money<108){dayMoney+=2;money+=dayMoney;day++;System.out.println("第 "+day+" 天:"+"⼯资:"+dayMoney+" "+money);}}}题⽬2、猴⼦分⾹蕉题⽬描述5只猴⼦是好朋友,在海边的椰⼦树上睡着了。
这期间,有商船把⼀⼤堆⾹蕉忘记在沙滩上离去。
第1只猴⼦醒来,把⾹蕉均分成5堆,还剩下1个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
第2只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下2个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
第3只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下3个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
第4只猴⼦醒来,重新把⾹蕉均分成5堆,还剩下4个,就吃掉并把⾃⼰的⼀份藏起来继续睡觉。
蓝桥杯试题答案(C语言)

1、亲密数:假设有a、b两个数,若a的所有因子之和等于b,b的所有因子之和等于a,并且a不等于b,则称a和b是一对亲密数。
如284和220就是一对亲密数。
#include<stdio.h>int main(){int a,b,i,n;for(a=1;a<=10000;a++){for(b=0,i=1;i<=a/2;i++)if(a%i==0)b+=i;for(n=0,i=1;i<=b/2;i++)if(b%i==0)n+=i;if(n==a&&a!=b&&a<b)printf("%d-%d\n",a,b);}return0;}2、世纪末的星期:曾有邪教称1999年12月31日是世界末日。
当然该谣言已经不攻自破。
还有人称今后的某个世纪末的12月31日䊵如果是星期一则会....有趣的是任何一个世纪末的年份的12月31日都不可能是星期一!!于是“谣言制造商”又修改为星期日......1999年的12月31日是星期五,请问,未来哪一个离我们最近的一个世纪末年即xx99年的12月31日正好是星期天,即星期日请回答该年份,只写这个4位整数,不要写12月31等多余信息#include<stdio.h>int main(){long days=5;/*1999年的最后一天为周5,把下一年加上5天对7取余为0的,则是周日*/int i=2000;for(;;)/*无循环终止条件,可以利用break语句终止循环*/{if(i%4==0&&i%100!=0||i%400==0){days=days%7+366;}else{days=days%7+365;}if(days%7==0&&i%100==99){printf("%d",i);break;}i++;}return0;}3、马虎的算式:小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
第八届蓝桥杯c组试题及答案

第八届蓝桥杯c组试题及答案第八届蓝桥杯C组试题及答案1. 单项选择题1.1 以下哪个选项是C语言中声明一个整型数组的正确方式?A. int array[10];B. int [10] array;C. int array[];D. int array=10;1.2 正确答案是 A。
2. 程序填空题2.1 请在以下程序中填入缺失的代码,以实现计算并输出1到100之间所有奇数的和。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 1) {sum += i;}}printf("Sum of odd numbers: %d\n", sum);return 0;}```2.2 缺失的代码是 `if (i % 2 == 1) {`。
3. 程序改错题3.1 以下程序旨在计算并输出1到100之间所有偶数的和,但存在错误,请找出并修正错误。
```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("Sum of even numbers: %d\n", sum);return 0;}```3.2 错误在于程序的目的是计算奇数的和,但代码计算的是偶数的和。
要修正这个问题,需要将 `if (i % 2 == 0)` 更改为 `if (i % 2 != 0)`。
4. 编程题4.1 编写一个程序,实现以下功能:从用户输入一个整数n,然后输出n的阶乘。
```c#include <stdio.h>long long factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}int main() {int n;printf("Enter a number: ");scanf("%d", &n);printf("Factorial of %d is %lld\n", n,factorial(n));return 0;}```4.2 以上程序正确实现了题目要求的功能。
蓝桥杯试题C语言答案

1、A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些人参加了竞赛:(1)A参加时,B也参加;(2)B和C只有一个人参加;(3)C和D或者都参加,或者都不参加;(4)D和E中至少有一个人参加;(5)如果E参加,那么A和D也都参加。
00110 c、d#include<stdio.h>int main(){int a,b,c,d,e; /*0表示不参加, 1表示参加.*/for(a=0;a<2;a++)for(b=0;b<2;b++)for(c=0;c<2;c++)for(d=0;d<2;d++)for(e=0;e<2;e++){if(a&&!b) continue;if(b&&c||!b&&!c) continue;if(c&&!d||!c&&d) continue;if(!d&&!e) continue;if(e&&(!a||!d)) continue;printf("%d%d%d%d%d",a,b,c,d,e);}return 0;}2、某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:1)A和B两人中至少去一人;2)A和D不能一起去;3)A、E和F三人中要派两人去;4)B和C都去或都不去;5)C和D两人中去一个;6)若D不去,则E也不去。
试编写一个程序,输出问应当让哪几个人去?#include<stdio.h>int main(){int a,b,c,d,e,f;for(a=1;a>=0;a--)for(b=1;b>=0;b--)/*1:去 0:不去*/for(c=1;c>=0;c--)for(d=1;d>=0;d--)for(e=1;e>=0;e--)for(f=1;f>=0;f--){if(a+b>=1&&a+d!=2&&a+e+f==2&&b==c&&c+d==1&&(d+e==0||d==1))printf("a=%d,b=%d,c=%d,d=%d,e=%d,f=%d",a,b,c,d,e,f);}return 0;}3、警察局抓住了A、B、C、D四名盗窃嫌疑犯,其中只有一人是小偷。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
蓝桥杯练习系统题目汇总入门训练1. Fibonacci数列问题描述Fibonacci数列的递推公式为:F n=F n-1+F n-2,其中F1=F2=1。
当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。
输入格式输入包含一个整数n。
输出格式输出一行,包含一个整数,表示F n除以10007的余数。
说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。
样例输入10样例输出55样例输入22样例输出7704数据规模与约定1 <= n <= 1,000,000。
参考代码:c++1.#include<stdlib.h>2.#include<stdio.h>3.#define MOD 100074.#define MAXN 10000015.int n, i, F[MAXN];6.int main()7.{8.scanf("%d", &n);9.F[1] = 1;10.F[2] = 1;11.for(i = 3; i <= n; ++i)12.F[i] = (F[i-1] + F[i-2]) % MOD;13.printf("%d\n", F[n]);14.return0;15.}2. 实数输出问题描述给定圆的半径r,求圆的面积。
输入格式输入包含一个整数r,表示圆的半径。
输出格式输出一行,包含一个实数,四舍五入保留小数点后7位,表示圆的面积。
说明:在本题中,输入是一个整数,但是输出是一个实数。
对于实数输出的问题,请一定看清楚实数输出的要求,比如本题中要求保留小数点后7位,则你的程序必须严格的输出7位小数,输出过多或者过少的小数位数都是不行的,都会被认为错误。
实数输出的问题如果没有特别说明,舍入都是按四舍五入进行。
样例输入4样例输出50.2654825数据规模与约定1 <= r <= 10000。
提示本题对精度要求较高,请注意π的值应该取较精确的值。
你可以使用常量来表示π,比如PI=3.14159265358979323,也可以使用数学公式来求π,比如PI=atan(1.0)*4。
c++1.#include<stdio.h>2.#include<math.h>3.int main()4.{5.int r;6.double s, PI;7.scanf("%d", &r);8.PI = atan(1.0) * 4;9.s = PI * r * r;10.printf("%.7lf", s);11.return0;12.}3. 求和公式问题描述求1+2+3+...+n的值。
输入格式输入包括一个整数n。
输出格式输出一行,包括一个整数,表示1+2+3+...+n的值。
样例输入4样例输出10样例输入100说明:有一些试题会给出多组样例输入输出以帮助你更好的做题。
一般在提交之前所有这些样例都需要测试通过才行,但这不代表这几组样例数据都正确了你的程序就是完全正确的,潜在的错误可能仍然导致你的得分较低。
样例输出5050数据规模与约定1 <= n <= 1,000,000,000。
说明:请注意这里的数据规模。
本题直接的想法是直接使用一个循环来累加,然而,当数据规模很大时,这种“暴力”的方法往往会导致超时。
此时你需要想想其他方法。
你可以试一试,如果使用1000000000作为你的程序的输入,你的程序是不是能在规定的上面规定的时限内运行出来。
本题另一个要值得注意的地方是答案的大小不在你的语言默认的整型(int)范围内,如果使用整型来保存结果,会导致结果错误。
如果你使用C++或C语言而且准备使用printf输出结果,则你的格式字符串应该写成%I64d以输出long long类型的整数。
c++:1.#include<iostream>ing namespace std;3.int main()4.{5.long long n;6.cin >> n;7.cout << (1+n) * n / 2;8.return0;9.}c:1.#include<stdio.h>2.int main()3.{4.int n;5.long long ret = 0, tmp;6.scanf("%d", &n);7.tmp = n;8.printf("%I64d", (1+tmp) * tmp / 2);9.return0;10.}4. A+B问题问题描述输入A、B,输出A+B。
说明:在“问题描述”这部分,会给出试题的意思,以及所要求的目标。
输入格式输入的第一行包括两个整数,由空格分隔,分别表示A、B。
说明:“输入格式”是描述在测试你的程序时,所给的输入一定满足的格式。
做题时你应该假设所给的输入是一定满足输入格式的要求的,所以你不需要对输入的格式进行检查。
多余的格式检查可能会适得其反,使用你的程序错误。
在测试的时候,系统会自动将输入数据输入到你的程序中,你不能给任何提示。
比如,你在输入的时候提示“请输入A、B”之类的话是不需要的,这些多余的输出会使得你的程序被判定为错误。
输出格式输出一行,包括一个整数,表示A+B的值。
说明:“输出格式”是要求你的程序在输出结果的时候必须满足的格式。
在输出时,你的程序必须满足这个格式的要求,不能少任何内容,也不能多任何内容。
如果你的内容和输出格式要求的不一样,你的程序会被判断为错误,包括你输出了提示信息、中间调试信息、计时或者统计的信息等。
样例输入12 45说明:“样例输入”给出了一组满足“输入格式”要求的输入的例子。
这里给出的输入只是可能用来测试你的程序的一个输入,在测试的时候,还会有更多的输入用来测试你的程序。
样例输出57说明:“样例输出”给出了一组满足“输出格式”要求的输出的例子。
样例输出中的结果是和样例输入中的是对应的,因此,你可以使用样例的输入输出简单的检查你的程序。
要特别指出的是,能够通过样例输入输出的程序并不一定是正确的程序,在测试的时候,会用很多组数据进行测试,而不局限于样例数据。
有可能一个程序通过了样例数据,但测试的时候仍只能得0分,可能因为这个程序只在一些类似样例的特例中正确,而不具有通用性,再测试更多数据时会出现错误。
比如,对于本题,如果你写一个程序不管输入是什么都输入57,则样例数据是对的,但是测试其他数据,哪怕输入是1和2,这个程序也输出57,则对于其他数据这个程序都不正确。
数据规模与约定-10000 <= A, B <= 10000。
说明:“数据规模与约定”中给出了试题中主要参数的范围。
这个范围对于解题非常重要,不同的数据范围会导致试题需要使用不同的解法来解决。
比如本题中给的A、B范围不大,可以使用整型(int)来保存,如果范围更大,超过int的范围,则要考虑其他方法来保存大数。
有一些范围在方便的时候是在“问题描述”中直接给的,所以在做题时不仅要看这个范围,还要注意问题描述。
提示本题的C++源代码如下:1.#include <iostream>2.ing namespace std;4.5.int main()6.{7.int a,b;8. cin >> a >>b;9. cout << a +b;10.return0;11.}本题的C源代码如下:1.#include <stdio.h>2.3.int main()4.{5.int a,b;6. scanf("%d%d", &a,&b);7. printf("%d",a+b);8.return0;9.}说明:要答题,请点击页面上方的“提交此题”按钮,页面将跳转到提交代码的页面,选择好你的编译语言,将你的编写好的代码粘贴到代码框中,再点击“提交答案”即可。
你的答案提交给系统后系统会自动对你的代码进行判分,并跳转到结果的列表里面,你可以直接从列表中看到你提交的代码的状态,一般几秒钟后就可以看到判分的结果。
本题作为第一题,在提示中已经分别给了C++和Java的代码,你可以直接把这个代码拷贝过去作为自己的代码提交。
请特别注意,Java的主类名必须是Main。
基础练习1.基础练习闰年判断问题描述给定一个年份,判断这一年是不是闰年。
当以下情况之一满足时,这一年是闰年:1. 年份是4的倍数而不是100的倍数;2. 年份是400的倍数。
其他的年份都不是闰年。
输入格式输入包含一个整数y,表示当前的年份。
输出格式输出一行,如果给定的年份是闰年,则输出yes,否则输出no。
说明:当试题指定你输出一个字符串作为结果(比如本题的yes或者no,你需要严格按照试题中给定的大小写,写错大小写将不得分。
样例输入2013样例输出no样例输入2016样例输出yes数据规模与约定1990 <= y <= 2050。
c++:1.#include<iostream>ing namespace std;3.int main()4.{5.int y;6.cin >> y;7.if(y%4==0&& y%100!=0|| y%400==0)8.cout << "yes"<< endl;9.else10.cout << "no"<< endl;11.return0;12.}c:1.#include<stdio.h>2.int main()3.{4.int y;5.scanf("%d", &y);6.if(y%4==0&& y%100!=0|| y%400==0)7.printf("yes");8.else9.printf("no");10.return0;11.}2.基础练习01字串问题描述对于长度为5位的一个01串,每一位都可能是0或1,一共有32种可能。
它们的前几个是:0000000001000100001100100请按从小到大的顺序输出这32种01串。
输入格式本试题没有输入。
输出格式输出32行,按从小到大的顺序每行一个长度为5的01串。