2012.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四名盗窃嫌疑犯,其中只有一人是小偷。
第三届蓝桥杯(高职java预赛题及参考答案)

1、造成高房价的原因有许多,比如土地出让价格。
既然地价高,土地的面积必须仔细计算。
遗憾的是,有些地块的形状不规则,比如是如图【1.jpg】中所示的五边形。
一般需要把它划分为多个三角形来计算。
已知三边求三角形的面积需要用海伦定理,参见【2.jpg】各条边长数据如下:AB = 52.1BC = 57.2CD = 43.5DE = 51.9EA = 33.4EB = 68.2EC = 71.9根据这些数据求五边形地块的面积。
四舍五入到小数后两位。
只写结果,不要源代码!1.jpg2.jpgpublic class Onea {public static void main(String args[]){double s_ABE = (52.1 + 68.2 + 33.4) / 2;double s_BEC = (68.2 + 57.2 + 71.9) / 2;double s_EDC = (71.9 + 51.9 + 43.5) / 2;// sqrt()是Math中的静态方法可以用类名直接调用double A_ABE = Math.sqrt(s_ABE * (s_ABE - 52.1) * (s_ABE - 33.4) * (s_ABE - 68.2));double A_BEC = Math.sqrt(s_BEC * (s_BEC - 68.2) * (s_BEC - 57.2) * (s_BEC - 71.9));double A_EDC = Math.sqrt(s_EDC * (s_EDC - 71.9) * (s_EDC - 43.5) * (s_EDC - 51.9));System.out.println(A_ABE + A_BEC + A_EDC);}}// 输出的结果是3789.8640994485186public class One {public static void main(String[] args) {double AB = 52.1, BC = 57.2, CD = 43.5, DE = 51.9, EA = 33.4, EB = 68.2, EC = 71.9;System.out.println(mainji(AB,EB,EA) + mainji(EB,BC,EC) +mainji(EC,CD,DE));}static double mainji(double a,double b,double c){double s = (a + b + c)/2;return Math.sqrt(s * (s - a) * (s - b) * (s - c));}}输出结果:3789.86409944851862、今年的植树节(2012年3月12日),小明和他的叔叔还有小伙伴们一起去植树。
C语言的蓝桥杯习题及解析1

输入一个正整数n,输出n!的值。
其中n!=1*2*3*…*n。
算法描述n!可能很大,而计算机能表示的整数范围有限,需要使用高精度计算的方法。
使用一个数组A来表示一个大整数a,A[0]表示a的个位,A[1]表示a的十位,依次类推。
将a乘以一个整数k变为将数组A的每一个元素都乘以k,请注意处理相应的进位。
首先将a设为1,然后乘2,乘3,当乘到n时,即得到了n!的值。
输入格式输入包含一个正整数n,n<=1000。
输出格式输出n!的准确值。
样例输入10样例输出3628800*/#include<stdio.h>#include<string.h>#define MAX 3000int main(){int a[MAX],i,j,n;int c=0; //进位int s;memset(a,0,sizeof(a));scanf("%d",&n);a[0]=1;for(i=2;i<=n;i++) //乘数{for(j=0;j<MAX;j++){s=a[j]*i+c;a[j]=s%10;c=s/10;}}for(i=MAX-1;i>=0;i--) //从第一个不为零的开始break;for(j=i;j>=0;j--){printf("%d",a[j]);}return 0;}BASIC-29 高精度加法/*问题描述输入两个整数a和b,输出这两个整数的和。
a和b都不超过100位。
算法描述由于a和b都比较大,所以不能直接使用语言中的标准数据类型来存储。
对于这种问题,一般使用数组来处理。
定义一个数组A,A[0]用于存储a的个位,A[1]用于存储a的十位,依此类推。
同样可以用一个数组B来存储b。
计算c = a + b的时候,首先将A[0]与B[0]相加,如果有进位产生,则把进位(即和的十位数)存入r,把和的个位数存入C[0],即C[0]等于(A[0]+B[0])%10。
第三届蓝桥杯——2012蓝桥杯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 种群灭绝的最后一根稻草!请忍住悲伤,把答案写在“解答.txt”中,不要写在这里!#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);return 0;}2.福尔摩斯到某古堡探险,看到门上写着一个奇怪的算式:ABCDE * ? = EDCBA他对华生说:“ABCDE 应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把 ABCDE 所代表的数字写出来。
答案写在“解答.txt ”中,不要写在这里!3.有一群海盗(不多于20人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
再打开一瓶酒平分,又有倒下的,再次重复...... 直到开了第4瓶酒,坐着的已经所剩无几,海盗船长也在其中。
蓝桥杯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;}```。
蓝桥杯专科组c语言试题及答案

蓝桥杯专科组c语言试题及答案蓝桥杯专科组C语言试题及答案1. 单项选择题(1) 在C语言中,下列哪个选项是正确的字符串定义方式?A. char str[] = "Hello";B. char str[] = 'Hello';C. char str[] = {"Hello"};D. char str[] = "Hello";答案:A(2) 下列关于C语言函数的描述中,错误的是?A. 函数可以没有返回值。
B. 函数可以有多个返回值。
C. 函数可以有默认参数。
D. 函数可以有不定数量的参数。
答案:C2. 程序填空题请在空白处填入正确的代码,以实现以下功能:计算并输出1到100之间所有偶数的和。
#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 from 1 to 100 is: %d\n", sum);return 0;}3. 编程题编写一个C语言程序,实现以下功能:接受用户输入的两个整数,输出它们的和。
#include <stdio.h>int main() {int num1, num2, sum;printf("Enter two integers: ");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("The sum is: %d\n", sum);return 0;}4. 简答题(1) 请简述C语言中指针的概念。
答案:在C语言中,指针是一种变量,它存储了另一个变量的内存地址。
国信蓝桥杯2012预赛_c++_高职

2012年预赛c/c++ 高职考生须知:考试时间为4小时。
参赛选手切勿修改机器自动生成的【考生文件夹】的名称或删除任何自动生成的文件或目录,否则会干扰考试系统正确采集您的解答。
参赛选手切勿在提交的代码中书写“姓名”、“考号”,“院校名”等身份信息或其它与竞赛题目无关的内容,否则成绩无效。
试题包含三种类型:“结果填空”、“代码填空”与“程序设计”,总计100分。
结果填空:2+3+5+6 = 16分代码填空:8+6+10 = 24 分程序设计:15+17+28 = 60分结果填空要求参赛选手根据题目描述直接填写结果。
求解方式不限。
不要求源代码。
把答案存入【考生文件夹】下对应题号的“解答.txt”中即可。
代码填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不超过一条语句(即中间不能出现分号)。
把填空的答案(仅填空处的答案,不包括题面已存在的代码)存入【考生文件夹】下对应题号的“解答.txt”中即可。
编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果的时候才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对每个编程题目,要求考生把所有函数写在一个文件中。
调试好后,存入与【考生文件夹】下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
对于编程题目,要求选手给出的解答完全符合ANSI C++标准,不能使用诸如绘图、Win32API、中断调用、硬件操作或与操作系统相关的API。
代码中允许使用STL类库,但不能使用MFC或A TL等非ANSI c++标准的类库。
例如,不能使用CString类型(属于MFC类库)。
结果填空(满分2分)题目在【考生文件夹】下对应题号的“题目.rar”中,请先解压该文件。
解压密码以考场公布为准。
把答案存入【考生文件夹】下对应题号的“解答.txt”中即可。
2012年第三届蓝桥杯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应该代表不同的数字,问号也代表某个数字!”华生:“我猜也是!”于是,两人沉默了好久,还是没有算出合适的结果来。
请你利用计算机的优势,找到破解的答案。
把ABCDE 所代表的数字写出来。
#include<stdio.h>void main(){int k,t1 ,t;for(k=10234;k<50000;k++){bool flag[10]={0};t=k;t1=0;while(t){if(flag[t%10])break;flag[t%10]= true;t1=t1*10+t%10;t/=10 ;}if(t==0&&t1%k==0){printf("%d*%d=%d\n",k,t1/k,t1);}}}21978*4=87912//5层循环就OK了3:比酒量有一群海盗(不多于20人),在船上比拼酒量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
double n = 2;
double a = 0;
double b = n;
while(fabs(a-b)>1E-15)
{
a = (a+b)/2;
2011年选拔赛c高职
考生须知:
考试时间为4小时。
本试卷包含两种题型:“代码填空”与“程序设计”。总计100分。
其中代码填空:3+3+3+5+7+9+12 = 42分
程序设计:14+17+27= 58分
填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。所填写的代码不超过一条语句(即不能出现分号)。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
void h(int space, char x)
{
int i;
if(x<'A' || x>'Z') return;
_______________;
for(i=0; i<space; i++) printf(" ");
19
程序输出:
27-9+1
要求程序输出的组合总是大数在前小数在后。
可以假设用户的输入的数字符合范围1~121。
要求考生把所有函数写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。
对于编程题目,要求选手给出的解答完全符合ANSI C标准,不能使用c++特性;不能使用诸如绘图、中断调用等硬件相关或操作系统相关的API。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。考生的程序只有能运行出正确结果的时候才有机会得分。注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。选手的程序必须是通用的,不能只对试卷中给定的数据有效。
|abc |xyz=tt|
+-------+------+
|hellomm|t2 |
+-------+------+
本题目要求设计一个程序,把用户输入的内容用这种“准表格”的方式展现出来。具体的要求是:
用户输入的第一行是一个整数,表示接下来有多少行信息。接下来的每行由若干单元组成。单元间用逗号分开。
则程序输出:
This Is A 99_cat
我们假设:用户输入的串中只有小写字母,空格和数字,不含其它的字母或符号。每个单词间由1个或多个空格分隔。
假设用户输入的串长度不超过200个字符。
要求考生把所有函数写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。
int f(int a, int b)
{
int i;
for(i=a;;___i=3*(a++)___)
{
if(i%b==0) return i;
}
}
4.
人类历史上出现了很多种历法。现行的公历即格里历由儒略历改革而来。它是目前较为精确和规则简明的一种历法,约3300年误差一日。因为闰年问题以及每个月的长度不等,仍然使得某些计算较为麻烦。比如:求两个日期间差多少天。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
double money = 1000;
int n = 5;
int i;
for(i=0; i<n; i++)
{
money =_____money+money*0.03__________;
money -= 100;
金字塔
下面代码的目标是输出一个大写字母组成的金字塔。
其中space表示金字塔底距离左边的空白长度,x表示金字塔底的中心字母。
比如:space=0, x=’C’,则输出:
A
ABA
ABCBA
再如:space=2,x=’E’,则输出:
A
ABA
ABCBA
ABCDCBA
ABCDEDCBA
请分析该段代码的逻辑,填写缺少的部分。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
void shift(char* s, int n)
{
char* p;
char* q;
int len = strlen(s);
if(len==0) return;
if(n<=0 || n>=len) return;
int day;
};
int GetAbsDays(MyDate x)
{
int i;
int month_day[] = {31,28,31,30,31,30,31,31,30,31,30,31};
int year = x.year-1; //因为欲求距离1年1月1日的距离
int days = year * 365 + year/4 - year/100 + year/400;
{
char t =________;
sa[i+j] = 0;
if(strstr(sb, sa+i))
{
if(j>n)_________;
}
sa[i+j] = t;
}
}
return n;
}
8.
串的处理
在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:
if(x.year%4==0 && x.year%100!=0 || x.year%400==0) month_day[1]++;
for(i=0; i<___x.month_-1__________; i++)
days += month_day[i];
days += x.day-1;
return days;
对于编程题目,要求选手给出的解答完全符合ANSI C标准,不能使用c++特性;不能使用诸如绘图、中断调用等硬件相关或操作系统相关的API。
9.
画表格
在图形环境中很容易做出漂亮的表格。但在控制台环境中就比较困难了。有的时候可以用一些符号大略地模拟:(word文档中可能不整齐,拷贝到记事本中看)
+-------+------+
int n = GetDiffDays(a,b);
printf("%d\n", n);
}
5.
轮换
串“abcd”每个字符都向右移位,最右的移动到第一个字符的位置,就变为“dabc”。这称为对串进行位移=1的轮换。同理,“abcd”变为:“cdab”则称为位移=2的轮换。
下面的代码实现了对串s进行位移为n的轮换。
for(i=0; i<x-'A'; i++) printf("%c",'A'+i);
for(i=0; i<=x-'A'; i++) printf("%c",______);
printf("\n");
}
7.
中奖计算
某抽奖活动的规则是:每位参与者在纸上写下一个8位数的号码。最后通过摇奖的办法随机产生一个8位数字。参与者写下的数字中最多有多少个连续位与开奖号码中的相同,则称为中了几个号。
程序输出:用表格方式重新展现的输入内容。
例如:
用户输入:
3
cat,dog,good-luck
1,2,5
do not use,,that
则程序输出:(word文档中可能不整齐,拷贝到记事本中看)
+----------+---+---------+
|cat |dog|good-luck|
+----------+---+---------oc(__len_+1______);
p = s;
q = s2 + n % len;
while(*p)
{
*q++ = *p++;
if(q-s2>=len)
{
*q =_____0______;
q = s2;
}
}
strcpy(s,s2);
free(s2);
}
6.
可以假设:用户输入的最大行数为30,可能的最多列数为40。
要求考生把所有函数写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。
对于编程题目,要求选手给出的解答完全符合ANSI C标准,不能使用c++特性;不能使用诸如绘图、中断调用等硬件相关或操作系统相关的API。
对每个题目,要求考生把所有函数写在一个文件中。调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。相关的工程文件不要拷入。
对于编程题目,要求选手给出的解答完全符合ANSI C标准,不能使用c++特性;不能使用诸如绘图、中断调用等硬件相关或操作系统相关的API。