蓝桥杯练习系统题目汇总c++版

合集下载

蓝桥杯c 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篇]

蓝桥比赛练习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省赛试题及答案解析

蓝桥杯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语言答案

蓝桥杯试题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组省赛真题

第九届蓝桥杯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语言)

蓝桥杯试题答案(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组试题及答案第八届蓝桥杯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语言答案

蓝桥杯试题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四名盗窃嫌疑犯,其中只有一人是小偷。

第十四届蓝桥杯青少组省赛C++试题

第十四届蓝桥杯青少组省赛C++试题

一、选择十四届蓝桥杯省赛C++试题题第一题C++中,bool类型的变量占用字节数为()。

A、1B、2C、3D、4第二题以下关于数组的说法,不正确的是()。

A、数组中所有元素的类型必须相同B、数组中各元素在内存中是顺序存放的C、数组最后一个元素的索引是数组的长度D、数组名的第一个字符可以是下划线第三题设只含根结点的二叉树高度为1,共有62个结点的完全二叉树的高度为()。

A、4B、5C、6D、7第四题以下关于C++结构体的说法,正确的是()。

A、结构体中只能包含成员变量,不能包含成员函数B、结构体不能从另一个结构体继承C、结构体里面可以包含静态成员变量D、结构体里面不能包含构造函数第五题执行以下代码,输出的结果是()。

#include<iostream>using namespace std;int f(int k){if(k==1){return3;}return2*f(k-1)+1;int main(){int n=6;cout<<f(n);return0;}A、127B、97C、63D、126二、编程题第一题编程实现:特殊运算符题目描述:假定有一个运算符“>>>”,它的功能如下所示:>>>257=25>>>182=18>>>933=93给定一个正整数N(100<N<1000),请计算N–(>>>N)的结果。

例如:N=257时,257–(>>>257)=257–25=232输入描述:输入一个正整数N(100<N<1000)输出描述:输出一个整数,表示N-(>>>N)的结果样例输入:257样例输出:232第二题编程实现:四叶玫瑰数题目描述:四叶玫瑰数是指一个四位数,其各位上的数字的四次方之和等于本身的数。

给定两个正整数N和M,请将N~M(1≤N≤M≤1000000)之间(含N和M)的四叶玫瑰数按从小到大的顺序输出。

蓝桥杯练习系统题目汇总(含参考答案)

蓝桥杯练习系统题目汇总(含参考答案)

蓝桥杯练习系统题目汇总:入门训练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.}java:1.import java.util.Scanner;2.public class Main{3.public static void main(String[] args) {4.Scanner scanner = new Scanner(System.in) ;5.int num = scanner.nextInt() ;6.int[] a = new int[num+2] ;7.a[1] = a[2] = 1;8.if(num == 1) {9.a[num] = 1 ;10.}else if(num == 2) {11.a[num] = 1 ;12.}else{13.for(int i = 3; i <= num; i++) {14.a[i] = (a[i - 1] + a[i - 2]) % 10007 ;15.}16.}17.System.out.println(a[num]);18.}19.}2. 实数输出问题描述给定圆的半径r,求圆的面积。

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

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

1:假设有两种微生物 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 种群灭绝的最后一根稻草!//Muse牧马指证这道题的答案是错的并给出了代码。

我理解错了题意,误以为是“兔子繁殖”了。

//代码:#include <cstdio>int main(){long int X=10, Y=90;for(int k=1; k<=120; k++)//半分钟一个单位{if(k%2==1)Y -= X;//因为X出生半分钟后就要吃Y,尔后每1分钟要吃Y,所以永远都是奇数个半分钟的时候吃Y,又因为此时X不会增长(题目为了减小讨论的复杂度),所以直接减X 数量即可。

if(k%4==0)Y *= 2;//每2分钟翻倍if(k%6==0)X *= 2;//每3分钟翻倍,X和Y的翻倍是相互独立的,不需要另作讨论。

}printf("%d", Y);return0;}2:ABCDE * ? = EDCBA“ABCDE代表不同的数字,问号也代表某个数字!"21978//5层循环就OK了3:有一群海盗(不多于20人),在船上比拼酒量。

过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。

再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。

当第4瓶酒平分喝下后,大家都倒下了。

等船长醒来,发现海盗船搁浅了。

他在航海日志中写到:“......昨天,我正好喝了一瓶.......奉劝大家,开船不喝酒,喝酒别开船......”请你根据这些信息,推断开始有多少人,每一轮喝下来还剩多少人。

蓝桥杯试题及答案c语言

蓝桥杯试题及答案c语言

蓝桥杯试题及答案c语言蓝桥杯试题及答案C语言1. 题目一:计算阶乘要求:编写一个程序,输入一个非负整数n,输出n的阶乘。

```c#include <stdio.h>int main() {int n, i;long long factorial = 1;printf("请输入一个非负整数:");scanf("%d", &n);for(i = 1; i <= n; i++) {factorial *= i;}printf("%d的阶乘是:%lld\n", n, factorial);return 0;}```2. 题目二:寻找最大值要求:给定一个整数数组,找出数组中的最大值。

```c#include <stdio.h>int main() {int arr[5] = {10, 20, 30, 40, 50};int max = arr[0];for(int i = 1; i < 5; i++) {if(arr[i] > max) {max = arr[i];}}printf("数组中的最大值是:%d\n", max);return 0;}```3. 题目三:字符串反转要求:编写一个程序,输入一个字符串,输出其反转后的字符串。

```c#include <stdio.h>#include <string.h>int main() {char str[100], reversed[100];printf("请输入一个字符串:");scanf("%s", str);int len = strlen(str);for(int i = 0; i < len; i++) {reversed[i] = str[len - 1 - i];}reversed[len] = '\0';printf("反转后的字符串是:%s\n", reversed);return 0;```4. 题目四:素数判断要求:编写一个程序,输入一个正整数,判断其是否为素数。

蓝桥杯第六届C语言真题汇总完整版

蓝桥杯第六届C语言真题汇总完整版

蓝桥杯第六届C语言真题汇总完整版蓝桥杯第六届C语言真题汇总HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】1、奖券数目有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。

虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。

某抽奖活动的奖券号码是5位数(),要求其中不要出现带“4”的号码,主办单位请你计算一下,如果任何两张奖券不重号,最多可发出奖券多少张。

请提交该数字(一个整数),不要写任何多余的内容或说明性文字。

2、星系炸弹在X星系的广袤空间中漂浮着许多X星人造“炸弹”,用来作为宇宙中的路标。

每个炸弹都可以设定多少天之后爆炸。

比如:阿尔法炸弹2015年1月1日放置,定时为15天,则它在2015年1月16日爆炸。

有一个贝塔炸弹,2014年11月9日放置,定时为1000天,请你计算它爆炸的准确日期。

请填写该日期,格式为yyyy-mm-dd 即4位年份2位月份2位日期。

比如:2015-02-19 请严格按照格式书写。

不能出现其它文字或符号。

if(year%4==0||(year%100==0&&year%400!=0)) 3、三羊献瑞观察下面的加法算式:祥瑞生辉+ 三羊献瑞-------------------三羊生瑞气(如果有对齐问题,可以参看【图】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。

请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。

4、格子中输出StringInGrid函数会在一个指定大小的格子中打印指定的字符串。

要求字符串在水平、垂直两个方向上都居中。

如果字符串太长,就截断。

如果不能恰好居中,可以稍稍偏左或者偏上一点。

下面的程序实现这个逻辑,请填写划线部分缺少的代码。

#include <>#include <>void StringInGrid(int width, int height, const char* s){int i,k;char buf[1000];strcpy(buf, s);if(strlen(s)>width-2) buf[width-2]=0;printf("+");for(i=0;i<="">printf("+\n");for(k=1; k<(height-1)/2;k++){printf("|");for(i=0;iprintf("|\n");}printf("|");printf("%*s%s%*s",_____________________________________________); .9 这九个数字组成一个分数,其值恰好为1/3,如何组法?下面的程序实现了该功能,请填写划线部分缺失的代码。

2016蓝桥杯c语言校赛试题及答案

2016蓝桥杯c语言校赛试题及答案

2016蓝桥杯c语言校赛试题及答案2016蓝桥杯C语言校赛试题及答案一、选择题(每题5分,共30分)1. 下列哪个选项是C语言中合法的变量名?A. 2variableB. variable2C. _variableD. variable-2答案:C2. C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:B3. 在C语言中,以下哪个选项是正确的字符串定义?A. char str[] = "Hello";B. char str[6] = "Hello";C. char str[] = {'H', 'e', 'l', 'l', 'o', '\0'};D. char str[6] = {'H', 'e', 'l', 'l', 'o', '\0'};答案:C4. 下列哪个选项是C语言中合法的数组声明?A. int arr[] = {1, 2, 3};B. int arr[3] = {1, 2, 3};C. int arr[3] = {1, 2};D. int arr[] = {1, 2, 3, 4};答案:A5. 在C语言中,以下哪个选项是正确的条件语句?A. if (x > y) { ... }B. if x > y { ... }C. if (x > y) then { ... }D. if x > y then { ... }答案:A6. 下列哪个选项是C语言中合法的循环语句?A. for (int i = 0; i < 10; i++)B. for i = 0 to 10C. while (i < 10)D. do { ... } while (i < 10);答案:A二、填空题(每题5分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是_________。

蓝桥杯2016年c语言试题及答案

蓝桥杯2016年c语言试题及答案

蓝桥杯2016年c语言试题及答案蓝桥杯2016年C语言试题及答案1. 单选题- 1.1 以下哪个选项是C语言中合法的变量名?- A. 2variable- B. variable2- C. variable_2- D. variable-2- 答案:C- 1.2 C语言中,以下哪个关键字用于定义一个函数?- A. class- B. function- C. def- D. int- 答案:D2. 多选题- 2.1 在C语言中,哪些运算符用于算术运算?- A. %- B. +- C. -- D. *- 答案:A, B, C, D- 2.2 以下哪些选项是C语言中合法的循环语句?- A. for- B. while- C. do-while- D. repeat-until- 答案:A, B, C3. 填空题- 3.1 在C语言中,用于定义一个整型变量的关键字是 ________。

- 答案:int- 3.2 如果一个函数没有返回值,应该使用 ________ 关键字来定义。

- 答案:void4. 简答题- 4.1 请解释C语言中指针的概念。

- 答案:- 指针是一种数据类型,它存储了另一个变量的内存地址。

通过指针,程序可以间接访问和修改变量的值。

- 4.2 描述C语言中数组和指针的关系。

- 答案:- 数组名在大多数情况下可以作为指向数组首元素的指针使用。

数组的每个元素可以通过指针偏移量来访问。

5. 编程题- 5.1 编写一个C语言程序,计算并输出100以内所有奇数的和。

- 答案:```c#include <stdio.h>int main() {int sum = 0;for (int i = 1; i < 100; i += 2) {sum += i;}printf("Sum of odd numbers from 1 to 99 is: %d\n", sum);return 0;}```- 5.2 编写一个C语言函数,实现字符串反转的功能。

蓝桥杯软件大赛c真题及参考答案

蓝桥杯软件大赛c真题及参考答案

第四届蓝桥杯软件大赛c/C++本科B组真题1.题目标题: 高斯日记大数学家高斯有个好习惯:无论如何都要记日记。

他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。

这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。

在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。

高斯获得博士学位的那天日记上标着:8113请你算出高斯获得博士学位的年月日。

提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21请严格按照格式,通过浏览器提交答案。

注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。

# include <stdio.h>int isLeap(int y);int nday(int y, int m, int d);void ymd(int n);int main(void){int n = 8113;int yb = 1777, mb = 4, db = 30; //birthn = n - 1 + nday(yb, mb, db);int yp, np; //printfor(int i = yb; n > 0; i++) {yp = i;np = n;if(isLeap(i)) n -= 366;else n -= 365;}printf("%d-", yp);ymd(np);return 0;}int nday(int y, int m, int d){int n = 0;int a[2][12] = {{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};for(int i = 0; i < (m - 1); i++) n += a[isLeap(y)][i];n += d;return n;}void ymd(int n){int a[2][12] = {{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};int mp, dp;for(int i = 0; n > 0; i++) {dp = n; mp = i;n -= a[isLeap(i)][i]; }printf("%d-%d\n", mp + 1, dp);}int isLeap(int y){if((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) return 1;else return 0;}最后答案1799-07-162.标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

蓝桥杯c语言试题(3)

蓝桥杯c语言试题(3)

蓝桥杯c语言试题(3)蓝桥杯c语言试题2015};099100f(x, 0, 0);101102printf("%d\n", N);103104return 0;105}第八题:编程题:这个程序的任务就是把一串拼音字母转换为6位数字(密码)。

我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。

变换的过程如下:第一步. 把字符串6个一组折叠起来,比如wangximing则变为:wangximing第二步. 把所有垂直在同一个位置的字符的ascii码值相加,得出6个数字,如上面的例子,则得出:228 202 220 206 120 105第三步. 再把每个数字“缩位”处理:就是把每个位的数字相加,得出的数字如果不是一位数字,就再缩位,直到变成一位数字为止。

例如: 228 => 2+2+8=12 => 1+2=3上面的数字缩位后变为:344836, 这就是程序最终的输出结果!要求程序从标准输入接收数据,在标准输出上输出结果。

输入格式为:第一行是一个整数n(<100),表示下边有多少输入行,接下来是n行字符串,就是等待变换的字符串。

输出格式为:n行变换后的6位密码。

第九题:足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。

假设有甲、乙、丙、丁四个球队。

根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表:甲乙丙丁甲– 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万次模拟,计算出甲队夺冠的概率。

第十题:串“abcd”每个字符都向右移位,最右的移动到第一个字符的位置,就变为“dabc”。

蓝桥杯集训题(C语言)

蓝桥杯集训题(C语言)

蓝桥杯集训题(C语言)蓝桥杯集训题(C语言)1.难度:中有个时候需要比较精确的算一个除法。

如果两个数,m n输出结果,保证可以保留小数点后100位。

如输入 1 8输出 0.125 输入 19 7 输出2.7142857142857(后一百位)提示:用浮点型是行不通的想其他办法2 难道:中排列组合:组合基本性质有: 1. C(m,n)=C(m-n,n) 2. C(0,n)=13. C(m,n+1)=C(m,n)+C(m-1,n);4. C(1,n)=n输入两个数x y(>0)表示C(x,y) 求c(x,y); 输入 3 6 输出 20提示:建议运用递归思想,当m<=n/2时,用1进行化简。

3.难度:易给出一个由O和X组成的串(长度为1~80),统计得分。

每个O的得分为目前连续出现的O的个数,X的得分为0.例如OOXXOXXOOO的得分为1+2+0+0+1+0+0+1+2+34.难度:易输入n个单词,统计单词个数输入hello word 输出 2 输入I love you 输出 35.难度:易输入m n输出行n列的矩阵(规则在样例中)输入 2 3 输出 1 4 5 2 3 6 输入 3 4输出 1 6 7 122 5 8 113 4 9 106.难度:较难排列(permutation)用 1,2,3.....9组成3个三位数 abc,def和ghi,每个数字恰好使用一次,要求abc:def:ghi=1:2:3.按照\def ghi\的格式输出说有解。

7.难度:难给出n和n个整数,和k(1<=k<=n),输出这些整数重小到大的第k个(例k=1时就是最小值)。

n<=10^7;提示:请先彻底掌握快速排序。

本题看似简单,其实不然。

最容易想到的方法是先排序,然后直接输出第k个数,但10^7的规模即使使用快速排序 (O(�Sn))的算法来说也较大。

可以在快速排序的“划分“结束后,数组A[p……r]被分成了A[p……q]和A[q+1……r],,则可以根据左边的元素个数q-p+1和k的大小关系只在左边或者右边递归求解。

蓝桥杯试题C语言答案1

蓝桥杯试题C语言答案1

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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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串。

相关文档
最新文档