2014第五届蓝桥杯C-C++本科B组试题及答案
蓝桥杯历届c语言试题及答案

蓝桥杯历届c语言试题及答案蓝桥杯历届C语言试题及答案1. 问题描述编写一个程序,实现对给定整数数组进行排序的功能。
2. 输入格式第一行包含一个整数N,表示数组中元素的数量。
第二行包含N个整数,表示数组中的元素。
3. 输出格式输出排序后的数组。
4. 样例输入```53 14 1 5```5. 样例输出```1 1 3 4 5```6. 答案```c#include <stdio.h>#include <stdlib.h>void swap(int *a, int *b) {int temp = *a;*a = *b;*b = temp;}int partition(int arr[], int low, int high) { int pivot = arr[high];int i = (low - 1);for (int j = low; j <= high - 1; j++) {if (arr[j] < pivot) {i++;swap(&arr[i], &arr[j]);}}swap(&arr[i + 1], &arr[high]);return (i + 1);}void quickSort(int arr[], int low, int high) { if (low < high) {int pi = partition(arr, low, high);quickSort(arr, low, pi - 1);quickSort(arr, pi + 1, high);}}int main() {int N;scanf("%d", &N);int arr[N];for (int i = 0; i < N; i++) { scanf("%d", &arr[i]);}quickSort(arr, 0, N - 1);for (int i = 0; i < N; i++) { printf("%d ", arr[i]);}return 0;}```。
蓝桥杯 c 试题及答案

蓝桥杯 c 试题及答案蓝桥杯是中国著名的信息技术竞赛,被誉为“程序员的奥林匹克”。
每年举办的蓝桥杯分为初赛和复赛两个阶段,覆盖了大学生、高中生和中学生等多个年龄段。
本文将为大家介绍蓝桥杯 C 试题及答案,希望能对参赛者有所帮助。
一、试题概述蓝桥杯 C 试题是蓝桥杯竞赛中的一道编程题目,通常难度较大,需要对编程语言有一定的掌握和理解。
该题目主要涉及算法、数据结构、编程思想等方面的知识,要求选手提交一个能够运行的程序,并输出符合题目要求的结果。
二、题目要求蓝桥杯 C 试题通常以具体的问题场景为背景,要求选手使用编程语言解决实际的问题。
试题要求选手根据题目描述,编写相应的程序代码,并在规定的时间内提交答案。
三、解题思路解决蓝桥杯 C 试题首先需要仔细阅读题目要求和描述,理解问题的背景和具体需求。
在编写程序时,需要灵活运用所学的算法和数据结构知识,合理选择合适的数据类型和数据结构来解决问题。
解题思路可以从以下几个方面展开:1. 根据题目描述建立适当的数据模型;2. 分析题目需求,确定解题思路;3. 编写代码实现解题思路;4. 测试代码,确保程序运行正确。
四、参考答案由于蓝桥杯竞赛的试题内容每年都有所变化,因此无法提供具体的参考答案。
但是,在参加蓝桥杯之前,可以通过学习历年的蓝桥杯 C 试题,了解题型和解题方法,提高自己的编程能力。
在备战蓝桥杯时,可以参考以下几点建议:1. 多做练习题,熟悉各种题型;2. 学习常用的算法和数据结构,如排序、查找、树、图等;3. 加强对编程语言的掌握,熟悉常用的语法和函数库;4. 参加类似的编程比赛,提高解题速度和编码能力;5. 与他人讨论、交流,学习他人的解题思路和方法。
总之,蓝桥杯 C 试题及答案是参赛者备战蓝桥杯竞赛的重要参考资料。
希望本文的介绍能够对参赛者有所帮助,并祝愿大家在蓝桥杯竞赛中取得好成绩!。
蓝桥杯1431:[蓝桥杯][2014年第五届真题]分糖果Easyonlyonce
![蓝桥杯1431:[蓝桥杯][2014年第五届真题]分糖果Easyonlyonce](https://img.taocdn.com/s3/m/9cebb495b8d528ea81c758f5f61fb7360b4c2be0.png)
网络错误503请刷新页面重试持续报错请尝试更换浏览器或网络环境
蓝桥杯 1431: [蓝桥杯 ][2014年第五届真题 ]分糖果 Easyonlyonce
基本思想:
水题,唯一值得启发的可能也就是传递糖果的过程只需要把最后一个提前保存给第一位小孩即可;
#include<iostream> #include<stdlib.h> #include<stdio.h> #include<vector> #include<string> #include<math.h> #include<algorithm> #include<cstring> using namespace std; using std::vector; vector<int>children; vector<int>surge;
bool charge() { for (int i = 1; i < children.size(); i++) { if (children[i] != children[i - 1]) {
2014年第五届蓝桥杯软件类省赛真题_C高职

* * * *
* * * * * * * *
对于100%的数据,1<=n<=100000,0<=Hi<=1000000。
资源约定:
峰值内存消耗 < 256M
CPU消耗 < 1000ms
请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。
所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。
注意: main函数需要返回0
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。
答案是一个小写字母,请通过浏览器提交答案。不要填写任何多余的内容。
C高职
4_题目
标题:大衍数列
中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。
假设月利率是:0.005,即:千分之五。那么,
第一个月,小明要还本金 1250, 还要还利息:30000 * 0.005,总计 1400.00
第二个月,本金仍然要还 1250, 但利息为:(30000-1250) * 0.005 总计 1393.75
请问:小明在第15个月,应该还款多少(本金和利息的总和)?
* *
* * * *
* * * *
小明只想练习该书的第81页到第92页的武功,又不想带着整本书。请问他至少要撕下多少张纸带走?
这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。
C高职
2_题目
标题:等额本金
小明从银行贷款3万元。约定分24个月,以等额本金方式还款。
这种还款方式就是把贷款额度等分到24个月。每个月除了要还固定的本金外,还要还贷款余额在一个月中产生的利息。
蓝桥杯C语言本科B组预赛试题

蓝桥杯C语言本科B组预赛试题————————————————————————————————作者:————————————————————————————————日期:2014蓝桥杯C/C++语言本科B组预赛试题(完整)1.啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。
小明买了若干啤酒和饮料,一共花了82.3元。
我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。
注意:答案是一个整数。
请通过浏览器提交答案。
不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。
2.切面条一根高筋拉面,中间切一刀,可以得到2根面条。
如果先对折1次,中间切一刀,可以得到3根面条。
如果连续对折2次,中间切一刀,可以得到5根面条。
那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。
不要填写任何多余的内容。
3.李白打酒话说大诗人李白,一生好饮。
幸好他从不开车。
一天,他提着酒壶,从家里出来,酒壶中有酒2斗。
他边走边唱:无事街上走,提壶去打酒。
逢店加一倍,遇花喝一斗。
这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。
请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。
则:babaabbabbabbbb就是合理的次序。
像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。
注意:通过浏览器提交答案。
答案是个整数。
不要书写任何多余的内容。
4.史丰收速算史丰收速算法的革命性贡献是:从高位算起,预测进位。
不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。
其中,乘以7是最复杂的,就以它为例。
因为,1/7是个循环小数:0.142857...,如果多位数超过142857...,就要进1同理,2/7,3/7, ...6/7 也都是类似的循环小数,多位数超过n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。
蓝桥杯c语言试题及答案

蓝桥杯c语言试题及答案蓝桥杯C语言试题及答案一、选择题(每题2分,共10分)1. 在C语言中,以下哪个是正确的字符常量?A. 'A'B. "A"C. 123D. 0x41答案:A2. 下面哪个是C语言中的合法变量名?A. 2variableB. variable-nameC. _variableD. variable#name答案:C3. 以下哪个语句可以正确地声明一个整型数组?A. int array[10] = {0, 0, ...};B. int array[] = {0, 1, 2, ...};C. int array = {0, 1, 2, ...};D. int array[10] = {0};答案:D4. C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello\nWorld"D. "Hello" "World"答案:A5. 以下哪个是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D二、填空题(每空2分,共10分)6. 在C语言中,表示逻辑与的运算符是______。
答案:&&7. 一个C语言程序的执行是从______函数开始的。
答案:main8. 在C语言中,用于定义一个结构体的关键字是______。
答案:struct9. 以下代码段的输出结果是______。
```cint a = 5, b = 10;printf("%d", b % a);```答案:010. 当一个C语言程序中包含多个文件时,通常使用______预处理指令来包含头文件。
答案:#include三、简答题(每题5分,共10分)11. 请简述C语言中指针的概念。
2014第五届蓝桥杯C-C++本科B组试题及答案要点

2014第五届蓝桥杯C/C++本科B组试题及答案解答:#include<stdio.h>int main(){int x,y;double m=0;for(x=0,y=42;x<35 || x>y;){y = (int)(82.3-2.3*x)/1.9;m= 2.3*x+1.9*y;if(m==82.3)break;x = x+1;y = y-2;}printf("%d\n%d\n",x,y);return0;}解答:#include<stdio.h>#include<math.h>int main(){printf("%d"pow( 2.0 ,10.0 ) + 1); return0;}解答:#include<stdio.h>int sum=0;int f(int a,int b,int c){if(a>0)f(a-1,b,c*2);if(b>0)f(a,b-1,c-1);if(a==0&&b==0&&c==1)sum=sum+1;return sum;}int main(){f(5,9,2);printf("%d",sum);}解答:if(r>0)return i;解答:f(a, rank - 1, row,col+w/2);解答:#include<stdio.h>int main(void){int i,j,k,l;int z;for(i=1;i<10;i++)for(j=1;j<10;j++)for(k=1;k<10;k++)for(l=1;l<10;l++)if(i!=j&&k!=l)if((float)i*k/(j*l)==(float(i*10+k)/(j *10+l))){printf("%d/%d,%d/%d\n",i,j,k,l);z++;}printf("%d",z);return0;}答案:10解答://思路为将蚂蚁的碰撞理解为互相穿过#include<stdio.h>int main(){int n,m=1;int i,j=0,k=0;int a[100],b[100],c[100];scanf("%d",&n);for(i=0;i<n;i++)scanf("%d",&a[i]);for(i=0;i<n;i++){if(a[i]<0){b[j]=-a[i];j++;}else{c[k]=a[i];k++;}}if(a[1]<0)a[1]=-a[1];for(i=0;i<j;i++){if(b[i]>a[1])m++;}for(i=0;i<k;i++){if(c[i]<a[1])m++;}printf("%d\n",m);}解答:#include <stdio.h>int n, m, k, count = 0, map[51][51];void dfs(int x, int y, int max, int num){if(x == n || y == m || num > k) return;else if(x == n - 1 && y == m - 1){if(num == k) count++;else if(num == k - 1 && map[n - 1][m - 1] > max) count++;count %= 1000000007;}else{if(map[x][y] > max){dfs(x + 1, y, map[x][y], num + 1);dfs(x, y + 1, map[x][y], num + 1);}dfs(x + 1, y, max, num);dfs(x, y + 1, max, num);}}int main(void){int i, j;scanf("%d%d%d", &n, &m, &k);for(i = 0; i < n; i++){for(j = 0; j < m; j++){scanf("%d", &map[i][j]);}}dfs(0, 0, 0, 0);printf("%d\n", count);return0;}解答:#include <stdio.h>#include <stdlib.h>struct children{int height;int step;}ch[100001], s_ch[100001], temp;void swap(struct children *a, struct children *b){a->step++;b->step++;temp = *a;*a = *b;*b = temp;}int cmp(const void*a, const void*b){return(*(struct children *)a).height - (*(struct children *)b).height;}int main(void){int n, i, j, k, count = 0;scanf("%d", &n);for(i = 0; i < n; i++){scanf("%d", &ch[i].height);ch[i].step = 0;s_ch[i] = ch[i];}qsort(s_ch, n, sizeof(struct children), cmp);for(i = 0; i < n; i++){for(j = i; j < n; j++){if(s_ch[i].height == ch[j].height) break;}for(k = j; k>i; k--){swap(&ch[k], &ch[k - 1]);}}for(int i = 0; i < n; i++)count += (ch[i].step + 1) * ch[i].step / 2;printf("%d\n", count);return0;}。
第五届蓝桥杯C语言高职试题(填空)带答案

第一题标题:武功秘籍小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。
他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。
小明只想练习该书的第81页到第92页的武功,又不想带着整本书。
请问他至少要撕下多少张纸带走?这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。
第二题标题:等额本金小明从银行贷款3万元。
约定分24个月,以等额本金方式还款。
这种还款方式就是把贷款额度等分到24个月。
每个月除了要还固定的本金外,还要还贷款余额在一个月中产生的利息。
假设月利率是:0.005,即:千分之五。
那么,第一个月,小明要还本金1250, 还要还利息:30000 * 0.005,总计1400.00第二个月,本金仍然要还1250, 但利息为:(30000-1250) * 0.005 总计1393.75请问:小明在第15个月,应该还款多少(本金和利息的总和)?请把答案金额四舍五入后,保留两位小数。
注意:32.5,一定要写为:32.50通过浏览器提交答案,这是一个含有小数点和两位小数的浮点数字。
不要写多余内容(例如:多写了“元”或添加说明文字)第三题标题:猜字母把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。
接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。
得到的新串再进行删除奇数位置字母的动作。
如此下去,最后只剩下一个字母,请写出该字母。
答案是一个小写字母,请通过浏览器提交答案。
不要填写任何多余的内容。
第四题标题:大衍数列中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。
它的前几项是:0、2、4、8、12、18、24、32、40、50 ...其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。
以下的代码打印出了大衍数列的前100 项。
int main(){int i;for(i=1; i<100; i++){if(__________________) //填空printf("%d ", i*i/2);elseprintf("%d ", (i*i-1)/2);}printf("\n");}请填写划线部分缺失的代码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2014第五届蓝桥杯C/C++本科B组试题及答案
解答:
#include<stdio.h>
int main()
{
int x,y;
double m=0;
for(x=0,y=42;x<35 || x>y;)
{
y = (int)(82.3-2.3*x)/1.9;
m= 2.3*x+1.9*y;
if(m==82.3)
break;
x = x+1;
y = y-2;
}
printf("%d\n%d\n",x,y);
return0;
}
解答:
#include<stdio.h>
#include<math.h>
int main()
{
printf("%d"pow( 2.0 ,10.0 ) + 1); return0;
}
解答:
#include<stdio.h>
int sum=0;
int f(int a,int b,int c){
if(a>0)
f(a-1,b,c*2);
if(b>0)
f(a,b-1,c-1);
if(a==0&&b==0&&c==1)
sum=sum+1;
return sum;
}
int main(){
f(5,9,2);
printf("%d",sum);
}
解答:
if(r>0)return i;
解答:
f(a, rank - 1, row,col+w/2);
解答:
#include<stdio.h>
int main(void)
{
int i,j,k,l;
int z;
for(i=1;i<10;i++)
for(j=1;j<10;j++)
for(k=1;k<10;k++)
for(l=1;l<10;l++)
if(i!=j&&k!=l)
if((float)i*k/(j*l)==(float(i*10+k)/(j *10+l)))
{printf("%d/%d,%d/%d\n",i,j,k,l);
z++;
}
printf("%d",z);
return0;
}
答案:10
解答:
//思路为将蚂蚁的碰撞理解为互相穿过#include<stdio.h>
int main(){
int n,m=1;
int i,j=0,k=0;
int a[100],b[100],c[100];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
for(i=0;i<n;i++){
if(a[i]<0){
b[j]=-a[i];
j++;
}
else{
c[k]=a[i];
k++;
}
}
if(a[1]<0)
a[1]=-a[1];
for(i=0;i<j;i++){
if(b[i]>a[1])
m++;
}
for(i=0;i<k;i++){
if(c[i]<a[1])
m++;
}
printf("%d\n",m);
}
解答:
#include <stdio.h>
int n, m, k, count = 0, map[51][51];
void dfs(int x, int y, int max, int num)
{
if(x == n || y == m || num > k) return;
else if(x == n - 1 && y == m - 1)
{
if(num == k) count++;
else if(num == k - 1 && map[n - 1][m - 1] > max) count++;
count %= 1000000007;
}
else
{
if(map[x][y] > max)
{
dfs(x + 1, y, map[x][y], num + 1);
dfs(x, y + 1, map[x][y], num + 1);
}
dfs(x + 1, y, max, num);
dfs(x, y + 1, max, num);
}
}
int main(void)
{
int i, j;
scanf("%d%d%d", &n, &m, &k);
for(i = 0; i < n; i++)
{
for(j = 0; j < m; j++)
{
scanf("%d", &map[i][j]);
}
}
dfs(0, 0, 0, 0);
printf("%d\n", count);
return0;
}
解答:
#include <stdio.h>
#include <stdlib.h>
struct children
{
int height;
int step;
}ch[100001], s_ch[100001], temp;
void swap(struct children *a, struct children *b)
{
a->step++;
b->step++;
temp = *a;
*a = *b;
*b = temp;
}
int cmp(const void*a, const void*b)
{
return(*(struct children *)a).height - (*(struct children *)b).height;
}
int main(void)
{
int n, i, j, k, count = 0;
scanf("%d", &n);
for(i = 0; i < n; i++)
{
scanf("%d", &ch[i].height);
ch[i].step = 0;
s_ch[i] = ch[i];
}
qsort(s_ch, n, sizeof(struct children), cmp);
for(i = 0; i < n; i++)
{
for(j = i; j < n; j++)
{
if(s_ch[i].height == ch[j].height) break;
}
for(k = j; k>i; k--)
{
swap(&ch[k], &ch[k - 1]);
}
}
for(int i = 0; i < n; i++)
count += (ch[i].step + 1) * ch[i].step / 2;
printf("%d\n", count);
return0;
}。