蓝桥杯java模拟试题
第六届蓝桥杯大赛个人赛省赛(软件类)Java 大学B组试题
第六届蓝桥杯大赛个人赛省赛(软件类)Java 大学B组试题三角形面积如图1所示。
图中的所有小方格面积都是1。
那么,图中的三角形面积应该是多少呢?请填写三角形的面积。
不要填写任何多余内容或说明性文字。
立方变自身观察下面的现象,某个数字的立方,按位累加仍然等于自身。
1^3 = 18^3 = 512 5+1+2=817^3 = 4913 4+9+1+3=17...请你计算包括1,8,17在内,符合这个性质的正整数一共有多少个?请填写该数字,不要填写任何多余的内容或说明性的文字。
三羊献瑞观察下面的加法算式:祥瑞生辉+ 三羊献瑞-------------------三羊生瑞气(如果有对齐问题,可以参看【图1.jpg】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。
请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内容。
循环节长度两个整数做除法,有时会产生循环小数,其循环部分称为:循环节。
比如,11/13=6=>0.846153846153..... 其循环节为[846153] 共有6位。
下面的方法,可以求出循环节的长度。
请仔细阅读代码,并填写划线部分缺少的代码。
public static int f(int n, int m){n = n % m;V ector v = new V ector();for(;;){v.add(n);n *= 10;n = n % m;if(n==0) return 0;if(v.indexOf(n)>=0)_______System.out.println(v.indexOf(n))__________________________ ; //填空}}注意,只能填写缺少的部分,不要重复抄写已有代码。
不要填写任何多余的文字。
九数组分数1,2,3...9 这九个数字组成一个分数,其值恰好为1/3,如何组法?下面的程序实现了该功能,请填写划线部分缺失的代码。
蓝桥杯java模拟赛试题及答案
蓝桥杯java模拟赛试题及答案蓝桥杯Java模拟赛试题及答案一、选择题(每题2分,共20分)1. Java中,下列哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A2. 在Java中,哪个关键字用于定义一个方法?A. functionB. methodC. procedureD. action答案:B3. 下列哪个是Java中的合法标识符?A. 2variableB. variable2C. variable#2D. variable!答案:B4. Java中,哪个关键字用于实现接口?A. implementsB. extendsC. includesD. contains答案:A5. 在Java中,哪个关键字用于定义一个包?A. packageB. groupC. bundleD. container答案:A6. Java中,下列哪个是正确的数组声明方式?A. int[] array;B. array int[];C. int array[];D. array[] int;答案:A7. 在Java中,哪个关键字用于定义一个构造方法?A. constructorB. initializerC. setupD. method答案:D8. Java中,哪个关键字用于实现多态?A. overrideB. extendsC. implementsD. abstract答案:A9. 下列哪个是Java中的引用数据类型?A. intB. charC. StringD. boolean答案:C10. 在Java中,哪个关键字用于抛出异常?A. throwB. throwsC. exceptionD. error答案:B二、简答题(每题10分,共20分)1. 简述Java中异常处理的机制。
答案:Java中的异常处理机制主要通过try、catch、finally和throw关键字来实现。
蓝桥杯试题及答案
蓝桥杯试题及答案一、选择题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)比使用数组更有效,并解释原因。
第四届蓝桥杯JAVA试题
1 + -------------
1
1 + ---------
1 + ...
我做起振兴
做起振兴中
起振兴中华
比赛时,先站在左上角的写着“从”字的格子里,可以横向或纵向跳到相邻的格子里,但不能跳到对角的格子或其它位置。一直要跳到“华”字结束。
要求跳过的路线刚好构成“从我做起振兴中华”这句话。
请你帮助小明算一算他一共有多少种可能的跳跃路线呢?
假设 a b c d e 代表1~9不同的5个数字(注意是各不相同的数字,且不含0)
能满足形如: ab * cde = adb * ce 这样的算式一共有多少种呢?
请你利用计算机的优势寻找所有的可能,并回答不同算式的种类数。
满足乘法交换律的算式计为不同的种类,所以答案肯定是个偶数。
}
}
}
如果给定数组:
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在中部。注意问题的特点是:负数区域和正数区域内并不要求有序。可以利用这个特点通过1次线性扫描就结束战斗!!
以下的程序实现了该目标。
static void sort(int[] x)
{
答案直接通过浏览器提交。
注意:只提交一个表示最终统计种类数的数字,不要提交解答过程或其它多余的内容。
蓝桥杯本科java试题及答案
蓝桥杯本科java试题及答案蓝桥杯本科Java试题及答案一、选择题(每题2分,共10分)1. 在Java中,以下哪个关键字用于定义类?A. classB. functionC. interfaceD. struct答案:A2. 下列哪个是Java中的合法标识符?A. 2classB. class@2C. _classD. class-class答案:C3. Java中的哪个类提供了一种计算时间和日期的方法?A. DateB. TimeC. CalendarD. Clock答案:C4. 在Java中,以下哪个是正确的条件表达式?A. if (x = 5)B. if (x == 5)C. if (x : 5)D. if (x / 5)答案:B5. Java中的异常处理机制是通过哪两个关键字实现的?A. try-catchB. if-elseC. switch-caseD. for-loop答案:A二、填空题(每题3分,共15分)1. Java中的所有类都是继承自ng.________类。
答案:Object2. 在Java中,________关键字用于实现方法的多态。
答案:override3. Java中的集合框架主要分为两大类:________和________。
答案:List、Set4. Java中的线程同步机制是通过________关键字实现的。
答案:synchronized5. Java中,要实现网络通信,可以使用________类。
答案:Socket三、简答题(共20分)1. 请简述Java中接口和抽象类的区别。
(10分)答案:接口定义了一组可供实现的抽象方法,它不包含任何实现细节,一个类可以实现多个接口。
抽象类可以包含抽象方法和具体方法,它提供了一个通用的模板,一个类只能继承一个抽象类。
接口主要用于定义一个或多个类必须遵守的规则,而抽象类则更侧重于代码的共享和重用。
2. 请解释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、圆周率我国古代数学家对圆周率方面的研究工作,成绩是突出的。
第三届蓝桥杯(高职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日),小明和他的叔叔还有小伙伴们一起去植树。
蓝桥杯java试题及答案
/*import java.util.scanner;
import java.util.vector;
public class question1 {
public static long count=0;
private void fullpermutation(vectorcharactersourse, vectorcharacter result) {
*假设用户输入的串长度不超过200个字符。
*/
public class simplestring {
public static void main(string args[]){
string str=;
str=(new scanner(system.in)).nextline();
string []str1=str.split([ ]+);
每个单词间由1个或多个空格分隔。
假设用户输入的串长度不超过200个字符。
package question1_9;
import java.util.scanner;
import java.util.vector;
public class question2 {
public static void main(string[] args) {
index++;
}
index++;
}
for (int i = 0; i vector.size(); i++) {
system.out.print(vector.elementat(i));
}
system.out.println();
} catch (arrayindexoutofboundsexception e) {
蓝桥杯java试题及答案
蓝桥杯java试题及答案蓝桥杯是中国著名的计算机科学与技术竞赛,旨在选拔和培养优秀的计算机人才,尤其是高中和大学的学生。
Java是蓝桥杯竞赛中常见的编程语言之一。
本文将介绍一些常见的蓝桥杯Java试题,并提供相应的答案。
一、编程题1. 题目描述:请编写一个Java程序,实现将一个整数数组中的奇数和偶数分别放在两个新数组中,并按照从小到大的顺序排列。
解题思路:可以使用两个ArrayList来保存奇数和偶数,先遍历原数组,将奇数放入奇数数组,将偶数放入偶数数组,然后分别对两个数组进行升序排序。
代码实现:```javaimport java.util.ArrayList;import java.util.Arrays;import java.util.Collections;public class SplitArray {public static void main(String[] args) {int[] arr = {1, 2, 3, 4, 5, 6};ArrayList<Integer> oddList = new ArrayList<>(); ArrayList<Integer> evenList = new ArrayList<>(); for (int num : arr) {if (num % 2 == 0) {evenList.add(num);} else {oddList.add(num);}}Collections.sort(oddList);Collections.sort(evenList);System.out.println("奇数数组:" + oddList);System.out.println("偶数数组:" + evenList);}}```答案分析:该程序首先定义了一个整型数组 `arr`,然后创建两个ArrayList:`oddList`用于保存奇数,`evenList`用于保存偶数。
蓝桥杯Java试题汇总-共48页
1. 历届试题核桃的数量问题描述小张是软件项目经理,他带领3个开发组。
工期紧,今天都在加班呢。
为鼓舞士气,小张打算给每个组发一袋核桃(据传言能补脑)。
他的要求是:1. 各组的核桃数量必须相同2. 各组内必须能平分核桃(当然是不能打碎的)3. 尽量提供满足1,2条件的最小数量(节约闹革命嘛)输入格式输入包含三个正整数a, b, c,表示每个组正在加班的人数,用空格分开(a,b,c<30)输出格式输出一个正整数,表示每袋核桃的数量。
样例输入12 4 5样例输出120样例输入23 1 1 样例输出2 3JAVA源代码1import java.util.Scanner;2public class Main {34public static void main(String[]args){5 Scanner sc=new Scanner(System.in);6int a=sc.nextInt();7int b=sc.nextInt();8int c=sc.nextInt();9int i;10for(i=1;;i++){11if(i%a==0&&i%b==0&&i%c==0)1213break;14 }15 System.out.println(i);16}}2.基础练习Sine之舞时间限制:1.0s 内存限制:512.0MB问题描述最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功。
所以他准备和奶牛们做一个“Sine之舞”的游戏,寓教于乐,提高奶牛们的计算能力。
不妨设An=sin(1–sin(2+sin(3–sin(4+...sin(n))...)Sn=(...(A1+n)A2+n-1)A3+...+2)An+1FJ想让奶牛们计算Sn的值,请你帮助FJ打印出Sn的完整表达式,以方便奶牛们做题。
输入格式仅有一个数:N<201。
【JAVA】第十一届蓝桥杯省模拟赛答案(本科组)
【JAVA】第⼗⼀届蓝桥杯省模拟赛答案(本科组)⽬录本辣鸡持续垃圾,⼀到六题特别简单,做到第七题有点绕,做到第⼋、九、⼗题就不想做了,晚上补缺失的代码和题解。
⼀、⽆向连通图包含多少条边问题描述 ⼀个包含有2019个结点的⽆向连通图,最少包含多少条边?答案提交 这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
题解⼀个有n个顶点的⽆向连通图最多有n(n-1)/2条边,最少有n-1条边。
答案2018⼆、字母重新排列问题描述 将LANQIAO中的字母重新排列,可以得到不同的单词,如LANQIAO、AAILNOQ等,注意这7个字母都要被⽤上,单词不⼀定有具体的英⽂意义。
请问,总共能排列如多少个不同的单词。
答案提交 这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
题解本题看似是全排列,实际不是,因为有两个A,解题算式:A77/A22 (这⾥都是排列的计算公式,参见Anm,n为下标,m为上标)也就是(7x6x5x4x3x2x1)/2x1=2520答案2520三、在计算机存储中,12.5MB是多少字节?问题描述 在计算机存储中,12.5MB是多少字节?答案提交 这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
题解这是真的送分题12.5*1024(转换成KB)*1024(转换成B)=13,107,200答案13107200四、合法括号序列 由1对括号,可以组成⼀种合法括号序列:()。
由2对括号,可以组成两种合法括号序列:()()、(())。
由4对括号组成的合法括号序列⼀共有多少种?答案提交 这是⼀道结果填空的题,你只需要算出结果后提交即可。
本题的结果为⼀个整数,在提交答案时只填写这个整数,填写多余的内容将⽆法得分。
蓝桥杯java试题及答案
蓝桥杯java试题及答案【篇一:蓝桥杯java历年真题(共129道题目及答案)】这样的,如果给定n个不同字符,将这n个字符全排列,最终的结果将会是n!种。
如:给定a、b、c三个不同的字符,则结果为:abc^ acb、bac、bca、cab> cba—共3!=3*2=6 种情况。
package questiord_9;〃有问题。
-广import java.util.scan ner;import java.util.vector;public class questiord {public static long count=0;private void fullpermutation(vectorcharactersourse, vectorcharacter result) {if(sourse.size()==0){for (int i = 0; i result.size(); i++) {system.out. print(result.elementat(i));}system.out. print(\n);count++;return;}for (int i = 0; i sourse.size(); i++) { vectorcharactertsourse=new vectorcharacter(sourse); vectorcharactertresult=new vectorcharacter( result); tresult.add(sourse.elementat(i)); tsourse.remove(i);new question1().fullpermutation(tsourse, tresult);}}public static void main(stringQ args) { scanner seanner=new scanner(system」n); int n=scanner.nextint();vectorcharacter sourse=new vectorcharacter(); vectorcharacter result=new vectorcharacter();for (int i = 0; i n; i++) {sourse.add((char)(a-i-i));}new questiord().fullpermutation(sourse, result); system.out. pri ntln (questionl.count);}}*/方法二import java.util.arraylist;import java.util.iterator;import java.util」inkedhashset;import java.util.list;import java.util.sca nn er;import java.util.set;public class demo03 {II去掉重复元素,放入lispublic static void removeduplicate(string s,setcharacter lis){ for(char x:s.tochararray()){ lis.add(x);}}II为方便操作将sets转lispublic static void convert(listcharacter lis,setcharactersets){ iteratorcharacter iter = sets.iterator();while(iter.hasnext()){ lis.add(iter.next());II检测符合条件的元素组合public static void check(setcharacter sets){ listcharacter lis = new arraylistcharacter(); convert(lis,sets); II为方便操作将sets 转lis stringbuffer sb = new stringbuffer();for(int i=0;ilis.size()-2;i++){for(int j=i+1 ;j+1 lis.size();j++){// 向后添加两位,所以j+1 lis.size() for(int k=j+1;klis.size();k++){sb.appe nd(lis.get(i)); sb.append(lis.get(j)); sb.append(lis.get(k)); system.out.println(sb); II输出组合sb.setlength(O); II清空}}}}public static void main(string[] args){scanner scan = new scanner(system.in); system.out.println(输入串(不夭于30个李符)。
蓝桥杯模拟试题java本科组试题及答案
2011 模拟 java 本科1.代码设计(满分5分) 625这个数字很特别,625的平方等于390625,刚好其末3位是625本身。
除了625,还有其它的3位数有这个特征吗?位数有这个特征吗?请编写程序,寻找所有这样的3位数:它的平方的末3位是这个数字本身。
数字本身。
输出结果中,从小到大,每个找到的数字占一行。
比如那个625就输出为:625public static void main(String[] args) {int temp = 0;for (int i = 100; i <= 999; ++i){temp = i*i;temp %= 1000;if (temp == i)System.out .println(i); }}2.代码设计(满分11分) 考虑方程式:a^3 + b^3 = c^3 + d^3其中:“^”表示乘方。
a 、b 、c 、d 是互不相同的小于30的正整数.这个方程有很多解。
比如:a = 1,b=12,c=9,d=10 就是一个解。
因为:1的立方加12的立方等于1729,而9的立方加10的立方也等于1729.当然,a=12,b=1,c=9,d=10 显然也是解。
显然也是解。
如果不计abcd 交换次序的情况,这算同一个解。
你的任务是:找到所有小于30的不同的正整数解。
把a b c d 按从小到大排列,用逗号分隔,每个解占用1行。
比如,刚才的解输出为:1,9,10,12 不同解间的顺序可以不考虑。
不同解间的顺序可以不考虑。
public static void main(String[] args) {int []arr = newint [31]; for (int i = 1; i <= 30; ++i){arr[i] = (int )i*i*i;}for (int a = 1 ; a <= 27; ++a){for (int b = a+1 ; b <= 28; ++b){for (int c = b+1 ; c <= 29; ++c){ for (int d = c+1 ; d <= 30; ++d){ if ((arr[a] + arr[d])==(arr[b] + arr[c]))System.out .println(a + .println(a + ",""," + b + "," + c + + c + ",""," + d);}}}}}3.代码设计(满分18分) 整数的分划问题。
蓝桥杯高职java试题及部分参考答案
2019年选拔赛 java 高职考生须知:考试时间为4小时。
本试卷包含两种题型:“代码填空”与“程序设计”。
总计100分。
其中代码填空:3+3+4+6+7+9+10 = 42 分程序设计:14+17+27 = 58分填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不超过一条语句(即不能出现分号)。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。
考生的程序只有能运行出正确结果的时候才有机会得分。
注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
对每个题目,要求考生把所有类写在一个文件中。
调试好后,存入与考生文件夹下对应题号的“解答.txt”中即可。
相关的工程文件不要拷入。
请不要使用package语句。
另外,源程序中只能出现JDK1.5中允许的语法或调用。
不能使用1.6或更高版本。
1.代码填空(满分3分)计算蔬菜总价为了丰富群众菜篮子,平抑菜价,相关部分组织了蔬菜的调运。
今某箱中有多个品种的蔬菜。
蔬菜的单价(元/公斤)存放在price数组中,蔬菜的重量(公斤)存放在weight数组中。
下面的代码计算该箱蔬菜的总价,试完善之。
把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可。
public static double getTotal(double[] price, double[] weight)double x = 0;for(int i=0; i<price.length; i++)____________________;return x;2.代码填空(满分3分)计算行程低碳生活,有氧运动。
骑自行车出行是个好主意。
小明为自己的自行车装了个计数器,可以计算出轮子转动的圈数。
蓝桥杯java习题
1.黄金分割数0.618黄金分割数0.618与美学有重要的关系。
舞台上报幕员所站的位置大约就是舞台宽度的0.618处,墙上的画像一般也挂在房间高度的0.618处,甚至股票的波动据说也能找到0.618的影子....黄金分割数是个无理数,也就是无法表示为两个整数的比值。
0.618只是它的近似值,其真值可以通过对5开方减去1再除以2来获得,我们取它的一个较精确的近似值:0.618034有趣的是,一些简单的数列中也会包含这个无理数,这很令数学家震惊!1 34 7 11 18 29 47 .... 称为“鲁卡斯队列”。
它后面的每一个项都是前边两项的和。
如果观察前后两项的比值,即:1/3,3/4,4/7,7/11,11/18... 会发现它越来越接近于黄金分割数!你的任务就是计算出从哪一项开始,这个比值四舍五入后已经达到了与0.618034一致的精度。
请写出该比值。
格式是:分子/分母。
比如:29/47[java]1.public static void main(String[] args)2.{3.double x = 1;4.double y = 3;5.double res = x / y * 1000000;6.while (618034 != new BigDecimal(String.valueOf(res)).setScale(0, BigDecimal.ROUND_HALF_UP).intValue())//调用BigDecimal四舍五入7. {8.double temp = x + y;9. x = y;10. y = temp;11. res = x / y * 1000000;12. }13. System.out.println((int) x + "/" + (int) y);14.}2.海盗拼酒有一群海盗(不多于20人),在船上比拼酒量。
过程如下:打开一瓶酒,所有在场的人平分喝下,有几个人倒下了。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本试卷包含两种题型:“代码填空”与“程序设计”。
填空题要求参赛选手在弄清给定代码工作原理的基础上填写缺失的部分,使得程序逻辑正确、完整。
所填写的代码不多于一条语句(即不能出现分号)。
编程题要求选手设计的程序对于给定的输入能给出正确的输出结果。
注意:在评卷时使用的输入数据与试卷中给出的实例数据可能是不同的。
选手的程序必须是通用的,不能只对试卷中给定的数据有效。
1.代码填空(满分3分)以下程序打印出0~9的数字,请补充缺少的代码。
public class MyTest{public static void f(int begin, int end){__________________;System.out.println(begin);f(begin+1, end);}public static void main(String[] args){f(0,9);}}if(begin>end) return;//相当于退出循环的条件。
return 无返回值根据void2.代码填空(满分4分)如果要把两个整型变量a、b的值交换,一般要采用一个中间变量做过渡,但也可以在不借助任何其它变量的情况下完成。
试填写缺失的代码。
a = a ^ b;b = _________;a = _________;a^b a^b3.代码填空(满分3分)许多人都曾经玩过“拍七”游戏。
规则是:大家依次从1开始顺序数数,数到含有7或7的倍数的要拍手或其它规定的方式表示越过(比如:7,14,17,71等都不能数出),下一人继续数下面的数字。
违反规则者受罚。
下面的程序模拟这个过程,拍7的情况输出“*”,请完善之。
for(int i=1; i<100; i++){if(i % 7 == 0)System.out.println("*");else if(___________________)System.out.println("*");elseSystem.out.println(i);}(i-7)%10==0||i/10==7 // i/10==7||i%10==74.代码填空(满分5分)下面的静态方法的目的是求出某个日期是该年度的第几天。
试完善之。
如果传入:year=1980,month=1, day=1则返回 1如果传入:year=1980,month=2, day=1则返回32public static int getDayOfYear(int year, int month, int day){int [][]days=_____________________;int flag =(year%4==0 && year%100!=0) || year%400 == 0 ? 1 : 0;int sum = day ;for(int i=0;i<month;i++) {sum += days[flag][i];}return sum;}{{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,29,31,30,31,30,31,31,30,31 ,30,31}}5.代码填空(满分2分)下列方法的目的是,找出1~n之间所有的平方数。
试补全缺失的代码。
当n=10时,输出结果是:1 4 9当n=100时,输出结果是:1 4 9 16 25 36 49 64 81public static void showSqure(int n){for(int i=0; i<n; i++){for(int j=1; j<=i; j++){if(i==_____________) System.out.print(i + " ");}}System.out.println();}j*j6.代码填空(满分9分)(a+b)的n次幂的展开式中各项的系数很有规律,对于n=2,3,4时分别是:1 2 1,1 3 3 1,1 4 6 4 1。
这些系数构成了著名的杨辉三角形:11 11 2 11 3 3 11 4 6 4 11 5 10 10 5 1下列的程序给出了计算第m层的第n个系数的计算方法,试完善之(m,n都从0算起)。
public static int f(int m, int n){if(m==0) return 1;if(n==0 || n==m) return 1;return __________f(m-1,n-1)+f(m-1,n)________________;}f(m-1, n-1)+f(m-1, n)7.代码填空(满分4分)下面的代码将数组中的元素的位置颠倒过来:比如:原来的元素是 [1,2,3]则颠倒后变为:[3,2,1]public static void reverse(int[] arrs){for (int i = 0, j = arrs.length - 1; i <____j_____ ; i++, j--){int temp=arrs[i];arrs[i]=arrs[j];arrs[j]=temp;}}j8.程序设计(满分15分)从键盘输入一个整数(1~20)则以该数字为矩阵的大小,把1,2,3…n*n 的数字按照顺时针螺旋的形式填入其中。
例如:输入数字2,则程序输出:1 24 3输入数字3,则程序输出:1 2 38 9 47 6 5输入数字4,则程序输出:1 2 3 412 13 14 511 16 15 610 9 8 7import java.io.*;import java.util.Scanner;public class MyTest{private static int[][] store=new int[101][101];public static void f(int row,int length,int start){int i;for(i=0;i<length;i++){store[row][row+i]=start;start++;}for(i=1;i<length;i++){store[row+i][row+length-1]=start;start++;}for(i=length-2;i>=0;i--){store[row+length-1][row+i]=start;start++;}for(i=length-2;i>0;i--){store[row+i][row]=start;start++;}return;//若length==1或==2,结束循环。
f(row+1, length-2, start);//开始另一次循环。
public static void print(int[][] store,int n){for(int i=1;i<=n;i++){for(int j=1;j<=n;j++)System.out.printf("%4d",store[i][j]);System.out.println();}}public static void main(String[] args) throws IOException {Scanner br=new Scanner(System.in);String str=br.nextLine();int n=Integer.parseInt(str);f(1,n,1);print(store, n);}}9.程序设计(满分9分)从键盘输入一个日期,格式为yyyy-M-d要求计算该日期与1949年10月1日距离多少天例如:用户输入了:1949-10-2程序输出:1用户输入了:1949-11-1程序输出:31import java.io.*;import java.util.Scanner;public class MyTest{public static int getDays(int year,int month,int day){inttemp[][]={{31,28,31,30,31,30,31,31,30,31,30,31},{31,29,31,30,31,30,31,31,30, 31,30,31}};year=((year%4==0&&year%100!=0)||year%400==0)?1:0;for(int i=0;i<month-1;i++)day+=temp[year][i];return day;}public static int getDays(int year){return ((year%4==0&&year%100!=0)||year%400==0)?366:365;}public static void main(String[] args) throws IOException{Scanner br=new Scanner(System.in);String str=br.nextLine().trim();int n=str.indexOf('-');int m=stIndexOf('-');int year=Integer.parseInt(str.substring(0,n));int month=Integer.parseInt(str.substring(n+1,m));int day=Integer.parseInt(str.substring(m+1));int sum=0;if(year<1949){for(;year<1949;year++){sum+=getDays(year);}sum+=getDays(1949,10,1);sum-=getDays(year,month,day);}else if(year==1949){sum=Math.abs(getDays(year,month,day)-getDays(1949,10,1));}else{for(int i=1949;i<year;i++){sum+=getDays(year);}sum+=getDays(year,month,day);sum-=getDays(1949,10,1);}System.out.println(sum);}}10.程序设计(满分20分)任意一个5位数,比如:34256,把它的各位数字打乱,重新排列,可以得到一个最大的数:65432,一个最小的数23456。