2014年第五届蓝桥杯预赛题目C、C++程序设计本科B组

合集下载

蓝桥杯 c 试题及答案

蓝桥杯 c 试题及答案

蓝桥杯 c 试题及答案蓝桥杯是中国著名的信息技术竞赛,被誉为“程序员的奥林匹克”。

每年举办的蓝桥杯分为初赛和复赛两个阶段,覆盖了大学生、高中生和中学生等多个年龄段。

本文将为大家介绍蓝桥杯 C 试题及答案,希望能对参赛者有所帮助。

一、试题概述蓝桥杯 C 试题是蓝桥杯竞赛中的一道编程题目,通常难度较大,需要对编程语言有一定的掌握和理解。

该题目主要涉及算法、数据结构、编程思想等方面的知识,要求选手提交一个能够运行的程序,并输出符合题目要求的结果。

二、题目要求蓝桥杯 C 试题通常以具体的问题场景为背景,要求选手使用编程语言解决实际的问题。

试题要求选手根据题目描述,编写相应的程序代码,并在规定的时间内提交答案。

三、解题思路解决蓝桥杯 C 试题首先需要仔细阅读题目要求和描述,理解问题的背景和具体需求。

在编写程序时,需要灵活运用所学的算法和数据结构知识,合理选择合适的数据类型和数据结构来解决问题。

解题思路可以从以下几个方面展开:1. 根据题目描述建立适当的数据模型;2. 分析题目需求,确定解题思路;3. 编写代码实现解题思路;4. 测试代码,确保程序运行正确。

四、参考答案由于蓝桥杯竞赛的试题内容每年都有所变化,因此无法提供具体的参考答案。

但是,在参加蓝桥杯之前,可以通过学习历年的蓝桥杯 C 试题,了解题型和解题方法,提高自己的编程能力。

在备战蓝桥杯时,可以参考以下几点建议:1. 多做练习题,熟悉各种题型;2. 学习常用的算法和数据结构,如排序、查找、树、图等;3. 加强对编程语言的掌握,熟悉常用的语法和函数库;4. 参加类似的编程比赛,提高解题速度和编码能力;5. 与他人讨论、交流,学习他人的解题思路和方法。

总之,蓝桥杯 C 试题及答案是参赛者备战蓝桥杯竞赛的重要参考资料。

希望本文的介绍能够对参赛者有所帮助,并祝愿大家在蓝桥杯竞赛中取得好成绩!。

蓝桥杯1431:[蓝桥杯][2014年第五届真题]分糖果Easyonlyonce

蓝桥杯1431:[蓝桥杯][2014年第五届真题]分糖果Easyonlyonce
children[i] /= 2; surge[i] = children[i]; } for (int i = 0; i < n; i++) { children[i] += surge[(i + 1) % n]; if (children[i] % 2 != 0) { cnt++; children[i]++; } } } cout << cnt; //system("pause"); return 0; }
网络错误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高职

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组预赛试题

蓝桥杯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的运算过程。

2014第五届蓝桥杯C-C++本科B组试题及答案要点

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;}。

蓝桥杯2014-决赛-C-B组

蓝桥杯2014-决赛-C-B组

2014年决赛C/C++本科B组考生须知:●考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。

●考试时间为4小时。

时间截止后,提交答案无效。

●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。

●选手可浏览自己已经提交的答案。

被浏览的答案允许拷贝。

●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。

●选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。

●选手必须通过浏览器方式提交自己的答案。

选手在其它位置的作答或其它方式提交的答案无效。

●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。

结果填空题:要求选手根据题目描述直接填写结果。

求解方式不限。

不要求源代码。

答案直接通过网页提交即可。

不要书写多余的内容。

代码填空题:要求选手在弄清给定代码工作原理的基础上,填写缺失的代码,使得程序逻辑正确。

所填写的代码不超过一条语句(即中间不能出现分号)。

把答案(仅填空处的答案,不包括题面已存在的代码或符号)直接通过网页提交。

不要书写多余的内容(比如注释)。

使用ANSI C/ANSI C++ 标准,不要依赖操作系统或编译器提供的特殊函数。

程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。

考生的程序只有能运行出正确结果才有机会得分。

注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。

选手的程序必须是通用的,不能只对试卷中给定的数据有效。

要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

代码中允许使用STL类库,但不能使用MFC或ATL等非ANSI C++标准的类库。

例如,不能使用CString类型(属于MFC类库)。

注意: main函数必须返回0注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。

2014蓝桥杯c试题校赛及答案

2014蓝桥杯c试题校赛及答案

2014蓝桥杯c试题校赛及答案2014蓝桥杯C试题校赛及答案1. 题目一:字符串反转给定一个字符串,请编写一个函数,实现字符串的反转。

答案:```cvoid reverseString(char *str) {int len = 0;while (str[len] != '\0') {len++;}for (int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - i - 1];str[len - i - 1] = temp;}}```2. 题目二:寻找最大值给定一个整数数组,请找出数组中的最大值。

答案:```cint findMax(int arr[], int size) {int max = arr[0];for (int i = 1; i < size; i++) {if (arr[i] > max) {max = arr[i];}}return max;}```3. 题目三:计算阶乘编写一个函数,计算并返回一个非负整数的阶乘。

答案:```cunsigned long long factorial(int n) {if (n == 0) {return 1;}unsigned long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}```4. 题目四:判断回文数给定一个整数,判断该数是否是回文数。

答案:```cint isPalindrome(int x) {int reversed = 0, original = x;while (x > 0) {int digit = x % 10;reversed = reversed * 10 + digit;x /= 10;}return original == reversed;}```5. 题目五:合并两个有序数组给定两个有序整数数组 nums1 和 nums2,其中 nums1 的长度为 m,nums2 的长度为 n。

蓝桥杯C语言本科B组预赛试题审批稿

蓝桥杯C语言本科B组预赛试题审批稿

蓝桥杯C语言本科B组预赛试题YKK standardization office【 YKK5AB- YKK08- YKK2C- YKK18】2014蓝桥杯C/C++语言本科B组预赛试题(完整)1.啤酒和饮料啤酒每罐元,饮料每罐元。

小明买了若干啤酒和饮料,一共花了元。

我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。

注意:答案是一个整数。

请通过浏览器提交答案。

不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。

2.切面条一根高筋拉面,中间切一刀,可以得到2根面条。

如果先对折1次,中间切一刀,可以得到3根面条。

如果连续对折2次,中间切一刀,可以得到5根面条。

那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。

不要填写任何多余的内容。

3.李白打酒话说大诗人李白,一生好饮。

幸好他从不开车。

一天,他提着酒壶,从家里出来,酒壶中有酒2斗。

他边走边唱:无事街上走,提壶去打酒。

逢店加一倍,遇花喝一斗。

这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。

请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。

则:babaabbabbabbbb就是合理的次序。

像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。

注意:通过浏览器提交答案。

答案是个整数。

不要书写任何多余的内容。

4.史丰收速算史丰收速算法的革命性贡献是:从高位算起,预测进位。

不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。

其中,乘以7是最复杂的,就以它为例。

因为,1/7是个循环小数:...,如果多位数超过 142857...,就要进1同理,2/7,3/7, ... 6/7 也都是类似的循环小数,多位数超过 n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。

乘以7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。

第五届蓝桥杯程序设计大赛省赛题目及答案

第五届蓝桥杯程序设计大赛省赛题目及答案

第五届省赛1.一个串的子串是指该串的一个连续的局部。

如果不要求连续,则可称为它的子序列。

比如对串: "abcdefg" 而言,"ab","abd","bdef" 等都是它的子序列。

特别地,一个串本身,以及空串也是它的子序列。

对两个串而言,可以有许多的共同的子序列,我们关心的是:它们所共同拥有的长度最大的子序列是多长。

以下代码实现了这个问题的求解。

请填写划线部分缺失的代码。

注意:只填写划线部分缺少的内容,不要填写任何多余的符号或注释、说明等。

例如,不要填写已经给出的小括号。

inline max(int a, int b){return a>b?a:b;}int f(char* x, char* y){if(strlen(x)==0) return 0;if(strlen(y)==0) return 0;if(*x == *y) return f(x+1, y+1) + 1;return max( ______________________ );//处理字符串}int main(){printf("%d\n", f("ac","abcd")); //2printf("%d\n", f("acebbcde1133","xya33bc11de")); //5return 0;}f(x+1,y),f(x,y+1)2.历史上有许多计算圆周率pai的公式,其中,格雷戈里和莱布尼茨发现了下面的公式:pai = 4*(1-1/3+1/5-1/7 ....)参见【图1.png】这个公式简单而优美,但美中不足,它收敛的太慢了。

如果我们四舍五入保留它的两位小数,那么:累积了1项和是:4.00累积了2项和是:2.67累积了3项和是:3.47。

2014蓝桥杯c语言试题及答案

2014蓝桥杯c语言试题及答案

2014蓝桥杯c语言试题及答案一、选择题(每题2分,共10分)1. 下列关于C语言的描述中,错误的是:A. C语言是高级语言B. C语言是面向对象的程序设计语言C. C语言具有结构化的特点D. C语言具有跨平台的特性答案:B2. 以下哪个选项不是C语言中合法的变量名?A. _123B. intC. a$bD. for答案:B3. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A4. 下列关于C语言函数的描述中,正确的是:A. 函数必须有返回值B. 函数可以没有参数C. 函数的返回值类型必须与定义时一致D. 函数可以有多个返回值答案:B5. 在C语言中,以下哪个选项不是合法的字符串常量?A. "hello"B. "hello\n"C. "helloD. "hello\"答案:C二、填空题(每题2分,共10分)1. 在C语言中,定义一个整型数组的语句是:int a[10]; 则数组a 的第一个元素的值是______。

答案:02. C语言中,用于声明一个指针变量的语句是:int *p; 则指针p的初始值是______。

答案:NULL3. 在C语言中,使用______运算符可以将一个浮点数转换为整数。

答案:强制类型转换4. C语言中,用于定义一个函数的关键字是______。

答案:void5. 在C语言中,用于定义一个枚举类型的关键字是______。

答案:enum三、编程题(每题10分,共20分)1. 编写一个C语言程序,实现输入一个整数,输出该整数的平方值。

答案:```c#include <stdio.h>int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d的平方是:%d\n", num, num * num);return 0;}```2. 编写一个C语言程序,实现输入一个字符串,输出该字符串的逆序。

第五届蓝桥杯试题答案

第五届蓝桥杯试题答案
15.if(fabs( (i*10 + r)*1.0/(j*10+k) - (i*r*1.0)/(j*k)) < eps){
16.//printf("%d/%d : %d/%d\n", (i*10 + r),(j*10+k), i*r,(j*k));
17.ans++;
18.}
19.}
20.}
21.}
{
if(a[14]=='b'&&wine==0)
{
count++;
show(a,15);
}
return;
}
a[i] = 'a';
drink(i+1,store+1,flower,wine*2); //逢店加一倍
a[i] = 'b';
drink(i+1,store,flower+1,wine-1); //遇花喝一斗
{
sum+=l; //给累加数列当前值
if(f==0) //当数列长度递减为0,进行判断
{
sum-=l; //sum减去当前数列值
if(sum==s) //如果sum等于数列和值
{
cnt++; //累加器加1
cnt%=mo;
}
return 0 ; //返回
}
Conut(l+a,f-1,sum);
Conut(l-b,f-1,sum);
if(m==82.3)
break;
x = x+1;
y = y-2;
}
printf("%d\n%d\n",x,y);

蓝桥杯c试题及答案

蓝桥杯c试题及答案

蓝桥杯c试题及答案蓝桥杯是中国最具影响力的计算机科学大赛之一,旨在发掘和培养计算机科学和信息技术领域的优秀人才。

每年,数以万计的学生参加这个激烈的竞赛,争夺奖金和荣誉。

在这里,我将向大家介绍几道经典的蓝桥杯C试题及其答案,希望能对大家有所帮助。

试题一:编写一个C程序,求解两个整数的最大公约数。

```c#include <stdio.h>int gcd(int a, int b){if(b == 0)return a;elsereturn gcd(b, a%b);}int main(){int a, b;printf("请输入两个整数:");scanf("%d %d", &a, &b);printf("最大公约数为:%d", gcd(a, b));return 0;}```试题二:编写一个C程序,判断一个给定的整数是否为素数。

```c#include <stdio.h>#include <math.h>int isPrime(int n){int i;if(n <= 1)return 0;for(i=2; i<=sqrt(n); i++){if(n % i == 0)return 0;}return 1;}int main(){int n;printf("请输入一个整数:");scanf("%d", &n);if(isPrime(n))printf("%d是素数", n);elseprintf("%d不是素数", n);return 0;}```试题三:编写一个C程序,实现二分查找算法。

```c#include <stdio.h>int binarySearch(int arr[], int left, int right, int target){ if(left <= right){int mid = left + (right - left) / 2;if(arr[mid] == target)return mid;if(arr[mid] < target)return binarySearch(arr, mid+1, right, target);return binarySearch(arr, left, mid-1, target);}return -1;}int main(){int arr[] = {2, 4, 6, 8, 10, 12};int target = 6;int n = sizeof(arr)/sizeof(arr[0]);int result = binarySearch(arr, 0, n-1, target);if(result == -1)printf("未找到%d", target);elseprintf("找到%d,索引为%d", target, result);return 0;}```以上是三道经典的蓝桥杯C试题及其解答。

[蓝桥杯][2014年第五届真题]分糖果

[蓝桥杯][2014年第五届真题]分糖果

[蓝桥杯][2014年第五届真题]分糖果题⽬描述:问题描述:有n个⼩朋友围坐成⼀圈。

⽼师给每个⼩朋友随机发偶数个糖果,然后进⾏下⾯的游戏:每个⼩朋友都把⾃⼰的糖果分⼀半给左⼿边的孩⼦。

⼀轮分糖后,拥有奇数颗糖的孩⼦由⽼师补给1个糖果,从⽽变成偶数。

反复进⾏这个游戏,直到所有⼩朋友的糖果数都相同为⽌。

你的任务是预测在已知的初始糖果情形下,⽼师⼀共需要补发多少个糖果。

输⼊程序⾸先读⼊⼀个整数N(2< N< 100),表⽰⼩朋友的⼈数。

接着是⼀⾏⽤空格分开的N个偶数(每个偶数不⼤于1000,不⼩于2)输出要求程序输出⼀个整数,表⽰⽼师需要补发的糖果数。

样例输⼊32 2 4样例输出4题意解析:1、偶数个糖:这⾥偶数个糖可分为两部分分别是:I、初始化赋值为偶数II、⽼师额外分配为偶数(num++);2、分糖:将⼀半的糖分给左⼿边的孩⼦:I、简化为直接分给下⼀个⼩孩;II、每个⼩孩的糖数分⼀半给下⼀个并且从上⼀个⼩孩那得到他的⼀半糖;i)是先从别⼈那得到他的⼀半糖后,再将现在的糖数分⼀半给下⼀个⼈,,还是所有⼈先分⼀半糖出来,每个⼈都前⼀个⼈那拿⾛他的⼀半糖?(这两种计算⽅式结果不同,也是本题解题关键;简化后即:先 + 再 / 还是先 / 再 + );3、判断糖数是否相等:I、不相等,跳转到第⼀条第⼆点(1.II),向下执⾏,II、相等,跳出循环,输出num;图解2.II.i:代码实现:#include <stdio.h>#define N 100void main() {int i, n, num = 0, a[N], t;scanf("%d", &n);for (i = 0; i < n; i++) {//scanf("%d", &a[i]);}for (;;) {for (i = 1; i < n; i++) {//i从1开始,表⽰a[0]直接判断与a[1]是否相等,跳过a[0]与a[0]⽐较;if (a[0] != a[i]) {break;//如果第⼀个⼩孩糖的数量与其他⼩孩糖的数量不相等,跳出for循环,往下执⾏}//如果没有进⼊if判断语句,说明所有⼩孩糖数相等,for循环从1执⾏到n-1;}if (i == n) {//接上for循环,当for循环执⾏完了以后,进⾏的操作是i++,此时i = n;所以可以拿来作为结束外循环条件;break;//跳出外层循环}for (i = 0; i < n; i++) {//判断是否有奇数个糖,奇数+1,偶数不变;if (a[i] % 2 == 1) {a[i]++;num++;}}t = a[n - 1];//下⾯分糖实按从后向前遍历,因此最后⼀个⼩孩的糖数在最开始就会改变,⽆法给第⼀个⼩孩赋值,因此需要保存下来; for (i = n - 1; i > 0; i--) {//,分糖(除以2)、得糖(+前⼀个⼈的1/2);a[i] = a[i] / 2 + a[i - 1] / 2;}a[0] = a[0] / 2 + t / 2;//给第⼀个同学实现分糖、得糖;}printf("%d", num);}其中,在分糖和得糖那步可以实现⼩的优化:前⾯代码不变,在判断奇偶时让所有同学的糖数⼀分为⼆;for ( i = 0; i < n; i++){if (a[i]%2==1){a[i]++;sum++;}a[i] /= 2;}temp = a[n - 1];for ( i = n-1; i >0; i--){//a[i] = a[i] / 2 + a[i - 1] / 2; a[i] += a[i - 1];}//a[0] = a[0] / 2 + temp / 2; a[0] += temp;}。

2014年蓝桥杯(第5届)预赛高职高专组C语言真题解析

2014年蓝桥杯(第5届)预赛高职高专组C语言真题解析

2014年蓝桥杯(第5届)预赛高职高专组真题解析武功秘籍小明到X山洞探险,捡到一本有破损的武功秘籍(2000多页!当然是伪造的)。

他注意到:书的第10页和第11页在同一张纸上,但第11页和第12页不在同一张纸上。

小明只想练习该书的第81页到第92页的武功,又不想带着整本书。

请问他至少要撕下多少张纸带走?这是个整数,请通过浏览器提交该数字,不要填写任何多余的内容。

(1)答案。

7(2)编程思路。

因为每页页码开始为偶数,终止为奇数,因此若开始页码为奇数或终止页码为偶数,则应多加1页。

(3)源程序。

#include <stdio.h>int main(){int m,n,ans;while (scanf("%d%d",&n,&m)!=EOF){ans=m-n+2;ans/=2;if (n%2!=0 && m%2==0)ans++;printf("%d\n",ans);}return 0;}等额本金小明从银行贷款3万元。

约定分24个月,以等额本金方式还款。

这种还款方式就是把贷款额度等分到24个月。

每个月除了要还固定的本金外,还要还贷款余额在一个月中产生的利息。

假设月利率是:0.005,即:千分之五。

那么,第一个月,小明要还本金1250, 还要还利息:30000 * 0.005,总计1400.00第二个月,本金仍然要还1250, 但利息为:(30000-1250) * 0.005 总计1393.75请问:小明在第15个月,应该还款多少(本金和利息的总和)?请把答案金额四舍五入后,保留两位小数。

注意:32.5,一定要写为:32.50通过浏览器提交答案,这是一个含有小数点和两位小数的浮点数字。

不要写多余内容(例如:多写了“元”或添加说明文字)(1)答案。

1312.50(2)编程思路。

简单循环计算。

(3)源程序。

#include <stdio.h>int main(){double n = 30000;int m = 24;for(int i = 1; i <= m; i++){printf("%d %.2f\n",i,1250+n*0.005);n -= 1250;}return 0;}猜字母把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。

蓝桥杯c 试题及答案

蓝桥杯c 试题及答案

蓝桥杯c 试题及答案蓝桥杯是中国著名的计算机竞赛,由中国计算机学会主办,每年举办一次。

其中,C语言组是比赛的一个重要环节,考察选手对于C语言程序设计的理解和应用能力。

以下是蓝桥杯C语言组试题及答案的整理,供参赛选手参考和学习。

第一题:找素数题目描述:请编写一个程序,计算给定范围内的素数个数,并输出结果。

输入:输入两个正整数n和m(1 <= n, m <= 1000,n <= m),表示要计算的范围。

输出:输出一个整数,表示该范围内的素数个数。

样例输入:2 10样例输出:4解题思路:素数是指只能被1和自身整除的整数,根据这个定义,我们可以使用一个循环来判断每个数是否为素数。

具体实现时,首先需要判断一个数n是否为素数,可以从2开始将n除以每个数,若能整除则说明n 不是素数;反之,则n是素数。

将这个判断的逻辑封装成一个函数,然后在给定的范围内遍历每个数,统计出素数的个数即可。

代码实现:```c#include <stdio.h>int isPrime(int n) {if (n <= 1) {return 0;}for (int i = 2; i * i <= n; i++) {if (n % i == 0) {return 0;}}return 1;}int countPrimes(int n, int m) {int count = 0;for (int i = n; i <= m; i++) {if (isPrime(i)) {count++;}}return count;}int main() {int n, m;scanf("%d %d", &n, &m);int result = countPrimes(n, m);printf("%d\n", result);return 0;}```参考答案如上所示,该程序通过调用判断素数的函数,并在给定范围内进行循环判断,最终输出结果。

第五届蓝桥杯省赛b组试题及答案

第五届蓝桥杯省赛b组试题及答案

第五届蓝桥杯省赛b组试题及答案第五届蓝桥杯省赛B组试题及答案一、选择题(每题5分,共20分)1. 下列哪个选项是Python语言中用于定义函数的关键字?A. defB. functionC. funcD. declare答案:A2. 在HTML中,用于定义最重要的标题的标签是?A. <h1>B. <title>C. <header>D. <h6>答案:A3. 在JavaScript中,以下哪个方法用于获取数组中最后一个元素?A. last()B. first()C. pop()D. lastElement()答案:C4. 在CSS中,以下哪个属性用于设置元素的背景颜色?A. background-colorB. bg-colorC. colorD. back-color答案:A二、填空题(每题5分,共20分)1. 在Python中,用于执行条件判断的关键字是________。

答案:if2. 在HTML中,用于创建无序列表的标签是________。

答案:<ul>3. 在JavaScript中,用于获取当前日期的函数是________。

答案:new Date()4. 在CSS中,用于设置文本颜色的属性是________。

答案:color三、简答题(每题10分,共20分)1. 请解释什么是闭包,并给出一个简单的JavaScript闭包示例。

答案:闭包是一个函数和其周围的状态(词法环境)的组合。

闭包允许函数访问其定义时的作用域链,即使在其定义的作用域外执行。

示例:```javascriptfunction createClosure() {var secret = "I'm a secret";return function() {console.log(secret);};}var myClosure = createClosure();myClosure(); // 输出:I'm a secret```2. 请简述HTML5和HTML4的主要区别。

第5届蓝桥杯部分答案

第5届蓝桥杯部分答案

1.啤酒和饮料(11)标题:啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。

小明买了若干啤酒和饮料,一共花了82.3元。

我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。

注意:答案是一个整数。

请通过浏览器提交答案。

不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。

#include <stdio.h>#include <math.h>main(){int a,b;for(a=1;a<=41;a++)for(b=1;b<=80;b++){if((fabs(a*2.3+b*1.9-82.3)<1e-7)&&a<b){printf("%d",a);}}}6.标题:奇怪的分式上小学的时候,小明经常自己发明新算法。

一次,老师出的题目是:1/4 乘以8/5小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png)老师刚想批评他,转念一想,这个答案凑巧也对啊,真是见鬼!对于分子、分母都是1~9 中的一位数的情况,还有哪些算式可以这样计算呢?请写出所有不同算式的个数(包括题中举例的)。

显然,交换分子分母后,例如:4/1 乘以5/8 是满足要求的,这算做不同的算式。

但对于分子分母相同的情况,2/2 乘以3/3 这样的类型太多了,不在计数之列!注意:答案是个整数(考虑对称性,肯定是偶数)。

请通过浏览器提交。

不要书写多余的内容。

(14)#define N 70#include <stdio.h>#include <math.h>main(){int a,b,c,d;int count=0;for(a=1;a<=9;a++)for(b=1;b<=9;b++)for(c=1;c<=9;c++)for(d=1;d<=9;d++){if((fabs((a*1.0/b)*(c*1.0/d)-((a*10+c)*1.0/(b*10+d)))<1e-7&&a!=b&&c!=d)){count++;printf("%d/%d*%d/%d=%d/%d\n",a,b,c,d,a*10+c,b*10+d);}}printf("%d",count++);}7.如图【1.png】所示六角形中,填入1~12的数字。

历年蓝桥杯省赛B组真题试题

历年蓝桥杯省赛B组真题试题

(1)煤球数目有一堆煤球,堆成三角棱锥形。

具体:第一层放1 个,第二层3 个(排列成三角形),第三层6 个(排列成三角形),第四层10 个(排列成三角形),如果一共有100 层,共有多少个煤球?题解:纯粹的数学题而已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);(2) 生日蜡烛某君从某年开始每年都举办一次生日party ,并且每次都要吹熄与年龄相同根数的蜡烛。

现在算起来,他一共吹熄了236 根蜡烛。

请问,他从多少岁开始过生日party 的?请填写他开始过生日party 的年龄数。

题解:暴力枚举。

第一重循环枚举刚开始过生日时候的岁数。

第二重循环是枚举现在的岁数第三重循环就是将刚开始过生日的岁数和现在的岁数加起来。

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);B DEFA + —+ ——= 10 C GHI(如果显示有问题,可以参见【图1.jpg】)这个算式中A~I 代表1~9的数字,不同的字母代表不同的数字。

比如:6+8/3+952/714 就是一种解法,5+3/1+972/486 是另一种解法。

这个算式一共有多少种解法?//29题解:DFS+回溯由于计算机中5/2 会等于2,而且如果打算采用精度方面的处理的话,会很麻烦,而且很容易错。

蓝桥杯试题及答案C语言c组

蓝桥杯试题及答案C语言c组

蓝桥杯试题及答案C语言c组蓝桥杯试题及答案C语言C组1. 题目一:字符串反转要求:编写一个函数,实现字符串的反转。

答案:以下是一个简单的字符串反转函数的实现。

```cvoid reverseString(char* str) {int i = 0;int j = strlen(str) - 1;while (i < j) {char temp = str[i];str[i] = str[j];str[j] = temp;i++;j--;}}```2. 题目二:计算阶乘要求:编写一个函数,计算一个整数的阶乘。

答案:以下是一个计算整数阶乘的函数实现。

```clong long factorial(int n) {if (n == 0) return 1;long long result = 1;for (int i = 1; i <= n; i++) {result *= i;}return result;}```3. 题目三:寻找最大值要求:给定一个整数数组,找出数组中的最大值。

答案:以下是一个寻找数组最大值的函数实现。

```cint findMax(int arr[], int size) {int max = arr[0];for (int i = 1; i < size; i++) {if (arr[i] > max) {max = arr[i];}}return max;}```4. 题目四:求两个数的最大公约数要求:编写一个函数,计算两个整数的最大公约数。

答案:以下是一个使用欧几里得算法求最大公约数的函数实现。

```cint gcd(int a, int b) {if (b == 0) return a;return gcd(b, a % b);}```5. 题目五:判断素数要求:编写一个函数,判断一个整数是否为素数。

答案:以下是一个判断整数是否为素数的函数实现。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2014年预赛C/C++本科B组考生须知:●考试开始后,选手首先下载题目,并使用考场现场公布的解压密码解压试题。

●考试时间为4小时。

时间截止后,提交答案无效。

●在考试强制结束前,选手可以主动结束考试(需要身份验证),结束考试后将无法继续提交或浏览答案。

●选手可浏览自己已经提交的答案。

被浏览的答案允许拷贝。

●对同一题目,选手可多次提交答案,以最后一次提交的答案为准。

●选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等与身份有关的信息或其它与竞赛题目无关的内容,否则成绩无效。

●选手必须通过浏览器方式提交自己的答案。

选手在其它位置的作答或其它方式提交的答案无效。

●试题包含三种类型:“结果填空”、“代码填空”与“程序设计”。

结果填空题:要求选手根据题目描述直接填写结果。

求解方式不限。

不要求源代码。

把结果填空的答案直接通过网页提交即可,不要书写多余的内容。

代码填空题:要求选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。

所填写的代码不超过一条语句(即中间不能出现分号)。

把代码填空的答案(仅填空处的答案,不包括题面已存在的代码或符号)直接通过网页提交即可,不要书写多余的内容。

使用ANSI C/ANSI C++ 标准,不要依赖操作系统或编译器提供的特殊函数。

程序设计题目:要求选手设计的程序对于给定的输入能给出正确的输出结果。

考生的程序只有能运行出正确结果才有机会得分。

注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。

选手的程序必须是通用的,不能只对试卷中给定的数据有效。

对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

代码中允许使用STL类库。

注意: main函数结束必须返回0注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。

所有源码必须在同一文件中。

调试通过后,拷贝提交。

提交时,注意选择所期望的编译器类型。

1.结果填空(满分4分)问题的描述在考生文件夹下对应题号的“题目.txt”中。

相关的参考文件在同一目录中。

请先阅读题目,不限解决问题的方式,只要求提交结果。

必须通过浏览器提交答案。

2.结果填空(满分5分)问题的描述在考生文件夹下对应题号的“题目.txt”中。

相关的参考文件在同一目录中。

请先阅读题目,不限解决问题的方式,只要求提交结果。

必须通过浏览器提交答案。

3.结果填空(满分8分)问题的描述在考生文件夹下对应题号的“题目.txt”中。

相关的参考文件在同一目录中。

请先阅读题目,不限解决问题的方式,只要求提交结果。

必须通过浏览器提交答案。

4.代码填空(满分7分)问题的描述在考生文件夹下对应题号的“题目.txt”中。

相关的参考文件在同一目录中。

请先阅读题目,不限解决问题的方式。

只要求填写缺失的代码部分,千万不要画蛇添足,填写多余的已有代码或符号。

必须通过浏览器提交答案。

5.代码填空(满分12分)问题的描述在考生文件夹下对应题号的“题目.txt”中。

相关的参考文件在同一目录中。

请先阅读题目,不限解决问题的方式。

只要求填写缺失的代码部分,千万不要画蛇添足,填写多余的已有代码或符号。

必须通过浏览器提交答案。

6.结果填空(满分11分)问题的描述在考生文件夹下对应题号的“题目.txt”中。

相关的参考文件在同一目录中。

请先阅读题目,不限解决问题的方式,只要求提交结果。

必须通过浏览器提交答案。

7.结果填空(满分12分)问题的描述在考生文件夹下对应题号的“题目.txt”中。

相关的参考文件在同一目录中。

请先阅读题目,不限解决问题的方式,只要求提交结果。

必须通过浏览器提交答案。

8.程序设计(满分10分)问题的描述在考生文件夹下对应题号的“题目.txt”中。

相关的参考文件在同一目录中。

请先阅读题目,必须通过编程的方式解决问题。

注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。

选手的程序必须是通用的,不能只对试卷中给定的数据有效。

仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如:“请您输入xx数据:”。

建议仔细阅读示例,不要想当然!程序处理完一个用例的数据后,立即退出(return 0),千万不要循环等待下一个用例的输入。

程序必须使用标准输入、标准输出,以便于机器评卷时重定向。

对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

代码中允许使用STL类库。

注意: main函数结尾需要return 0注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

提交时,注意选择所期望的编译器类型。

9.程序设计(满分12分)问题的描述在考生文件夹下对应题号的“题目.txt”中。

相关的参考文件在同一目录中。

请先阅读题目,必须通过编程的方式解决问题。

注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。

选手的程序必须是通用的,不能只对试卷中给定的数据有效。

仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如:“请您输入xx数据:”。

建议仔细阅读示例,不要想当然!程序处理完一个用例的数据后,立即退出(return 0),千万不要循环等待下一个用例的输入。

程序必须使用标准输入、标准输出,以便于机器评卷时重定向。

对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

代码中允许使用STL类库。

注意: main函数结尾需要return 0注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

提交时,注意选择所期望的编译器类型。

10.程序设计(满分19分)问题的描述在考生文件夹下对应题号的“题目.txt”中。

相关的参考文件在同一目录中。

请先阅读题目,必须通过编程的方式解决问题。

注意:在评卷时使用的输入数据与试卷中给出的示例数据可能是不同的。

选手的程序必须是通用的,不能只对试卷中给定的数据有效。

仔细阅读程序的输入、输出要求,千万不要输出没有要求的、多余的内容,例如:“请您输入xx数据:”。

建议仔细阅读示例,不要想当然!程序处理完一个用例的数据后,立即退出(return 0),千万不要循环等待下一个用例的输入。

程序必须使用标准输入、标准输出,以便于机器评卷时重定向。

对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。

代码中允许使用STL类库。

注意: main函数结尾需要return 0注意: 所有依赖的函数必须明确地在源文件中#include <xxx>,不能通过工程设置而省略常用头文件。

所有代码放在同一个源文件中,调试通过后,拷贝提交该源码。

提交时,注意选择所期望的编译器类型。

标题:啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。

小明买了若干啤酒和饮料,一共花了82.3元。

我们还知道他买的啤酒比饮料的数量少,请你计算他买了几罐啤酒。

注意:答案是一个整数。

请通过浏览器提交答案。

不要书写任何多余的内容(例如:写了饮料的数量,添加说明文字等)。

标题:切面条一根高筋拉面,中间切一刀,可以得到2根面条。

如果先对折1次,中间切一刀,可以得到3根面条。

如果连续对折2次,中间切一刀,可以得到5根面条。

那么,连续对折10次,中间切一刀,会得到多少面条呢?答案是个整数,请通过浏览器提交答案。

不要填写任何多余的内容。

标题:李白打酒话说大诗人李白,一生好饮。

幸好他从不开车。

一天,他提着酒壶,从家里出来,酒壶中有酒2斗。

他边走边唱:无事街上走,提壶去打酒。

逢店加一倍,遇花喝一斗。

这一路上,他一共遇到店5次,遇到花10次,已知最后一次遇到的是花,他正好把酒喝光了。

请你计算李白遇到店和花的次序,可以把遇店记为a,遇花记为b。

则:babaabbabbabbbb 就是合理的次序。

像这样的答案一共有多少呢?请你计算出所有可能方案的个数(包含题目给出的)。

注意:通过浏览器提交答案。

答案是个整数。

不要书写任何多余的内容。

标题:史丰收速算史丰收速算法的革命性贡献是:从高位算起,预测进位。

不需要九九表,彻底颠覆了传统手算!速算的核心基础是:1位数乘以多位数的乘法。

其中,乘以7是最复杂的,就以它为例。

因为,1/7 是个循环小数:0.142857...,如果多位数超过 142857...,就要进1同理,2/7, 3/7, ... 6/7 也都是类似的循环小数,多位数超过 n/7,就要进n下面的程序模拟了史丰收速算法中乘以7的运算过程。

乘以 7 的个位规律是:偶数乘以2,奇数乘以2再加5,都只取个位。

乘以 7 的进位规律是:满 142857 (1)满 285714 (2)满 428571 (3)满 571428 (4)满 714285 (5)满 857142... 进6请分析程序流程,填写划线部分缺少的代码。

//计算个位int ge_wei(int a){if(a % 2 == 0)return (a * 2) % 10;elsereturn (a * 2 + 5) % 10;}//计算进位int jin_wei(char* p){char* level[] = {"142857","285714","428571","571428","714285","857142"};char buf[7];buf[6] = '\0';strncpy(buf,p,6);int i;for(i=5; i>=0; i--){int r = strcmp(level[i], buf);if(r<0) return i+1;while(r==0){p += 6;strncpy(buf,p,6);r = strcmp(level[i], buf);if(r<0) return i+1;______________________________; //填空}}return 0;}//多位数乘以7void f(char* s){int head = jin_wei(s);if(head > 0) printf("%d", head);char* p = s;while(*p){int a = (*p-'0');int x = (ge_wei(a) + jin_wei(p+1)) % 10;printf("%d",x);p++;}printf("\n");}int main(){f("428571428571");f("34553834937543");return 0;}注意:通过浏览器提交答案。

相关文档
最新文档