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

合集下载

蓝桥杯历届c语言试题及答案

蓝桥杯历届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 试题通常以具体的问题场景为背景,要求选手使用编程语言解决实际的问题。

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

三、解题思路解决蓝桥杯 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的运算过程。

蓝桥杯c语言试题及答案

蓝桥杯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组试题及答案要点

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语言高职试题(填空)带答案

第五届蓝桥杯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");}请填写划线部分缺失的代码。

蓝桥杯c组试题及答案

蓝桥杯c组试题及答案

蓝桥杯c组试题及答案一、选择题(每题5分,共20分)1. 下列关于C语言的描述,错误的是:A. C语言是一种高级语言B. C语言可以直接被计算机执行C. C语言具有结构化的特点D. C语言支持函数式编程答案:B2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于指针的描述,正确的是:A. 指针可以存储变量的地址B. 指针可以存储变量的值C. 指针不能存储数组的地址D. 指针不能存储函数的地址答案:A4. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:D二、填空题(每题5分,共20分)1. 在C语言中,表示逻辑与的运算符是______。

答案:&&2. 用于声明一个整型变量的关键字是______。

答案:int3. 在C语言中,数组的索引是从______开始的。

答案:04. C语言中,用于结束一个程序的语句是______。

答案:return三、编程题(每题30分,共60分)1. 编写一个C语言程序,实现计算并输出100以内所有偶数的和。

```c#include <stdio.h>int main() {int sum = 0;for (int i = 2; i <= 100; i += 2) {sum += i;}printf("Sum of even numbers from 1 to 100 is: %d\n", sum); return 0;}```2. 编写一个C语言程序,实现一个简单的计算器,可以计算两个整数的加、减、乘、除。

```c#include <stdio.h>int main() {int a, b;char op;float result;printf("Enter first number: ");scanf("%d", &a);printf("Enter operator (+, -, *, /): ");scanf(" %c", &op);printf("Enter second number: ");scanf("%d", &b);switch (op) {case '+':result = a + b;break;case '-':result = a - b;break;case '*':result = a * b;break;case '/':if (b != 0)result = (float)a / b;else {printf("Division by zero error!\n"); return 1;}break;default:printf("Invalid operator!\n");return 1;}printf("Result: %.2f\n", result);return 0;}```。

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。

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

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

第五届省赛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。

【2017年整理】第五届蓝桥杯预赛题目及答案

【2017年整理】第五届蓝桥杯预赛题目及答案

2014年第五届蓝桥杯预赛题目第一题标题:啤酒和饮料啤酒每罐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请分析程序流程,填写划线部分缺少的代码。

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);

[蓝桥杯][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的串。

第五届蓝桥杯省赛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的数字。

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

相关文档
最新文档