蓝桥杯2015第六届C语言真题汇总
蓝桥杯试题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程序设计第六届竞赛试题1

第六届c程序设计竞赛试题试题一素数问题走进世博园某信息通信馆,参观者将获得前所未有的尖端互动体验,一场充满创想和喜悦的信息通信互动体验秀将以全新形式呈现,从观众踏入展馆的第一步起,就将与手持终端密不可分,人类未来梦想的惊喜从参观者的掌上展开。
在等候区的梦想花园中,参观者便开始了他们奇妙的体验之旅,等待中的游客可利用手机等终端参加互动小游戏,与梦想剧场内的虚拟人物Kr Kong进行猜数比赛。
当屏幕出现一个整数x时,若你能比Kr Kong更快的发出最接近它的素数答案,你将会获得一个意想不到的礼物。
例如:当屏幕出现22时,你的回答应该是23;当屏幕出现8时,你的回答应是7;若x本身是素数,则回答x;若接近x的素数有两个时,则回答大于它的素数。
标准输入第一行:N 要竞猜的整数个数接下来有N行,每行只有一个正整数x标准输出输出有N行,每行是对应x的最接近它的素数。
约束条件1<=N<=5 1<=x<=1000样例输入382325样例输出72323#include<stdio.h>#include<math.h>void main(){int prime(int m);int N,i,a[5];int compare1,compare2;while(N<1||N>5){scanf("%d",&N);if(N<1||N>5)printf("输入有误请重新输入:\n"); }for(i=0;i<N;i++){scanf("%d",&a[i]);}printf("\n");for(i=0;i<N;i++){if(prime(a[i]))printf("%d\n",a[i]);else{compare1=a[i];compare2=a[i];while(1){compare1=compare1+1;if(prime(compare1))break;}while(1){compare2=compare2-1;if(prime(compare2))break;}if(compare1-a[i]<a[i]-compare2)printf("%d\n",compare1);else if(compare1-a[i]>a[i]-compare2)printf("%d\n",compare2);else if(compare1-a[i]==a[i]-compare2)printf("%d\n",compare1);elseprintf("error!\n");}}printf("\n");}int prime(int m){int i,n;if(m==1)return 0;n=sqrt(m);for(i=2;i<=n;i++)if(m%i==0){return 0;}return 1;}试题二救灾投放物质问题灾区已经非常困难,灾民需要帐篷、衣物、食品和血浆。
2015蓝桥杯c语言试题及答案

2015蓝桥杯c语言试题及答案2015蓝桥杯C语言试题及答案1. 以下哪个选项是C语言中合法的标识符?A. 2variableB. variable2C. intD. _int答案:B,D2. C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A3. 以下哪个选项不是C语言中的控制语句?A. ifB. whileC. switchD. case答案:D4. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A5. 下列关于C语言中数组的描述,错误的是:A. 数组可以存储相同类型的多个元素B. 数组的大小在编译时确定C. 数组的索引从0开始D. 数组的索引可以是负数答案:D6. C语言中,以下哪个选项表示逻辑与运算?A. &&B. ||C. !D. ^答案:A7. 在C语言中,以下哪个函数用于将一个字符串复制到另一个字符串?A. strcat()B. strcpy()C. strcmp()D. strlen()答案:B8. C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. functionD. return答案:B9. 在C语言中,以下哪个选项表示全局变量?A. staticB. externC. autoD. register答案:B10. 在C语言中,以下哪个选项用于定义一个指针?A. int *p;B. int p[];C. int p[10];D. int p=10;答案:A11. 在C语言中,以下哪个选项表示无符号整型?A. intB. unsigned intC. longD. float答案:B12. 在C语言中,以下哪个函数用于将一个浮点数转换为字符串?A. sprintf()B. sscanf()C. strcat()D. strcmp()答案:A13. 在C语言中,以下哪个选项表示一个函数的返回类型为无返回值?A. intB. voidC. charD. float答案:B14. 在C语言中,以下哪个选项表示一个函数的返回类型为字符型?A. intB. voidC. charD. float答案:C15. 在C语言中,以下哪个关键字用于定义一个宏?A. defineB. macroC. constantD. include答案:A。
2015年蓝桥杯javac组第二题

题目:2015年蓝桥杯javac组第二题内容要点:1. 题目描述:给定一个字符串,要求在字符串中找出最长的连续不重复子串,并返回它的长度。
2. 输入:一个字符串,长度不超过xxx。
3. 输出:一个整数,表示最长的连续不重复子串的长度。
4. 例子:输入 "abcabcbb",输出 3;输入 "bbbbb",输出 1;输入"pwwkew",输出 3。
5. 解题思路:采用滑动窗口的方法,遍历字符串的过程中,维护一个窗口,通过移动窗口的起始位置和结束位置来寻找最长的连续不重复子串。
6. 算法步骤:6.1 初始化最长长度maxLength为0,起始位置start为0,字符索引字典charIndexDict为空。
6.2 遍历字符串,对于每个字符:6.2.1 如果字符在字典中存在且索引大于等于start,则将start移动到当前字符索引的下一个位置。
6.2.2 计算最长长度maxLength和当前窗口长度的较大值。
6.2.3 将当前字符的索引存入字典中。
7. 代码实现:```javapublic class Solution {public int lengthOfLongestSubstring(String s) {int maxLength = 0;int start = 0;Map<Character, Integer> charIndexMap = new HashMap<>();for (int end = 0; end < s.length(); end++) {char c = s.charAt(end);if (charIndexMap.cont本人nsKey(c) charIndexMap.get(c) >= start) {start = charIndexMap.get(c) + 1;}maxLength = Math.max(maxLength, end - start + 1); charIndexMap.put(c, end);}return maxLength;}}```文章结构:1. 概述:介绍2015年蓝桥杯javac组第二题的题目描述。
蓝桥杯大题总结(历届比赛共40多大题)

常用算法题目1.算法是这样的,如果给定N个不同字符,将这N个字符全排列,最终的结果将会是N!种。
如:给定A、B、C三个不同的字符,则结果为:ABC、ACB、BAC、BCA、CAB、CBA一共3!=3*2=6种情况。
public class AllPermutation{public static void main(String[] args){//使用递归完成全排列char[] source=new char[]{'A','B','C'};char[] result=new char[source.length];allPermutation(0,source,result);}/**** @param index当前考虑的数的下标(从0开始)* @param source* @param result*/public static void allPermutation(int index,char[] source,char[] result){//当源数据中只有一个字符时,将该字符加入结果数组,并输出if(source.length==1){result[index]=source[0];show(result);return ;}for(int i=0;i<result.length-index;i++){result[index]=source[i];char[] newSource=getNewSource(source,source[i]);allPermutation(index+1, newSource,result);}}public static void show(char[] result){System.out.println(result);}/*** 生成去掉指定字符的新源数据数组* @param source 原来的源数据数组* @param c 指定去掉的字符* @return*/public static char[] getNewSource(char[] source,char c){ char[] newSource=new char[source.length-1];for(int i=0,j=0;i<source.length;i++){if(source[i]!=c){newSource[j]=source[i];j++;}}return newSource;}}2.串的简单处理串的处理在实际的开发工作中,对字符串的处理是最常见的编程任务。
2015年蓝桥杯C组试题及答案

2014年蓝桥杯c语言试题及答案发布时间:2015-04-091. 标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。
有一次,老师出的题目是:36 x 495 = ?他却给抄成了:396 x 45 = ?但结果却很戏剧性,他的答案竟然是对的!!因为 36 * 495 = 396 * 45 = 17820类似这样的巧合情况可能还有很多,比如:27 * 594 = 297 * 54假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。
满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。
答案直接通过浏览器提交。
注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。
答案:1422. 标题: 振兴中华小明参加了学校的趣味运动会,其中的一个项目是:跳格子。
地上画着一些格子,每个格子里写一个字,如下所示:(也可参见p1.jpg) 从我做起振我做起振兴做起振兴中起振兴中华比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。
一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?答案是一个整数,请通过浏览器直接提交该数字。
答案:353. 题目标题: 猜年龄美国数学家维纳(N.Wiener)智力早熟,11岁就上了大学。
他曾在1935~1936年应邀来中国清华大学讲学。
一次,他参加某个重要会议,年轻的脸孔引人注目。
于是有人询问他的年龄,他回答说:“我年龄的立方是个4位数。
我年龄的4次方是个6位数。
这10个数字正好包含了从0到9这10个数字,每个都恰好出现1次。
”请你推算一下,他当时到底有多年轻。
蓝桥杯试题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四名盗窃嫌疑犯,其中只有一人是小偷。
2015年第六届蓝桥杯软件类省赛真题_C大学C组

for(i=0; i<N; i++){
a[i][0] = 1;
a[i][i] = 1;
}
for(i=1; i<N; i++){
for(j=1; j<i; j++) ___________________________;
}
for(i=0; i<N; i++){
1/2 1/3 1/10 1/15
1/2 1/4 1/5 1/20
1/2 1/4 1/6 1/12
再例如,
输入:
5
程序应该输出:
1/2 1/3 1/12 1/21 1/28
1/2 1/4 1/6 1/21 1/28
1/2 1/4 1/7 1/14 1/28
1/2 1/4 1/8 1/12 1/24
1/2 1/4 1/9 1/12 1/18
for(j=0; j<=i; j++) printf("%-5d", a[i][j]);
printf("\n");
}
return 0;
}
C大学C组
2_题目
1/1 + 1/2 + 1/3 + 1/4 + ... 在数学上称为调和级数。
它是发散的,也就是说,只要加上足够多的项,就可以得到任意大的数字。
但是,它发散的很慢:
前1项和达到 1.0
前4项和才超过 2.0
前83项的和才超过 5.0
那么,请你计算一下,要加多少项,才能使得和达到或超过 15.0 呢?
请填写这个整数。
注意:只需要填写一个整数,不要填写任何多余的内容。比如说明文字。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1、奖券数目有些人很迷信数字,比如带“4”的数字,认为和“死”谐音,就觉得不吉利。
虽然这些说法纯属无稽之谈,但有时还要迎合大众的需求。
某抽奖活动的奖券号码是5位数(10000-99999),要求其中不要出现带“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、三羊献瑞观察下面的加法算式:祥瑞生辉+ 三羊献瑞-------------------三羊生瑞气(如果有对齐问题,可以参看【图1.jpg】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
4、格子中输出StringInGrid函数会在一个指定大小的格子中打印指定的字符串。
要求字符串在水平、垂直两个方向上都居中。
如果字符串太长,就截断。
如果不能恰好居中,可以稍稍偏左或者偏上一点。
下面的程序实现这个逻辑,请填写划线部分缺少的代码。
#include <stdio.h>#include <string.h>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<width-2;i++) printf("-");printf("+\n");for(k=1; k<(height-1)/2;k++){printf("|");for(i=0;i<width-2;i++) printf(" ");printf("|\n");}printf("|");printf("%*s%s%*s",___________________ __________________________); //填空printf("|\n");for(k=(height-1)/2+1; k<height-1; k++){printf("|");for(i=0;i<width-2;i++) printf(" ");printf("|\n");}printf("+");for(i=0;i<width-2;i++) printf("-");printf("+\n");}int main(){StringInGrid(20,6,"abcd1234");return 0;}对于题目中数据,应该输出:+------------------+| || abcd1234 || || |+------------------+(如果出现对齐问题,参看【图1.jpg】)注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。
5、九数组分数1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?下面的程序实现了该功能,请填写划线部分缺失的代码。
#include <stdio.h>void test(int x[]){int a = x[0]*1000 + x[1]*100 + x[2]*10 + x[3];int b = x[4]*10000 + x[5]*1000 + x[6]*100+ x[7]*10 + x[8];if(a*3==b) printf("%d / %d\n", a, b);}void f(int x[], int k){int i,t;if(k>=9){test(x);return;}for(i=k; i<9; i++){{t=x[k]; x[k]=x[i]; x[i]=t;}f(x,k+1);___________________________________ __________ // 填空处}}int main(){int x[] = {1,2,3,4,5,6,7,8,9};f(x,0);return 0;}注意:只填写缺少的内容,不要书写任何题面已有代码或说明性文字。
6、加法变乘法我们都知道:1+2+3+ ... + 49 = 1225现在要求你把其中两个不相邻的加号变成乘号,使得结果为2015比如:1+2+3+...+10*11+12+...+27*28+29+...+49 = 2015就是符合要求的答案。
请你寻找另外一个可能的答案,并把位置靠前的那个乘号左边的数字提交(对于示例,就是提交10)。
注意:需要你提交的是一个整数,不要填写任何多余的内容。
7、牌型种数小明被劫持到X赌城,被迫与其他3人玩牌。
一副扑克牌(去掉大小王牌,共52张),均匀发给4个人,每个人13张。
这时,小明脑子里突然冒出一个问题:如果不考虑花色,只考虑点数,也不考虑自己得到的牌的先后顺序,自己手里能拿到的初始牌型组合一共有多少种呢?请填写该整数,不要填写任何多余的内容或说明文字。
8、移动距离X星球居民小区的楼房全是一样的,并且按矩阵样式排列。
其楼房的编号为1,2,3...当排满一行时,从下一行相邻的楼往反方向排号。
比如:当小区排号宽度为6时,开始情形如下:1 2 3 4 5 612 11 10 9 8 713 14 15 .....我们的问题是:已知了两个楼号m和n,需要求出它们之间的最短移动距离(不能斜线方向移动)输入为3个整数w m n,空格分开,都在1到10000范围内w为排号宽度,m,n为待计算的楼号。
要求输出一个整数,表示m n 两楼间最短移动距离。
例如:用户输入:6 8 2则,程序应该输出:4再例如:用户输入:4 7 20则,程序应该输出:5资源约定:峰值内存消耗< 256MCPU消耗< 1000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。
9、垒骰子赌圣atm晚年迷恋上了垒骰子,就是把骰子一个垒在另一个上边,不能歪歪扭扭,要垒成方柱体。
经过长期观察,atm 发现了稳定骰子的奥秘:有些数字的面贴着会互相排斥!我们先来规范一下骰子:1 的对面是4,2 的对面是5,3 的对面是6。
假设有m 组互斥现象,每组中的那两个数字的面紧贴在一起,骰子就不能稳定的垒起来。
atm想计算一下有多少种不同的可能的垒骰子方式。
两种垒骰子方式相同,当且仅当这两种方式中对应高度的骰子的对应数字的朝向都相同。
由于方案数可能过多,请输出模10^9 + 7 的结果。
不要小看了atm 的骰子数量哦~「输入格式」第一行两个整数n mn表示骰子数目接下来m 行,每行两个整数 a b ,表示 a 和 b 数字不能紧贴在一起。
「输出格式」一行一个数,表示答案模10^9 + 7 的结果。
「样例输入」2 11 2「样例输出」544「数据范围」对于30% 的数据:n <= 5对于60% 的数据:n <= 100对于100% 的数据:0 < n <= 10^9, m <= 36 资源约定:峰值内存消耗< 256MCPU消耗< 2000ms请严格按要求输出,不要画蛇添足地打印类似:“请您输入...”的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0注意: 只使用ANSI C/ANSI C++ 标准,不要调用依赖于编译环境或操作系统的特殊函数。
注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。
提交时,注意选择所期望的编译器类型。