第四届蓝桥杯真题及答案

合集下载

蓝桥杯试题标准答案(练习)

蓝桥杯试题标准答案(练习)

1、亲密数:假设有a、b两个数,若 a 的所有因子之和等于b,b 的所有因子之和等于a ,并且 a 不等于b ,则称 a 和 b 是一对亲密数。

如284 和 220 就是一对亲密数。

#include<stdio.h>int main(){int a,b,i,n;for(a=1;a<=10000;a++){for(b=0,i=1;i<=a/2;i++)if(a%i==0)1b+=i;for(n=0,i=1;i<=b/2;i++)if(b%i==0)n+=i;1if(n==a&&a!=b&&a<b)printf("%d-%d\n",a,b);}return 0;}2、世纪末的星期:曾有邪教称 1999 年 12 月 31 日是世界末日。

当然该谣言已经不攻自破。

还有人称今后的某个世纪末的12 月 31 日如果是星期一则会....有趣的是任何一个世纪末的年份的12 月 31 日都不可能是星期一!!于是“谣言制造商”又修改为星期日 ......1999 年的 12 月 31 日是星期五,请问,未来哪一个离我们最近的一个世纪末年即xx99 年的12 月 31 日正好是星期天,即星期日请回答该年份,只写这个4 位整数,不要写 12 月 31 等多余信息#include<stdio.h>2int main(){long days = 5; /*1999 年的最后一天为周5,把下一年加上 5天对 7 取余为 0 的,则是周日*/int i = 2000;for(;;) /*无循环终止条件,可以利用break 语句终止循环*/{if(i%4==0&&i%100!=0||i%400==0){days = days%7+366;else{days = days%7+365;3}if(days%7==0&&i%100==99) {printf("%d",i);break;}i++;}return 0;}3、马虎的算式:小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

蓝桥杯小学试题及答案

蓝桥杯小学试题及答案

蓝桥杯小学试题及答案一、选择题(每题2分,共10分)1. 下列哪个选项是蓝桥杯的官方标志?A. 蓝色桥梁B. 蓝桥杯C. 蓝桥牌D. 蓝桥奖2. 蓝桥杯小学组的参赛年龄限制是多少岁?A. 6-12岁B. 8-14岁C. 10-16岁D. 12-18岁3. 蓝桥杯小学组的比赛项目包括哪些?A. 编程B. 数学C. 英语D. 所有以上选项4. 蓝桥杯的初赛通常在什么时间举行?A. 春季B. 夏季C. 秋季D. 冬季5. 蓝桥杯的决赛通常在哪个城市举行?A. 北京B. 上海C. 广州D. 深圳二、填空题(每题2分,共10分)1. 蓝桥杯小学组的编程比赛主要使用______语言。

2. 蓝桥杯小学组的数学比赛主要考察学生的______能力和______能力。

3. 蓝桥杯小学组的英语比赛包括______、______和______三个部分。

4. 蓝桥杯的初赛成绩优异者将获得晋级______的资格。

5. 蓝桥杯的决赛成绩优异者将有机会获得______的荣誉。

三、简答题(每题5分,共20分)1. 请简述蓝桥杯小学组编程比赛的目的和意义。

2. 蓝桥杯小学组数学比赛的题型有哪些?3. 蓝桥杯小学组英语比赛的评分标准是什么?4. 参加蓝桥杯小学组比赛对学生有哪些好处?四、编程题(每题10分,共20分)1. 编写一个程序,计算并输出1到100之间所有偶数的和。

2. 编写一个程序,判断一个给定的年份是否为闰年,并输出结果。

五、数学应用题(每题10分,共20分)1. 小明有10个苹果,他分给小华3个,然后又分给小李4个,最后自己还剩下多少个苹果?2. 一个长方形的长是10厘米,宽是5厘米,求这个长方形的面积和周长。

六、英语阅读理解题(每题5分,共20分)阅读以下短文,并回答后面的问题。

(短文内容略)1. 短文中提到的主要人物是谁?2. 主要人物做了什么?3. 短文中描述了哪些地点?4. 短文中的主要事件是什么?七、英语写作题(10分)请根据以下提示,写一篇不少于50字的英语短文。

第四届蓝桥答案

第四届蓝桥答案

第四届“蓝桥杯”选拔赛试题高职组1、猜年龄#include "stdafx.h"#include "math.h"void main(){int a[10]={0},LF,SCF;int i,j,k;for(i=11;pow(i,4)< 1000000;i++){LF=i*i*i;SCF=i*i*i*i;//四位数a[0]=LF/1000; //存放立方的千位a[1]=LF/100%10; //存放立方的百位a[2]=LF/10%10; //存放立方的十位a[3]=LF%10; //存放立方的个位//六位数a[4]=SCF/100000; //存放四次方的十万位a[5]=SCF/10000%10; //存放四次方的万位a[6]=SCF/1000%10; //存放四次方的千位a[7]=SCF/100%10; //存放四次方的百位a[8]=SCF/10%10; //存放四次方的十位a[9]=SCF%10; //存放四次方的个位for(j=0;j<=9;j++){for(k=j+1;k<10;k++){if(a[j]!=a[k] && SCF>=100000) //判断两两是否相等continue;elsebreak;}}if(k==11) //说明找到了符合条件的数{printf("当年岁数为:%d岁\n",i); //正确答案为18break;}}}2、马虎的算式#include "stdio.h"void main(){int a,b,c,d,e;int sum=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++){for(e=1;e<=9;e++){if( (a!=b && a!=c && a!=d && a!=e) && ( b!=c && b!=d && b!=e) && (c!=a && c!=d && c!=e) && (d!=a && d!=b && d!=e) ){if((a*10+b) * (c*100+d*10+e) == (a*100+d*10+b) * (c*10+e)){printf("%d,%d,%d,%d,%d\n",a,b,c,d,e);sum++;}}}}}}}printf("总共有%d种\n",sum);}3、振兴中华#include "stdio.h"void main(){int a[4][5];int i, j;for (j = 0; j <5; j++) //第一行列循环{a[0][j] = 1; //第一行每一列都设为1 }for (i = 1; i <4; i++) //第一列行循环{a[i][0] = 1; //每一行的第一列都设为1for (j = 1; j < 5; j++) //列循环{a[i][j] = a[i-1][j] + a[i][j-1]; //等于前一行同列的值+ 同一行前一列的值}}printf("%d\n", a[3][4]);}4、幻方填空#include "stdafx.h"void main(){int a[4][4];int k=1;int i,j,t;int sum1[4]={0},sum2[4]={0},sum3=0,sum4=0;for(i=0;i<4;i++) //行{for(j=0;j<4;j++) //列{a[i][j]=k; //将1-16 逐一赋给16个元素k++; //保持k的值与元素对应}}for(i=0;i<2;i++) //遍历开始{for(j=0;j<4;j++){if((i==j) || (i+j==3)) //只交换一轮{t=a[i][j];a[i][j]=a[4-1-i][4-1-j];a[4-1-i][4-1-j]=t;}}}for(i=0;i<4;i++){for(j=0;j<4;j++) //打印幻方{printf("%d\t",a[i][j]);}printf("\n");}}5、公约数公倍数#include "stdafx.h"void swap(int *a,int *b){int temp;temp=*a;*a=*b;*b=temp;}void myfunc(int a, int b){int m,n,r;if(a<b) swap(&a,&b);m=a;n=b;r=a%b;while(r!=0){a=b;b=r;r=a%b;}printf("%d\n",b); // 最大公约数printf("%d\n",m*n/b); // 最小公倍数}void main(){int a,b;scanf("%d,%d",&a,&b);myfunc(a,b);}6、三部排序法#include "stdafx.h"void sort3p(int* x, int len){int p = 0;int left = 0;int right = len-1;while(p<=right){if(x[p]<0){int t = x[left];x[left] = x[p];x[p] = t;left++;p++;}else if(x[p]>0){int t = x[right];x[right] = x[p];x[p] = t;right--;}else{p++; //填空位置}}}void main(void){int x[] = {25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0};int len = 14;sort3p(x, len);for(int i = 0; i < len; i++){printf("%d,", x[i]);}}7、核桃的数量#include"stdafx.h"void swap(int *a,int *b){int t;t=*a;*a=*b;*b=t;}int fun(int a,int b){int m,n,r;if(a<b)swap(&a,&b);m=a;n=b;r=a%b;while(r!=0){a=b;b=r;r=a%b;//求两数最小公倍数:先求两数最大公约数,再将两数之积除以两数最大公约数}return m*n/b;}void main(){int a,b,c;scanf("%d %d %d",&a,&b,&c);printf("%d\n",fun( fun(a,b),fun(b,c) ) );//求三数最小公倍数:先求前两个数最小公倍数,再求前两个数最小公倍数与第三个数的最小公倍数}8、打印十字图#include "stdafx.h"void swap(int *a, int *b){int temp;temp = *a;*a = *b;*b = temp;}int go(int i, int j, int n){if (i > n * 2 + 3)i = n * 4 + 6 - i;if (j > n * 2 + 3)j = n * 4 + 6 - j;if (i < j) swap(&i, &j);if (i <= 2 && j <= 2) return 0;if (i % 2 == 1 && j >= i - 2) return 1;if (j % 2 == 1 && j != i - 1) return 1;return 0;}void main(){int n;scanf("%d", &n);int i, j;for (i = 1; i <= n*4+5; i++){for (j = 1; j <= n*4+5; j++){if (go(i, j, n))printf("$");elseprintf(".");}printf("\n");}}9、带分数#include "stdafx.h"#define N 9int num[N] = {1,2,3,4,5,6,7,8,9};int tag[3][3] = {{4,3,2},{5,3,1},{6,2,1}};void swap(int *a, int *b){int temp;temp = *a;*a = *b;*b = temp;}int go(int i, int n){int a, b, c;int count = 0;for (a = 0; a < 3; a++){int r[3] = {0} , d = 0;for (b = 0; b < 3; b++)for (c = 0; c < tag[a][b]; c++)r[b] = r[b] * 10 + num[d++];if (r[0] + r[1] / r[2] == n && r[1] % r[2] == 0) count++;if (r[0] + r[2] / r[1] == n && r[2] % r[1] == 0) count++;if (r[1] + r[0] / r[2] == n && r[0] % r[2] == 0) count++;if (r[1] + r[2] / r[0] == n && r[2] % r[0] == 0) count++;if (r[2] + r[0] / r[1] == n && r[0] % r[1] == 0) count++;if (r[2] + r[1] / r[0] == n && r[1] % r[0] == 0) count++;}while (i < N){int k = i + 1;while (k < N){swap(num + i, num + k);count += go(i + 1, n);swap(num + i, num + k);k++;}i++;}return count;}void main(){int n;scanf("%d", &n);printf("%d", go(0, n)); }10、剪格子#include"stdafx.h"#define N 10int num[N][N];// tag是用来标志格子有没有加入,用颜色来表示,1为已加入,黑色,0为没加入,白色// 初始化全为白色int tag[N][N] = {0};int m, n;int r = 100;//判断格子(i,j)颜色是否t,一样的话就找他周围颜色也为t//返回找到的总数int find(int i, int j, int t, int ntag[][N]){int count = 0;//出界或走过if (i < 0 || i >= n || j < 0 || j >= m || ntag[i][j] == 1)return 0;//标为已走过ntag[i][j] = 1;//颜色不一样,返回if (tag[i][j] != t)return 0;count++;count += find(i - 1, j, t, ntag);count += find(i + 1, j, t, ntag);count += find(i, j - 1, t, ntag);count += find(i, j + 1, t, ntag);return count;}//判断是否当前的tag,能不能剪成两块int isbad(){int i, j, k = 0;int t = tag[0][0];int ntag1[N][N] = {0};int ntag2[N][N] = {0};//找一块连在一起的黑格子int ge1 = find(0, 0, t, ntag1);for (i = 0; i < n; i++){for (j = 0; j < m; j++){if (tag[i][j] != t){k = 1;break;}}if (k == 1)break;}if (i == n && j == m)return 0;//找连在一起的白格子int ge2 = find(i, j, tag[i][j], ntag2);return ge1 + ge2 != m * n;//若黑+白!= 总数说明不止两块,如:黑$白#/*##$$##$$##这种情况就有2块白的,1块黑的*/}// 判断格子(i,j)是否出界,以及判断格子可不可以剪成两块连续的格子int bad(int i, int j){if (i < 0 || i >= n || j < 0 || j >= m || tag[i][j] == 1)return 1;tag[i][j] = 1; //格子加入int b = isbad(); //判断格子可不可以剪成两块连续的格子tag[i][j] = 0; //格子退出return b;}/** i, j 下一个要加入的格子* k 已加入的格子数* count 剩余总分* 执行完,全局tag是没有改变的*/void go(int i, int j, int k, int count){// 判断格子是否可加入if (bad(i, j) || count < num[i][j])return;// 格子可加入,已加入格子数+1k++;// 如果剩余总分刚好等于加入的格子的分数,那么这种情况符合要求if (count == num[i][j]){if (r > k)r = k;return;}// 加入格子,tag改变为1tag[i][j] = 1;count -= num[i][j];// 寻找周围格子是否可加入go(i - 1, j, k, count); // 执行完,tag是没有改变的go(i + 1, j, k, count); // 执行完,tag是没有改变的go(i, j - 1, k, count); // 执行完,tag是没有改变的go(i, j + 1, k, count); // 执行完,tag是没有改变的// 格子退出, tag恢复为0,也就是保证执行完,tag是没有改变的tag[i][j] = 0;}int main(){scanf("%d %d", &m, &n);int i, j;int half = 0;for (i = 0; i < n; i++)for (j = 0; j < m; j++){scanf("%d", &num[i][j]);// 计算总分half += num[i][j];}// 判断总分是否为偶数if (half % 2 == 0 && half >= num[0][0] * 2) {// 计算总分的一半half /= 2;// go(int i, int j, int k, int count)// 下一个要加入的格子为i, j: (0,0)// 已加入的格子数为0// half 剩余总分go(0, 0, 0, half);}if (r == 100)r = 0;printf("%d", r);return 0;}。

蓝桥杯部分题目(含答案)

蓝桥杯部分题目(含答案)

1、未名湖边的烦恼关键词:递归,蓝桥杯,算法问题描述每年冬天,北大未名湖上都是滑冰的好地方。

北大体育组准备了许多冰鞋,可是人太多了,每天下午收工后,常常一双冰鞋都不剩。

每天早上,租鞋窗口都会排起长龙,假设有还鞋的m个,有需要租鞋的n个。

现在的问题是,这些人有多少种排法,可以避免出现体育组没有冰鞋可租的尴尬场面。

(两个同样需求的人(比如都是租鞋或都是还鞋)交换位置是同一种排法)输入格式两个整数,表示m和n输出格式一个整数,表示队伍的排法的方案数。

样例输入3 2样例输出5数据规模和约定m,n∈[0,18]#include "iostream"#include "cstdio"#include "cmath"#include "algorithm"#include "map"using namespace std;int f(int m,int n){if(m<n) return 0;if(n==0) return 1;return f(m,n-1)+f(m-1,n);}int main(){int m,n;scanf("%d%d",&m,&n);int ans=f(m,n);printf("%d\n",ans);return 0;}2.标题:蚂蚁感冒关键词:结构体排序,蓝桥杯【题目描述】长100厘米的细长直杆子上有n只蚂蚁。

它们的头有的朝左,有的朝右。

每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。

当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。

这些蚂蚁中,有1只蚂蚁感冒了。

并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。

请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。

【数据格式】第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。

第四届蓝桥杯省赛高职JAVA语言C组真题

第四届蓝桥杯省赛高职JAVA语言C组真题

第四届蓝桥杯省赛高职JAVA语言C组真题1.标题:猜年龄小明带两个妹妹参加元宵灯会。

别人问她们多大了,她们调皮地说:“我们俩的年龄之积是年龄之和的6倍”。

小明又补充说:“她们可不是双胞胎,年龄差肯定也不超过8岁啊。

”请你写出:小明的较小的妹妹的年龄。

注意:只写一个人的年龄数字,请通过浏览器提交答案。

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

2.标题:等额本金小明从银行贷款3万元。

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

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

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

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

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

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

不要写多余内容(例如:多写了“元”或添加说明文字)4.骰子游戏标题:大衍数列中国古代文献中,曾记载过“大衍数列”, 主要用于解释中国传统文化中的太极衍生原理。

它的前几项是:0、2、4、8、12、18、24、32、40、50 ...其规律是:对偶数项,是序号平方再除2,奇数项,是序号平方减1再除2。

以下的代码打印出了大衍数列的前100 项。

for(int i=1; i<100; i++){if(________________) //填空System.out.println(i*i/2);elseSystem.out.println((i*i-1)/2);}请填写划线部分缺失的代码。

通过浏览器提交答案。

注意:不要填写题面已有的内容,也不要填写任何说明、解释文字。

5.标题:写日志写日志是程序的常见任务。

第四届蓝桥杯样题

第四届蓝桥杯样题

1.(编程题)下列乘法算式中:每个汉字代表1个数字(1~9)。

相同的汉字代表相同的数字,不同的汉字代表不同的数字。

赛软件* 比赛= 软件比拼试编程确定使得整个算式成立的数字组合,如有多种情况,请给出所有可能的答案2.(编程题)花朵数一个N位的十进制正整数,如果它的每个位上的数字的N 次方的和等于这个数本身,则称其为花朵数。

例如:当N=3时,153就满足条件,因为1^3 + 5^3 + 3^3 = 153,这样的数字也被称为水仙花数(其中,“^”表示乘方,5^3表示5的3次方,也就是立方)。

当N=4时,1634满足条件,因为1^4 + 6^4 + 3^4 + 4^4 = 1634。

当N=5时,92727满足条件。

实际上,对N的每个取值,可能有多个数字满足条件。

程序的任务是:求N=21时,所有满足条件的花朵数。

注意:这个整数有21位,它的各个位数字的21次方之和正好等于这个数本身。

如果满足条件的数字不只有一个,请从小到大输出所有符合条件的数字,每个数字占一行。

因为这个数字很大,请注意解法时间上的可行性。

要求程序在3分钟内运行完毕。

3.(编程题)信用卡号验证当你输入信用卡号码的时候,有没有担心输错了而造成损失呢?其实可以不必这么担心,因为并不是一个随便的信用卡号码都是合法的,它必须通过Luhn算法来验证通过。

该校验的过程:1、从卡号最后一位数字开始,逆向将奇数位(1、3、5等等)相加。

2、从卡号最后一位数字开始,逆向将偶数位数字,先乘以2(如果乘积为两位数,则将其减去9),再求和。

3、将奇数位总和加上偶数位总和,结果应该可以被10整除。

例如,卡号是:5432123456788881则奇数、偶数位(用红色标出)分布:5432123456788881 奇数位和=35偶数位乘以2(有些要减去9)的结果:1 6 2 6 1 5 7 7,求和=35。

最后35+35=70 可以被10整除,认定校验通过。

请编写一个程序,从标准输入获得卡号,然后判断是否校验通过。

大学生蓝桥杯试题及答案

大学生蓝桥杯试题及答案

大学生蓝桥杯试题及答案一、选择题(每题2分,共20分)1. 在计算机科学中,通常用什么来表示一个算法的效率?A. 时间复杂度B. 空间复杂度C. 算法的可读性D. 算法的可维护性答案:A2. 下列哪种数据结构在插入和删除操作时不需要移动其他元素?A. 链表B. 数组C. 栈D. 队列答案:A3. 以下哪个选项是面向对象编程的三个基本特征?A. 封装、继承、多态B. 抽象、封装、继承C. 继承、封装、多态D. 封装、继承、抽象答案:A4. 在HTML中,用于定义最重要的标题的标签是什么?A. <h1>B. <h6>C. <title>D. <header>答案:A5. 在数据库管理系统中,用于从数据库中检索数据的SQL语句是?A. INSERTB. UPDATEC. DELETED. SELECT答案:D6. 在Java中,用于定义一个类的方法的关键字是什么?A. classB. methodC. functionD. public答案:D7. 在C语言中,用于声明一个变量为静态存储的关键字是什么?A. staticB. externC. registerD. auto答案:A8. 在Python中,用于定义一个函数的关键字是什么?A. defB. functionC. methodD. class答案:A9. 在操作系统中,用于管理进程的调度和资源分配的组件是什么?A. 文件系统B. 内存管理C. 进程管理器D. 设备驱动程序答案:C10. 以下哪个协议是用于在互联网上发送电子邮件的?A. HTTPB. FTPC. SMTPD. TCP答案:C二、填空题(每题2分,共20分)1. 在计算机科学中,________是用来衡量算法在最坏情况下执行时间的量度。

答案:时间复杂度2. 在数据结构中,________是一种允许在任意位置插入和删除数据的线性数据结构。

历届蓝桥杯试题及答案

历届蓝桥杯试题及答案

历届蓝桥杯试题及答案蓝桥杯是中国最有影响力的计算机竞赛之一,每年都会吸引众多计算机科学爱好者的参与。

本文将回顾历届蓝桥杯的试题,并给出相应的答案。

通过了解历届试题,可以帮助读者更好地准备参加蓝桥杯竞赛。

(此处省略介绍部分)第一届蓝桥杯试题及答案:试题一:(试题内容)(解答步骤)试题二:(试题内容)(解答步骤)试题三:(试题内容)(解答步骤)......第二届蓝桥杯试题及答案:试题一:(试题内容)(解答步骤)试题二:(试题内容)(解答步骤)试题三:(试题内容)(解答步骤)......随着届数的增加,蓝桥杯的试题逐渐增加了难度和复杂程度。

参赛者需要有扎实的计算机基础知识和编程技能才能应对这些挑战。

以下是蓝桥杯历届试题的一些特点总结:1. 试题内容涵盖广泛:蓝桥杯试题从计算机基础知识到算法设计,从编程练习到系统设计,几乎涵盖了计算机科学的各个领域。

2. 试题形式多样:蓝桥杯试题不仅有传统的选择题和编程题,还有设计题、开放题等形式。

这样的设计旨在考察参赛者的创新能力和综合运用能力。

3. 解答步骤详细:对于编程题和算法设计题,蓝桥杯试题答案中往往会给出详细的解答步骤,包括思路分析、代码实现等。

这对于参赛者来说是很好的学习资料。

通过研究历届蓝桥杯试题和答案,我们可以总结出以下参加蓝桥杯竞赛的一些建议:1. 扎实的基础知识:参赛者应该有扎实的计算机基础知识,包括数据结构、算法、编程语言等方面。

只有基础知识扎实,才能更好地应对复杂的试题。

2. 练习编程技巧:编程技巧是参赛者必备的能力,需要不断进行练习和实践。

可以通过刷题、参加编程比赛等方式来提高编程技巧。

3. 团队合作能力:蓝桥杯竞赛有团队赛和个人赛两种形式,参赛者可以选择适合自己的方式。

无论是个人赛还是团队赛,团队合作能力都是必不可少的。

在团队中合理分工、有效沟通,可以提高比赛的效果。

4. 多方面准备:蓝桥杯试题范围广泛,参赛者应该在各个方面进行准备,包括理论知识、实践能力、应试技巧等。

蓝桥杯试题及答案

蓝桥杯试题及答案

蓝桥杯试题及答案一、选择题1. 在Java中,以下哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A2. 下列哪个不是Python的内置数据类型?A. intB. floatC. stringD. list答案:D二、填空题1. 在C语言中,定义一个整型变量的关键字是________。

答案:int2. 在JavaScript中,用于定义函数的关键字是________。

答案:function三、简答题1. 请简述什么是算法的时间复杂度,并给出一个例子。

答案:算法的时间复杂度是指算法执行时间随输入规模增长的变化趋势。

例如,对于一个简单的线性搜索算法,如果数组中有n个元素,最坏情况下需要比较n次,因此其时间复杂度是O(n)。

2. 请解释什么是栈,并给出一个栈的应用场景。

答案:栈是一种后进先出(LIFO)的数据结构,允许在一端进行数据的添加和删除操作。

一个常见的栈的应用场景是函数调用的实现,在编程中,每当调用一个函数,就会将函数的返回地址和局部变量压入栈中,待函数执行完毕后再从栈中弹出。

四、编程题1. 编写一个函数,实现对一个整数数组进行排序。

答案:```javapublic static void sort(int[] array) {for (int i = 0; i < array.length - 1; i++) {for (int j = 0; j < array.length - i - 1; j++) {if (array[j] > array[j + 1]) {int temp = array[j];array[j] = array[j + 1];array[j + 1] = temp;}}}}```2. 编写一个程序,实现计算一个字符串中所有元音字母的数量。

答案:```pythondef count_vowels(s):vowels = "aeiouAEIOU"return sum(1 for char in s if char in vowels)# 示例print(count_vowels("Hello World")) # 输出应该是 3```五、案例分析题1. 描述一个场景,其中使用二叉搜索树(BST)比使用数组更有效,并解释原因。

蓝桥杯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;}```。

蓝桥杯大学组试题及答案

蓝桥杯大学组试题及答案

蓝桥杯大学组试题及答案一、单项选择题(每题5分,共50分)1. 以下哪个选项是Python语言中定义列表的正确方式?A. list = {}B. list = []C. list = ()D. list = []答案:B2. 在HTML中,用于定义最重要的标题的标签是?A. <h1>B. <h2>C. <h3>D. <h4>答案:A3. 以下哪个选项是JavaScript中声明函数的正确方式?A. function myFunction() {}B. var myFunction = function() {}C. var myFunction = function() {}D. Both A and B答案:D4. 在CSS中,以下哪个属性用于设置元素的背景颜色?A. background-colorB. backgroundC. colorD. bgcolor答案:A5. 在SQL中,以下哪个命令用于创建一个新的数据库?A. CREATE TABLEB. CREATE DATABASEC. SELECTD. INSERT INTO答案:B6. 在Java中,以下哪个关键字用于定义一个类?A. classB. functionC. structD. interface答案:A7. 在C++中,以下哪个操作符用于定义引用?A. *B. &C. %D. #答案:B8. 在PHP中,以下哪个函数用于连接数据库?A. connect()B. db_connect()C. mysqli_connect()D. database_connect()答案:C9. 在Unix/Linux系统中,以下哪个命令用于查看当前工作目录?A. pwdB. lsC. cdD. mkdir答案:A10. 在正则表达式中,以下哪个符号用于匹配任何单个字符?A. .B. *C. ^D. $答案:A二、多项选择题(每题10分,共20分)1. 以下哪些选项是JavaScript中常用的数据类型?A. NumberB. StringC. BooleanD. ObjectE. Array答案:ABCDE2. 在Python中,以下哪些选项是合法的变量命名?A. _my_varB. my_varC. 2my_varD. my-varE. myVar答案:ABE三、简答题(每题15分,共30分)1. 请简述在HTML5中,如何使用Canvas元素绘制一个简单的矩形。

蓝桥杯小学测试题及答案

蓝桥杯小学测试题及答案

蓝桥杯小学测试题及答案一、选择题(每题2分,共20分)1. 以下哪个选项是正确的?A. 蓝桥是红色的B. 蓝桥是蓝色的C. 蓝桥是绿色的D. 蓝桥是黄色的答案:B2. 蓝桥杯小学测试题的总分是多少?A. 50分B. 60分C. 70分D. 80分答案:B3. 以下哪个选项是蓝桥杯小学测试题的题型?A. 选择题B. 填空题C. 判断题D. 所有以上答案:D4. 蓝桥杯小学测试题的选择题部分共有多少题?A. 10题B. 15题C. 20题D. 25题答案:A5. 蓝桥杯小学测试题的填空题部分共有多少题?A. 5题B. 10题C. 15题D. 20题答案:A二、填空题(每题2分,共10分)1. 蓝桥杯小学测试题的选择题部分占总分的______%。

答案:33.332. 蓝桥杯小学测试题的填空题部分占总分的______%。

答案:16.673. 如果一个学生在选择题部分得了满分,那么他在填空题部分至少需要得______分才能达到总分的80%。

答案:64. 蓝桥杯小学测试题的总分是______分。

答案:605. 如果一个学生在选择题部分得了10分,在填空题部分得了5分,那么他的总分是______分。

答案:15三、判断题(每题1分,共10分)1. 蓝桥杯小学测试题的总分是100分。

()答案:×2. 选择题和填空题是蓝桥杯小学测试题的两种题型。

()答案:√3. 蓝桥杯小学测试题的选择题部分有20题。

()答案:×4. 蓝桥杯小学测试题的填空题部分有10题。

()答案:×5. 蓝桥杯小学测试题的总分是50分。

()答案:×四、简答题(每题5分,共20分)1. 请简述蓝桥杯小学测试题的目的。

答案:蓝桥杯小学测试题的目的是检验学生的基础知识掌握情况,并通过测试来激发学生的学习兴趣和提高学习效果。

2. 蓝桥杯小学测试题的评分标准是什么?答案:蓝桥杯小学测试题的评分标准是每题的分值乘以学生答对的题目数量,最后将所有题目的分数相加得出总分。

2013年蓝桥杯(第4届)预赛本科A组C语言真题解析

2013年蓝桥杯(第4届)预赛本科A组C语言真题解析

2013年蓝桥杯(第4届)预赛本科A组真题解析高斯日记大数学家高斯有个好习惯:无论如何都要记日记。

他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。

这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。

在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。

高斯获得博士学位的那天日记上标着:8113请你算出高斯获得博士学位的年月日。

提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21(1)答案。

1799-07-16(2)编程思路1。

从年的角度出发,先求出4月30日是1777年的第几天,加到日记标注的n上,并将n 减1,这样n为从1777年1月1日开始的天数;再看n中有多少年(设为x),加到1777上,并从n中减去这x年包括的天数;最后求得剩余天数在1777+x年中的日期。

(3)源程序1。

# include <stdio.h>int isLeap(int year);int main(){int a[2][12] = {{31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},{31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};int n;scanf("%d",&n);int year=1777, month=4,day=30; // birthfor (int i = 0; i < (month - 1); i++){n += a[isLeap(year)][i];}n += day-1;// 此时n为从1777年1月1日开始天数while (n > 0){if(isLeap(year))n -= 366;elsen -= 365;year++;}if (n<0){year--;n=n+(isLeap(year)?366:365);}for (int i = 0; n > 0; i++){day = n;month = i;n -= a[isLeap(year)][i];}printf("%d-%02d-%02d\n", year,month + 1, day);return 0;}int isLeap(int year){if((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))return 1;elsereturn 0;}(4)编程思路2。

蓝桥杯基础试题及答案

蓝桥杯基础试题及答案

蓝桥杯基础试题及答案1. 题目:给定一个整数数组,请找出数组中第二大的数。

答案:首先对数组进行排序,然后取出倒数第二个元素即可。

2. 题目:编写一个函数,实现字符串的反转。

答案:可以使用栈的数据结构,将字符串中的字符依次压入栈中,再依次弹出即可得到反转后的字符串。

3. 题目:判断一个整数是否是回文数。

答案:将整数转换为字符串,然后比较字符串与其反转后的字符串是否相等。

4. 题目:给定一个链表,删除链表的倒数第n个节点。

答案:使用双指针法,一个指针先走n步,然后两个指针一起走,直到第一个指针到达链表末尾,此时第二个指针指向的就是需要删除的节点的前一个节点。

5. 题目:实现一个函数,计算两个整数相加的和。

答案:使用位运算,模拟加法运算的过程,考虑进位的情况。

6. 题目:给定一个二维矩阵,找出矩阵中从左上角到右下角的最短路径,路径上的数字之和最小。

答案:使用动态规划,从左上角开始,每次向下或向右移动,选择路径和最小的方向。

7. 题目:实现一个函数,判断一个整数是否是素数。

答案:从2到该整数的平方根进行遍历,如果该整数能被遍历中的任何一个数整除,则不是素数。

8. 题目:给定一个字符串,找出其中不重复的最长子串的长度。

答案:使用滑动窗口的方法,维护一个窗口,窗口内的字符串都是不重复的,每次向右扩展窗口,并更新最长不重复子串的长度。

9. 题目:给定一个排序数组,找出数组中没有出现的最小正整数。

答案:从1开始遍历,如果当前数字不在数组中,则返回当前数字;如果遍历完数组还没有找到,则返回数组最后一个数字加1。

10. 题目:实现一个函数,计算一个整数的阶乘。

答案:使用递归或循环,从1乘到该整数,注意处理大数的情况。

第四届蓝桥杯真题及答案

第四届蓝桥杯真题及答案

1. 结果填空(满分4分)题目标题: 高斯日记大数学家高斯有个好习惯:无论如何都要记日记。

他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。

这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。

在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。

高斯获得博士学位的那天日记上标着:8113 请你算出高斯获得博士学位的年月日。

提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21请严格按照格式,通过浏览器提交答案。

注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。

考场快速解题:先看1778是闰年么?答案是不是,所以8113 - 365= 7748,又1779也不是,所以再减365得7383,然后1780是的,所以减去366得7017,又1781,1782,1783,肯定都不是所以连减3个365得5922,然后又是闰年,-366,再-365 - 365-365 -366 - 365 -365 -365 -366 -365 -365 -365 ~ -366 -365-365 -365 1799 得78,即这一天是1799年4月30日之后的78天,5月31天,-31,6月30天,-30,剩17天,此时即加上两个月,为1799年6月30日,然后往后数17天,即为1799年7月16日。

答案即为:1799-07-162. 结果填空(满分5分)标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

有一次,老师出的题目是: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 这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。

第1-7届蓝桥杯决赛试题及答案

第1-7届蓝桥杯决赛试题及答案

第1-7届蓝桥杯决赛试题及答案2011年第1届蓝桥杯决赛试题及答案1.四方定理数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示。

我们可以通过计算机验证其在有限范围的正确性。

对于大数,简单的循环嵌套是不适宜的。

下面的代码给出了一种分解方案。

请仔细阅读,填写空缺的代码(下划线部分)。

注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

直接写在题面中不能得分。

int f(int n, int a[], int idx){if(______________) return 1; // 填空1if(idx==4) return 0;for(int i=(int)sqrt(n); i>=1; i--){a[idx] = i;if(_______________________)return 1; // 填空2}return 0;}int main(int argc, char* argv[]){for(;;){int number;printf("输入整数(1~10亿):");scanf("%d",&number);int a[] = {0,0,0,0};int r = f(number, a, 0);printf("%d: %d %d %d %d\n", r, a[0], a[1], a[2], a[3]);}return 0;}2.加密在对文本进行简单加密的时候,可以选择用一个n位的二进制数,对原文进行异或运算。

解密的方法就是再执行一次同样的操作。

加密过程中n位二进制数会循环使用。

并且其长度也可能不是8的整数倍。

下面的代码演示了如何实现该功能。

请仔细阅读,填写空缺的代码(下划线部分)。

注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。

蓝桥杯试题及答案

蓝桥杯试题及答案

蓝桥杯试题及答案蓝桥杯是面向全国高校计算机专业学生的程序设计竞赛,由工业和信息化部人才交流中心主办,旨在提高学生的编程能力、算法设计能力以及团队合作能力。

以下是一份蓝桥杯试题及答案的示例,供参考。

### 蓝桥杯程序设计竞赛试题及答案#### 题目一:求最大公约数题目描述:给定两个正整数 a 和 b,请编写一个程序计算它们的最大公约数(GCD)。

输入格式:输入包含两个整数 a 和 b,用空格分隔。

输出格式:输出 a 和 b 的最大公约数。

样例输入:```24 36```样例输出:``````答案:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int a, b;scanf("%d %d", &a, &b);printf("%d\n", gcd(a, b));return 0;}```#### 题目二:字符串反转题目描述:编写一个程序,实现对输入的字符串进行反转。

输入格式:输入一个字符串。

输出格式:输出反转后的字符串。

样例输入:```Hello World```样例输出:`````ldrow olleH```答案:```c#include <stdio.h>#include <string.h>int main() {char str[1000];scanf("%s", str);int len = strlen(str);for (int i = len - 1; i >= 0; i--) { printf("%c", str[i]);}return 0;}```#### 题目三:二分查找题目描述:在一个已排序的数组中,使用二分查找算法找出一个特定元素的位置。

蓝桥杯试题及答案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. 题目五:判断素数要求:编写一个函数,判断一个整数是否为素数。

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

蓝桥杯python语言试题及答案

蓝桥杯python语言试题及答案

蓝桥杯python语言试题及答案蓝桥杯Python语言试题及答案1. 题目:编写一个Python函数,计算给定列表中所有数字的和。

答案:```pythondef sum_of_list(numbers):return sum(numbers)```2. 题目:编写一个Python函数,判断给定字符串是否为回文。

答案:```pythondef is_palindrome(s):return s == s[::-1]```3. 题目:给定一个整数数组,请编写一个Python函数,找出数组中第二大的数。

答案:```pythondef second_largest(numbers):unique_numbers = set(numbers)if len(unique_numbers) < 2:return Noneunique_numbers = sorted(unique_numbers, reverse=True)return unique_numbers[1]```4. 题目:编写一个Python函数,实现字符串的反转。

答案:```pythondef reverse_string(s):return s[::-1]```5. 题目:给定一个整数n,请编写一个Python函数,返回n的阶乘。

答案:```pythondef factorial(n):if n == 0:return 1else:return n * factorial(n - 1)```6. 题目:编写一个Python函数,实现斐波那契数列的第n项。

答案:```pythondef fibonacci(n):if n <= 0:return 0elif n == 1:return 1else:return fibonacci(n - 1) + fibonacci(n - 2)```7. 题目:编写一个Python函数,检查一个整数是否为素数。

蓝桥杯练习题答案

蓝桥杯练习题答案

蓝桥杯练习题答案蓝桥杯练习题答案蓝桥杯是中国最大的计算机竞赛之一,每年都吸引着众多学生的参与。

对于参赛者来说,蓝桥杯的练习题是非常重要的一部分,通过解答这些题目,可以提高自己的编程能力和解决问题的能力。

然而,很多人在解答练习题时遇到了困难,不知道如何下手。

在本文中,我将为大家提供一些蓝桥杯练习题的答案,希望能够帮助到大家。

首先,我们来看一道经典的蓝桥杯练习题——计算矩阵的最大值。

题目要求给定一个二维矩阵,求出矩阵中的最大值。

这道题可以通过遍历矩阵的每个元素,然后将当前元素与已知的最大值进行比较,更新最大值即可。

具体的实现代码如下:```pythonmax_value = float('-inf') # 初始化最大值为负无穷for row in matrix:for num in row:if num > max_value:max_value = numprint(max_value)```接下来,我们来看一道稍微复杂一点的蓝桥杯练习题——字符串反转。

题目要求给定一个字符串,将其反转输出。

这道题可以通过将字符串转化为列表,然后使用列表的反转方法进行反转,最后再将列表转化为字符串即可。

具体的实现代码如下:```pythons = "hello world"s_list = list(s) # 将字符串转化为列表s_list.reverse() # 列表反转reversed_s = ''.join(s_list) # 将列表转化为字符串print(reversed_s)```除了以上两道题目,蓝桥杯还有许多其他类型的练习题,涵盖了数据结构、算法、网络编程等多个方面。

对于这些题目,我们可以通过多加练习和学习相关知识来提高自己的解题能力。

总结起来,蓝桥杯练习题的答案并非固定不变的,而是需要根据具体题目进行分析和解答。

解答蓝桥杯练习题的关键在于理解题目的要求,找到解题的思路,并将其转化为具体的代码实现。

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

1. 结果填空(满分4分)题目标题: 高斯日记大数学家高斯有个好习惯:无论如何都要记日记。

他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210后来人们知道,那个整数就是日期,它表示那一天是高斯出生后的第几天。

这或许也是个好习惯,它时时刻刻提醒着主人:日子又过去一天,还有多少时光可以用于浪费呢?高斯出生于:1777年4月30日。

在高斯发现的一个重要定理的日记上标注着:5343,因此可算出那天是:1791年12月15日。

高斯获得博士学位的那天日记上标着:8113 请你算出高斯获得博士学位的年月日。

提交答案的格式是:yyyy-mm-dd, 例如:1980-03-21请严格按照格式,通过浏览器提交答案。

注意:只提交这个日期,不要写其它附加内容,比如:说明性的文字。

考场快速解题:先看1778是闰年么?答案是不是,所以8113 - 365= 7748,又1779也不是,所以再减365得7383,然后1780是的,所以减去366得7017,又1781,1782,1783,肯定都不是所以连减3个365得5922,然后又是闰年,-366,再-365 - 365-365 -366 - 365 -365 -365 -366 -365 -365 -365 ~ -366 -365-365 -365 1799 得78,即这一天是1799年4月30日之后的78天,5月31天,-31,6月30天,-30,剩17天,此时即加上两个月,为1799年6月30日,然后往后数17天,即为1799年7月16日。

答案即为:1799-07-162. 结果填空(满分5分)标题: 马虎的算式小明是个急性子,上小学的时候经常把老师写在黑板上的题目抄错了。

有一次,老师出的题目是: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 这样的算式一共有多少种呢?请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。

满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。

答案直接通过浏览器提交。

注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。

快速解题技巧:暴力秒吧。

五重循环,绝对很快出答案。

根据给的那个ab * cde = adb * ce算式,五个变量,一个判断条件,直接跑。

很方便。

答案为:1423. 结果填空(满分8分)题目标题: 第39级台阶小明刚刚看完电影《第39级台阶》,离开电影院的时候,他数了数礼堂前的台阶数,恰好是39级!站在台阶前,他突然又想着一个问题:如果我每一步只能迈上1个或2个台阶。

先迈左脚,然后左右交替,最后一步是迈右脚,也就是说一共要走偶数步。

那么,上完39级台阶,有多少种不同的上法呢?请你利用计算机的优势,帮助小明寻找答案。

要求提交的是一个整数。

注意:不要提交解答过程,或其它的辅助说明文字。

快速解题技巧:首先,踏到第i层有4种方法,分为:用左或右脚在第i-1或第i-2层踏上。

此时只需加一个判断是左还是右脚踏的变量就可以用一个递归或递推算出答案。

当然你要是对递归有些不放心大可用二维的,一个判断左还是右一个维度的值存左或右脚踏上这层的方法数,来求解问题。

答案为:51167078递归代码:[cpp]view plaincopyprint?1.#include <stdio.h>2.3.int fun(int n,int flag){4.if(n == 1){5.if(flag == 1)6.return 1;7.else return 0;8.}9.else if(n == 2){10.return 1;11.}12.return (fun(n-1,!flag) + fun(n - 2,!flag));13.}14.15.int main()16.{17.printf("%d\n",fun(39,0));18.return 0;19.}4. 结果填空(满分12分)标题: 黄金连分数黄金分割数0.61803... 是个无理数,这个常数十分重要,在许多工程问题中会出现。

有时需要把这个数字求得很精确。

对于某些精密工程,常数的精度很重要。

也许你听说过哈勃太空望远镜,它首次升空后就发现了一处人工加工错误,对那样一个庞然大物,其实只是镜面加工时有比头发丝还细许多倍的一处错误而已,却使它成了“近视眼”!!言归正传,我们如何求得黄金分割数的尽可能精确的值呢?有许多方法。

比较简单的一种是用连分数:1黄金数= ---------------------11 + -----------------11 +-------------11 + ---------1 + ...这个连分数计算的“层数”越多,它的值越接近黄金分割数。

请你利用这一特性,求出黄金分割数的足够精确值,要求四舍五入到小数点后100位。

小数点后3位的值为:0.618 小数点后4位的值为:0.6180 小数点后5位的值为:0.61803 小数点后7位的值为:0.6180340 (注意尾部的0,不能忽略)你的任务是:写出精确到小数点后100位精度的黄金分割值。

注意:尾数的四舍五入!尾数是0也要保留!显然答案是一个小数,其小数点后有100位数字,请通过浏览器直接提交该数字。

注意:不要提交解答过程,或其它辅助说明类的内容。

快速解题技巧:此题首先明确,小数点后面100位数,不可能用某个变量来存起来,所以应当想到大数据的存储。

此题用java的大数据处理无遗会减少很多时间,因为你节约了写大整数的运算函数了。

这题如果一开始能联想到斐波那契数的话再加上会java的大整数运算,那么很快就能过了,选择斐波那契数里面某两个连续的数,小的做被除数,大的做除数。

利用java的大整数,每一位存起两数的商值,然后将余数乘以10 再做被除数,除数不变。

一直算到一百位即可。

当然最最快速的方法莫过于出去上个厕所拿手机出来百度一下。

100位直接到手。

是不是很快?!答案为:0.6180339887 4989484820 4586834365 6381177203 09179805762862135448 6227052604 6281890244 9707207204 18939113745. 代码填空(满分5分)题目标题:前缀判断如下的代码判断needle_start指向的串是否为haystack_start指向的串的前缀,如不是,则返回NULL。

比如:"abcd1234" 就包含了"abc" 为前缀char*prefix(char* haystack_start, char* needle_start){char*haystack = haystack_start;char*needle = needle_start;while(*haystack&& *needle){if(______________________________) return NULL; //填空位置}if(*needle)return NULL;returnhaystack_start;}请分析代码逻辑,并推测划线处的代码,通过网页提交。

注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!快速解题技巧:这样的题考的就是你对指针的理解程度,将题意看懂,*needle_start的数组若是*haystack_start数组的前缀则*haystack_start的前len个字符和*needle_start数组的前len个字符对等。

而len的值即为*needle_start数组的长度。

所以什么情况下才是真呢?一个一个的比嘛,直到某一方比完,或者出现了不等,出现了不等则不是其前缀,即返回NULL,若比完了一方,则看被比完的是哪一方,若是*needle_start被比完了,那么就代表它是另一数组的前缀,返回头指针,若是*haystack_start被比完了,那么就代表着*haystack_start数组是*needle_start数组的前缀,即为相反了,故不是,返回NULL。

答案:*haystack++ != *needle++6. 代码填空(满分7分)标题:三部排序一般的排序有许多经典算法,如快速排序、希尔排序等。

但实际应用时,经常会或多或少有一些特殊的要求。

我们没必要套用那些经典算法,可以根据实际情况建立好的解法。

比如,对一个整型数组中的数字进行分类排序:使得负数都靠左端,正数都靠右端,0在中部。

注意问题的特点是:负数区域和正数区域内并不要求有序。

可以利用这个特点通过1次线性扫描就结束战斗!!以下的程序实现了该目标。

其中x指向待排序的整型数组,len是数组的长度。

voidsort3p(int* x, int len){intp = 0; int left = 0;intright = len-1;while(p<=right){if(x[p]<0){int t = x[left];x[left] = x[p];x[p] = t;left++;p++;}else if(x[p]>0){int t = x[right];x[right] = x[p];x[p] = t;right--;} else{__________________________; //填空位置}}}如果给定数组:25,18,-2,0,16,-5,33,21,0,19,-16,25,-3,0 则排序后为:-3,-2,-16,-5,0,0,0,21,19,33,25,16,18,25请分析代码逻辑,并推测划线处的代码,通过网页提交注意:仅把缺少的代码作为答案,千万不要填写多余的代码、符号或说明文字!!快速解题技巧:类似快排,根据代码拿着数组自己用手纸笔模拟走一两趟让他碰上0这个关键值,然后你就要想如何让这个代码实现排序,在0这个位置要加个什么代码,相信只要你手动运行了一遍,你会很快得出答案的。

答案:p++7. 程序设计(满分4分)标题:错误票据某涉密单位下发了某种票据,并要在年终全部收回。

每张票据有唯一的ID号。

全年所有票据的ID号是连续的,但ID的开始数码是随机选定的。

因为工作人员疏忽,在录入ID号的时候发生了一处错误,造成了某个ID断号,另外一个ID重号。

相关文档
最新文档