第四届蓝桥杯-20130425练习题(3题)

合集下载

蓝桥杯练习系统题目汇总(K12教育文档)

蓝桥杯练习系统题目汇总(K12教育文档)

(完整word版)蓝桥杯练习系统题目汇总(word版可编辑修改)编辑整理:尊敬的读者朋友们:这里是精品文档编辑中心,本文档内容是由我和我的同事精心编辑整理后发布的,发布之前我们对文中内容进行仔细校对,但是难免会有疏漏的地方,但是任然希望((完整word版)蓝桥杯练习系统题目汇总(word版可编辑修改))的内容能够给您的工作和学习带来便利。

同时也真诚的希望收到您的建议和反馈,这将是我们进步的源泉,前进的动力。

本文可编辑可修改,如果觉得对您有帮助请收藏以便随时查阅,最后祝您生活愉快业绩进步,以下为(完整word版)蓝桥杯练习系统题目汇总(word版可编辑修改)的全部内容。

蓝桥杯练习系统题目汇总:入门训练1. Fibonacci数列问题描述Fibonacci数列的递推公式为:F n=F n—1+F n-2,其中F1=F2=1.当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。

输入格式输入包含一个整数n。

输出格式输出一行,包含一个整数,表示F n除以10007的余数.说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单.样例输入10样例输出55样例输入22样例输出7704数据规模与约定1 〈= n 〈= 1,000,000。

参考代码:c++1.#include〈stdlib.h〉2.#include<stdio。

h>3.#define MOD 100074.#define MAXN 10000015.int n,i, F[MAXN];6.int main()7.{8.scanf(”%d",&n);9.F[1]= 1;10.F[2]= 1;11.for(i = 3;i <= n;++i)12.F[i]= (F[i-1] + F[i-2])%MOD;13.printf(”%d\n”,F[n]);14.return0;15.}java:1.import java。

蓝桥杯题-基础练习(带答案).doc

蓝桥杯题-基础练习(带答案).doc

基础练习21-基础练习Sine之舞问题描述最近町为他的奶牛们开设了数学分析课,FJ知道若耍学好这门课,必须有一个好的三角函数基本功。

所以他准备和奶牛们做-个“SineZ舞”的游戏,寓教于乐,提高奶牛们的计算能力。

不妨设An=sin(l - sin (2+sin (3 - sin (4+... sin(n))...)Sn二(…(Al+n)A2+n-1)A3+.・• +2)An+lFJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。

输入格式仅冇一个数:N<201。

输出格式请输出相应的表达式Sn,以一个换行符结束。

输出屮不得含有多余的空格或换行、回车符。

样例输入3样例输出((sin(l)+3)sin(l-sin(2))+2)sin(l-sin(2 + sin(3)))+1解答:import java.util.Seanner;public class Main{* @param args*/public static void main(String[] args) {// TODO Auto-generated method stubSeanner seanner=new Seanner(System.in);System.out.pri ntln (sflnteger.parsel nt(sca nner.n extLi ne()), 1));//System.out.print(sin(3, 1));}static String s(int n」nt i)讦(i==n) return ""+An(n)+"+"+(n-i+l);}else {return ,,("+An(i)+"+"+(n-i+l)+,,)"+""+s(n, i+l)+"";}}static String An(int n){return sin(n, 1);}static String sin(int n,int i){if(i==n){return ”sin(”+n+")”;}else {if(i%2==0)return "sin("+i+"+"+sin(n z i+l)+")";//(int)Math.pow(-lJ)else {return "sin("+i+"-"+sin(n/ i+l)+,,)'^;}}}}2 2-基础练习FJ的字符串FJ在沙盘上写了这样一些字符串:Al = “A”A2 = “ABA”A3 = “ABACABA”A4 = a ABACABADABACABA v• • • • • •你能找出其屮的规律并写所有的数列AN吗?输入格式仅有一个数:N W 26。

(完整word版)蓝桥杯练习系统题目汇总,推荐文档

(完整word版)蓝桥杯练习系统题目汇总,推荐文档

蓝桥杯练习系统题目汇总:入门训练1. Fibonacci数列问题描述Fibonacci数列的递推公式为:F n=F n-1+F n-2,其中F1=F2=1。

当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。

输入格式输入包含一个整数n。

输出格式输出一行,包含一个整数,表示F n除以10007的余数。

说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

样例输入10样例输出55样例输入22样例输出7704数据规模与约定1 <= n <= 1,000,000。

参考代码:c++1.#include<stdlib.h>2.#include<stdio.h>3.#define MOD 100074.#define MAXN 10000015.int n, i, F[MAXN];6.int main()7.{8.scanf("%d", &n);9.F[1] = 1;10.F[2] = 1;11.for(i = 3; i <= n; ++i)12.F[i] = (F[i-1] + F[i-2]) % MOD;13.printf("%d\n", F[n]);14.return0;15.}java:1.import java.util.Scanner;2.public class Main{3.public static void main(String[] args) {4.Scanner scanner = new Scanner(System.in) ;5.int num = scanner.nextInt() ;6.int[] a = new int[num+2] ;7.a[1] = a[2] = 1;8.if(num == 1) {9.a[num] = 1 ;10.}else if(num == 2) {11.a[num] = 1 ;12.}else{13.for(int i = 3; i <= num; i++) {14.a[i] = (a[i - 1] + a[i - 2]) % 10007 ;15.}16.}17.System.out.println(a[num]);18.}19.}2. 实数输出问题描述给定圆的半径r,求圆的面积。

第四届蓝桥答案

第四届蓝桥答案

第四届“蓝桥杯”选拔赛试题高职组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;}。

第四届蓝桥杯省赛高职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.标题:写日志写日志是程序的常见任务。

2013蓝桥杯试题及答案

2013蓝桥杯试题及答案

2013蓝桥杯试题及答案一、选择题1. 在C语言中,以下哪个关键字用于定义一个结构体?A. structB. unionC. enumD. typedef答案:A2. 在Java中,以下哪个是合法的类名?A. 2ClassB. classC. ClassD. Class_答案:C3. 在HTML中,用于插入图片的标签是:A. <img>B. <image>C. <picture>D. <photo>答案:A4. 在数据库设计中,实现表之间关系的是:A. 主键B. 外键C. 索引D. 视图答案:B5. 在Python中,以下哪个是正确的字符串格式化方法?A. %sB. .format()C. str()D. printf()答案:B二、填空题6. 在C++中,标准模板库(STL)中的_________容器提供了平均时间复杂度为O(1)的插入和删除操作。

答案:vector7. 在JavaScript中,用于定义一个函数的关键字是_________。

答案:function8. 在SQL中,用于查询数据的关键字是_________。

答案:SELECT9. 在CSS中,用于设置元素宽度的属性是_________。

答案:width10. 在操作系统中,进程和线程的主要区别在于_________。

答案:进程是资源分配的基本单位,线程是执行的基本单位。

三、简答题11. 请简述软件开发过程中的需求分析阶段的主要任务。

答案:需求分析阶段的主要任务是确定软件系统的功能和性能要求。

这包括与客户沟通以了解他们的需求,收集和分析这些需求,然后明确和文档化软件必须执行的功能。

此外,还包括确定系统的性能要求,如响应时间、并发用户数等。

12. 请描述在网络编程中,TCP和UDP协议的主要区别。

答案:TCP(传输控制协议)和UDP(用户数据报协议)是网络层的两种主要协议。

TCP提供面向连接、可靠的字节流服务,它确保数据包按顺序、无误差地传输,适用于需要可靠传输的应用,如网页浏览和文件传输。

第四届蓝桥杯校内选拔赛试题java组

第四届蓝桥杯校内选拔赛试题java组

第四届“蓝桥杯”全国软件专业人才设计与创业大赛校内选拔赛试题(Java组)第一部分:准备工作:1、在D:盘中建立一个以自己“学号+姓名”命名的考生文件夹。

如:学号:123456,姓名:张三,则考生文件夹为:123456张三2、答题时:(1)填空题的答案全部写在一个记事本(.txt)文件中,文件名为“tk_姓名的首字母”。

如:姓名:张三,则文件名为“tk_zs.txt”(2)编程题,每个小题一个源文件,每道题的源程序文件名为:“姓名的首字母+题号”。

如:姓名:张三,第1小题,源程序文件名为“zs1.java”3、答题结束时,请把填空题答案文件和所有的源程序文件复制到您的考生文件夹中,再把考生文件夹复制到F:\LQXB4中。

第二部分:试题一、填空题:(第空5分,共50分)1、素数问题输入一个正整数,判断它是否为素数。

素数就是该数只能被1和它本身整除,除1之外的正整数。

#include <stdio.h>#include <math.h> /* 程序中调用平方根函数sqrt,需包含math.h */void main( ){int number,i,k;printf("Please enter a positive integer:");scanf("%d",&number);k=(int)sqrt(number);for(i=2;【1】______________;i++)if(number%i==0) break;/* 如果number能被某个i整除,则number不是素数,提前结束循环 *//*若number是素数,i>k时for循环才结束,若number不是素数,i<=k时,就提前结束循环。

*/if(【2】_______________)printf("%d is a prime number.\n",number);elseprintf("%d isn't a prime number.\n",number);}运行情况1:Please enter a positive integer:77 is a prime number.运行情况2:Please enter a positive integer:2020 isn’t a prime number.2、下面程序段的执行结果是【3】______________3、圆周率我国古代数学家对圆周率方面的研究工作,成绩是突出的。

蓝桥杯校内选拨赛(2013年)

蓝桥杯校内选拨赛(2013年)

全国软件设计与开发大赛蓝桥杯校内选拨赛2013试卷一、填空题(每小题8分,共48分)1、如果int[] x = …已经指向一个整型数组,我们想把数组中的元素翻转(比如:1,2,3,4,5 变成:5,4,3,2,1),写了如下代码,请完善之:for(int i=0; i<x.length/2; i++){int t = x[i];x[i] = ______________;______________ = t;}2、冒泡排序仅仅在相邻两个元素间进行比较和交换。

下面的程序实现了对某个整型数组中的元素进行冒泡排序,它在保证逻辑正确的前提下,避免了冗余的比较。

请填写缺少的代码。

int[] targetArr = {3,22,11,5,400,99,20,22,5};for(int i=0; i<targetArr.length-1; i++){for(int j=0; j<______________; j++){if(targetArr[j]>targetArr[j+1]){int tmp = targetArr[j];targetArr[j] = targetArr[j+1];targetArr[j+1] = tmp;}}}3、一百个铜钱买了一百只鸡,其中公鸡一只5钱、母鸡一只3钱,小鸡一钱3只问一百只鸡中公鸡、母鸡、小鸡各多少?请补充缺少的代码。

for(int cock=0; cock<=100; cock++){for(int hen=0; hen<=100; hen++){int chicken = 100 - cock - hen;if(chicken % 3 != 0) ________________;if(_________________________)System.out.println("cock=" + cock + ",hen=" + hen + ",chicken=" + chicken);}}4、编写程序将2行3列的数组行列置换复制给3行2列的数组(即数组的转置)。

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

蓝桥杯专科组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语言中,指针是一种变量,它存储了另一个变量的内存地址。

蓝桥杯2013高职高专JAVA决赛试题

蓝桥杯2013高职高专JAVA决赛试题

一、标题:好好学习汤姆跟爷爷来中国旅游。

一天,他帮助中国的小朋友贴标语。

他负责贴的标语是分别写在四块红纸上的四个大字:“好、好、学、习”。

但是汤姆不认识汉字,他就想胡乱地贴成一行。

请你替小汤姆算一下,他这样乱贴,恰好贴对的概率是多少?答案是一个分数,请表示为两个整数比值的形式。

例如:1/3 或2/15 等。

如果能够约分,请输出约分后的结果。

注意:不要书写多余的空格。

请严格按照格式,通过浏览器提交答案。

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

二、标题:埃及分数古埃及曾经创造出灿烂的人类文明,他们的分数表示却很令人不解。

古埃及喜欢把一个分数分解为类似:1/a + 1/b 的格式。

这里,a 和b 必须是不同的两个整数,分子必须为1比如,2/15 一共有4 种不同的分解法(姑且称为埃及分解法):1/8 + 1/1201/9 + 1/451/10 + 1/301/12 + 1/20那么,2/45 一共有多少个不同的埃及分解呢(满足加法交换律的算同种分解)?请直接提交该整数(千万不要提交详细的分解式!)。

请严格按照要求,通过浏览器提交答案。

注意:只提交分解的种类数,不要写其它附加内容,比如:说明性的文字标题:金蝉素数考古发现某古墓石碑上刻着一个数字:13597,后研究发现:这是一个素数!并且,去掉首尾数字仍是素数!并且,最中间的数字也是素数!这样特征的数字还有哪些呢?通过以下程序的帮助可以轻松解决。

请仔细阅读代码,并填写划线部分缺失的代码。

public class A{static boolean isPrime(int n){if(n<=1) return false;for(int i=2; i*i<=n; i++){if(n%i==0) return false;}return true;}static void f(int[] x, int k){if(_____________________________){ // 填空位置if(isPrime(x[0]*10000 + x[1]*1000 + x[2]*100 + x[3]*10 + x[4]) &&isPrime(x[1]*100 + x[2]*10 + x[3]) &&isPrime(x[2]))System.out.println(""+x[0]+x[1]+x[2]+x[3]+x[4]);return;}for(int i=k; i<x.length; i++){{int tmp=x[k]; x[k]=x[i]; x[i]=tmp; }f(x,k+1);{int tmp=x[k]; x[k]=x[i]; x[i]=tmp; }}}static void test(){int[] x = {1,3,5,7,9};f(x,0);}public static void main(String[] args){test();}}请分析代码逻辑,并推测划线处的代码,通过网页提交。

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。

本科2013蓝桥杯JAVA A组

本科2013蓝桥杯JAVA   A组

2013年蓝桥杯预赛Java本科A组试题分类:算法学习2013-05-06 08:181728人阅读评论(0)收藏举报蓝桥杯2013年java本科A组预赛试题算法algorithm第四届“蓝桥杯”全国软件专业人才设计与创业大赛选拔赛Java本科A组考生须知:l 考试开始后,选手首先下载题目到本机不被还原的盘符,并使用考场现场公布的解压密码解压试题。

l 考试时间为9:00-13:00,共4个小时。

13点整时间截止时,将无法提交答案。

选手因考试结束不能提交答案的,责任由选手自负。

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

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

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

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

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

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

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

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

求解方式不限。

不要求源代码。

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

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

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

把代码填空的答案(仅填空处的答案,不包括题面已存在的代码)直接通过网页提交即可,不要书写多余的内容,比如:注释或说明文字。

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

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

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

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

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

调试通过后,拷贝提交。

蓝桥杯VIP练习题(DOC)

蓝桥杯VIP练习题(DOC)

1.基础练习阶乘计算时间限制:1.0s 内存限制:512.0MB问题描述输入一个正整数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样例输出36288002.基础练习高精度加法时间限制:1.0s 内存限制:512.0MB问题描述输入两个整数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。

然后计算A[1]与B[1]相加,这时还应将低位进上来的值r也加起来,即C[1]应该是A[1]、B[1]和r三个数的和.如果又有进位产生,则仍可将新的进位存入到r中,和的个位存到C[1]中。

依此类推,即可求出C的所有位。

最后将C输出即可。

输入格式输入包括两行,第一行为一个非负整数a,第二行为一个非负整数b。

两个整数都不超过100位,两数的最高位都不是0。

输出格式输出一行,表示a + b的值。

样例输入201001222010012212345678902010012220100122样例输出201001222030112334546680123. 基础练习Huffuman树时间限制:1.0s 内存限制:512.0MB问题描述Huffman树在编码中有着广泛的应用。

第四届蓝桥杯真题及答案

第四届蓝桥杯真题及答案

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

2013年第四届蓝桥杯软件类省赛真题_JAVA软件开发本科A组

2013年第四届蓝桥杯软件类省赛真题_JAVA软件开发本科A组

char c = x.charAt(0);
if(c>='0' && c<='9') return new int[] {c-'0',1};
int[] v1 = evaluate(x.substring(1));
int[] v2 = __________________________________________; //填空位置
注意:主类的名字必须是:Main,否则按无效代码处理。
JAVA软件开发本科A组
8_题目描述
标题:带分数
100 可以表示为带分数的形式:100 = 3 + 69258 / 714
请根据这些信息计算:赔钱的那个价牌正确的价格应该是多少?
答案是一个4位的整数,请通过浏览器直接提交该数字。
注意:不要提交解答过程,或其它辅助说明类的内容。
JAVA软件开发本科A组
5_题目描述
标题:三部排序
一般的排序有许多经典算法,如快速排序、希尔排序等。
但实际应用时,经常会或多或少有一些特殊的要求。我们没必要套用那些经典算法,可以根据实际情况建立更好的解法。
若 2^n - 1 是素数,则 2^(n-1) * (2^n - 1) 是完全数。
其中 ^ 表示“乘方”运算,乘方的优先级比四则运算高,例如:2^3 = 8, 2 * 2^3 = 16, 2^3-1 = 7
但人们很快发现,当n很大时,判定一个大数是否为素数到今天也依然是个难题。
2^11213 - 1 这个数字已经很大(有3000多位),请你编程求出这个素数的十进制表示的最后100位。
答案是一个长度为100的数字串,请通过浏览器直接提交该数字。

2013年蓝桥杯软件大赛预赛Java高职专组 试题

2013年蓝桥杯软件大赛预赛Java高职专组 试题

第四届“蓝桥杯”全国软件专业人才设计与创业大赛选拔赛Java高职高专组考生须知:●考试开始后,选手首先下载题目到本机不被还原的盘符,并使用考场现场公布的解压密码解压试题。

●考试时间为9:00-13:00,共4个小时。

13点整时间截止时,将无法提交答案。

选手因考试结束不能提交答案的,责任由选手自负。

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

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

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

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

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

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

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

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

求解方式不限。

不要求源代码。

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

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

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

把代码填空的答案(仅填空处的答案,不包括题面已存在的代码)直接通过网页提交即可,不要书写多余的内容,比如:注释或说明文字。

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

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

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

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

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

调试通过后,拷贝提交。

注意:不要使用package语句。

源程序中只能出现JDK1.5中允许的语法或调用。

不能使用1.6或更高版本的特性。

注意:选手代码的主类名必须为:Main,否则会被判为无效代码。

蓝桥杯预赛题目与答案

蓝桥杯预赛题目与答案

蓝桥杯预赛题目1第一题标题:啤酒和饮料啤酒每罐2.3元,饮料每罐1.9元。

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

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

注意:答案是一个整数。

请通过浏览器提交答案。

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

#include <stdio.h>void main() { int pj,yl; //啤酒与饮料double sum=82.3; for(pj=0; pj<=20; pj++) { yl=(int)((sum-pj*2.3)/1.9); if(pj*2.3+yl*1.9==sum) { printf("pj=%d,yl=%d\n",pj,yl); //pj=11 yl=30 } } }第二题标题:切面条一根高筋拉面,中间切一刀,可以得到2根面条。

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

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

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

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

#include <stdio.h> void main(){ int qie(int n); int g(int n); int sum=0; //面条总数int n=10; sum=qie(n); printf("%d\n",sum); }int qie(int n) //折叠n次以后,切一刀后的面条数{ int g(int n); if(n==1) { return 3; } else { return g(n-1)+ qie(n-1); //g(n)是有所有面条都有折痕一边的面条数} }int g(int n) { if(n==1) { return 2; } else { return g(n-1)*2; } }-----1025第三题标题:李白打酒话说大诗人李白,一生好饮。

蓝桥杯练习系统题目汇总(含参考答案)

蓝桥杯练习系统题目汇总(含参考答案)

蓝桥杯练习系统题目汇总:入门训练1. Fibonacci数列问题描述Fibonacci数列的递推公式为:F n=F n-1+F n-2,其中F1=F2=1。

当n比较大时,F n也非常大,现在我们想知道,F n除以10007的余数是多少。

输入格式输入包含一个整数n。

输出格式输出一行,包含一个整数,表示F n除以10007的余数。

说明:在本题中,答案是要求F n除以10007的余数,因此我们只要能算出这个余数即可,而不需要先计算出F n的准确值,再将计算的结果除以10007取余数,直接计算余数往往比先算出原数再取余简单。

样例输入10样例输出55样例输入22样例输出7704数据规模与约定1 <= n <= 1,000,000。

参考代码:c++1.#include<stdlib.h>2.#include<stdio.h>3.#define MOD 100074.#define MAXN 10000015.int n, i, F[MAXN];6.int main()7.{8.scanf("%d", &n);9.F[1] = 1;10.F[2] = 1;11.for(i = 3; i <= n; ++i)12.F[i] = (F[i-1] + F[i-2]) % MOD;13.printf("%d\n", F[n]);14.return0;15.}java:1.import java.util.Scanner;2.public class Main{3.public static void main(String[] args) {4.Scanner scanner = new Scanner(System.in) ;5.int num = scanner.nextInt() ;6.int[] a = new int[num+2] ;7.a[1] = a[2] = 1;8.if(num == 1) {9.a[num] = 1 ;10.}else if(num == 2) {11.a[num] = 1 ;12.}else{13.for(int i = 3; i <= num; i++) {14.a[i] = (a[i - 1] + a[i - 2]) % 10007 ;15.}16.}17.System.out.println(a[num]);18.}19.}2. 实数输出问题描述给定圆的半径r,求圆的面积。

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

第一题:《K尾相等数》
描述输入一个自然数K(K>1),如果存在自然数M和N(M>N),使得K^M和K^N 均大于等于1000,且他们的末尾三位数相等,则称M和N是一对“K尾相等数”。

下面请编程求出M+N最小的K尾相等数。

输入第一行包含一个正整数T,T<10000,表示有T组数据;
随后有N行,每行包括一个整数K(K<2*10^10);输出对于输入的每个整数K,输出对应的M+N的最小值;样例输入 1
2 样例输出 120
测试数据:
25
125
1000
1234
111111
1000003
123454321
测试数据结果:
7
6
3
56
52
102
27
第四题:《Redraiment猜想》
描述
redraiment在家极度无聊,于是找了张纸开始统计素数的个数。

设函数f(n)返回从1->n之间素数的个数。

redraiment发现:
f(1) = 0
f(10) = 4
f(100) = 25
...
满足g(m) = 17 * m2 / 3 - 22 * m / 3 + 5 / 3
其中m为n的位数。

他很激动,是不是自己发现了素数分布的规律了!
请你设计一个程序,求出1->n范围内素数的个数,来验证redraiment是不是正确的,也许还可以得诺贝尔奖呢。

^_^
输入
输入包括多组数据。

每组数据仅有一个整数n (1≤n≤100000000)。

输入以0结束
输出
对于每组数据输入,输出一行,为1->n(包括n)之间的素数的个数。

样例输入
1
10
65
100
样例输出
4
18
25
第七题:马的走法
目描述
在一个4*5的棋盘上,马的初始位置坐标(纵横)位置由键盘输入,求马能返回初始位置的所有不同走法的总数(马走过的位置不能重复,马走“日”字)。

如果马的初始位置坐标超过棋盘的边界,则输出ERROR。

例如初始位置为4 6,则输出ERROR。

输入
输入数据只有一行,有两个用空格分开的整数,表示马所在的初始位置坐标。

首行首列位置编号为(1 1)。

输出
输出一行,只有一个整数,表示马能返回初始位置的所有不同走法的总数。

如果输入的马的初始位置超出棋盘边界,则输出ERROR。

示例输入
2 2
示例输出
4596。

相关文档
最新文档