JavaSE笔试程序题_第1页
JavaSE笔试程序题_第2页
JavaSE笔试程序题_第3页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、JavaSE 笔试程序题 ( 20180307 )1 、 写出一个 Singleton 来, Singleton 模式主要作用是保证在 Java 应用程序中,一个类 Class 只 有一个实例存在。private static SingletonClassl singLetonCLass = newSingletonClassl();private SingletonClassl()public static SingletonClassl getlnstance() returnsingLetonCLass;2、打印出 99 乘法表。public static void main(Strin

2、g args) int i;int j;for(i=0;i<10;i+) for(j=l;j<=i;j+) System.out. print (j+ , *"+i+ , = "+i*j);Sys tern. out. print ln();3、随机生成 1000 个数,并进行倒序排序。public static void main(String args) int array = newint1000; for(int i=0;i<1000;i+) arrayi=(int)(Math.randoffl()*10000);Sys tern. out. pr

3、int ln(arrayi);for(int i=0;i<array.length-l;i+)(for(int j=0;j<amay.length-i-l;j+) if(arrayj>arrayj+l) int temp = arrayj;amayj = arrayj+l;arrayj+1 = temp;for(int i=0;i<1000;i+) (Sys tern. out. print ln(arrayi);4、计算斐波那契数列第几位上的数字,定义一个函数 f(n), n 为位数,函数返回值为该位 数上 的数值。(斐波那契数列的例子 1、1、2、3、5、8、13)

4、汉诺塔问题描述: A、B、C三个 桌子,其中 A 桌子上放了几个大小不同的盘子,盘子的 排列顺序是:从上到下,依次从小 到大递增;现在要求把这些盘子从 A 桌子上移动到 C 桌子上,盘子移动时有一点要求:每 次移动必须保证三张桌子上大盘子在下,小盘子在上;打印移动次序。5、一个数如果恰好等于它的因子之和,这个数就成为" 完数。例如 6=1+2+3 编程:找出1000 以内的所有完数。for(int i=l;i<1000;i+) ( int y=0;for(int j=l;j<i;j+) if(i%j=0) y+=j; if(y=i)( System.out.print(i

5、+String.vatueO/('t'); 6、编写一段代码,将字符串 "abcdefg ”倒序输出为 gfedcba String str = "abcdefg"String sortedStr=reverseSort(str);System.out.printIn(sortedStr); (public static String reverseSort(String str)(String str2=null;for(int i=str.length()-1;i>-l;i-)( str2+=String.vaLueO/(str.char

6、At(i);/Returns the char value at the specified index) return str2;7、用 Java 写一个多线程程序,如写四个线程,二个对一个变量加1, 二个对一个变量减一行打印输出。public class Test ( int j=l ; public synchronized void inc()( j+ ;System. out. println(Thread. currentThread( ) ? getName() + "- inc:"+j)class T1 implements Runnable( public

7、 void run()( inc(); public synchronized void dec()( j-SIISystem. out. println(Thread.currentThread ) ? getName() +dec:"+j) class Til implements Runnable( public void run()( dec(); public static void main(String args) ( Test t = new Test();T1 tl =t.new Tl();Til til =t.new Tll(); for(int i=0;i<

8、;2;i+)( Threadthread=new Thread(tl); thread.start(); Thread threadl=new Thread(tll); threadl.start();8、 定义一个 Person类,拥有name, age属性:(a)随机生成是个 person对象,放到集合中,并依次输岀姓名和年龄。(b)重写compareTo方法,使得person可以根据age进 行比较。(c)通过排序,根据 age大小,把集合中的 person从小到大输岀。9、 请编写一个函数,完成可以按GBK字节数分割字符串的功能,(要求,遇到中文不能拆成半个),女口 splitByBy

9、tesC 中文版 Java",5),得到("中文,版 Jav , a”。10、写一个算法对 9,43,16,1,24,31,7进行升序排序。public static void main(String args) ( int array =9,43,16,1,24,31,7; for(int i=0;i<array.length-1;i+)(for(i nt j=O;j<arra y.len gth-i-1;j+)(if(arrayj>arrayj+l)( int temp = arrayj; arrayj = arrayj+l; arrayj+1 = t

10、emp; for (int i = 0; i < arra y.len gth; i+) ( System.out.pri ntI n(arrayi);11、一列数的规则如下:1、1、2、3、5、8、13、21、34求第30位数字是啥,用递归算法实现。public static void main( Stri ng args) ( int i=l;i nt j=l;i ntresult=0; int num=0; for(i nt coun t=3;co un t<=30;co un t+)(result=i+j; num=i;i=j ; j=result;System.out.p

11、ri ntl n( result);12、输入一行字符,分别统计岀其中英文字母、空格、数字和其他字符的个数。publicstatic void main (Stri ng args)(int num=0,chartra=0jblak=0 jother=0; Scanner s=newScann er(System.i n);System. out . println(”请输出");Stringresult=s.nextLine(); char x=result.toCharArray(); for(i nti=0;i<x.length;i+)( if(Character.isD

12、igit(xi)( num+;)else if(Character.is£ etter(xi)( chartra+;)else if(Character else other+; System. out. printinSystem.out.pri ntl n(”System.out.pri ntl n(”拦 Spac e(x i) blak+;(”数字的个数是"+num); 字符的个数是"+chartra); 空值的个数是"+blak); System.out.printin (”其他的个数是n+other);13、青蛙一次可以跳上 1级台阶,也可以跳

13、上2级台阶,求该青蛙跳上一个n级的台阶 总共有多少种跳法。public static int 3umpFloor(i nt target)(if(target=l)(return1;if(target=2)(return2;return JumpFLoor(target -1)+JumpFLoor(target-2); public static void main( Stri ng args) System.out. printIn (" 请输入台阶:"); Scanner sc = new Scanner(System.in); int n = sc.n extl nt

14、();System.out.pri ntln(Ju mpFLoor( n);14、编写一个方法,能够把一个数字转换成十六进制的字符串输出。public static void main( Stri ng args)(System.out.pri ntl n(c onv ertDecimaLToBi nary (8);System.out.println(convertDecimaLToBinary (298); System.out.pri ntln (co nvertDecimaLToBi nury(9123); public static Stri ng conv ertDecimalTo

15、Bi nary(i nt value)(return In teger.toHexStri ng(value); 15、编写程序判断一个类是否是一个类的子类或者实现了某个接口,一个对象是否是某个类的实例。public class IsAssig nableFromTest impleme nts Serializable( private static fin al l ong seriaLVersio nUID =public static void main(String口 args)(boolea n rel=Object.class ? isAssignableFrom(lsAssig

16、nableFromTest.class);boolea nre2=Serializable.class.isAssig nableFrom(lsAssig nableFromTest.c lass);Sys tern. out. print In ("rel: "+rel+" re2: "+re2); 16、用代码示例如何遍历 List、Set、Map。17、用代码示例把格式化成一个字符串 (2018-03-07T10:59:01)18、目前有一笔款项,不超过 1000000元,请计算兑换成数量不限的100/50/10/5/2/1 面额钱币的组合有多少种

17、。19、找岀一个四位数,符合以下条件:前两位等于后两位这个数是某个数的平方20、扫描在d:/test/目录下所有以".txt"结尾的文件,并将文件名写入到一个文件中。21、用最有效率的方法计算 13/8 o22 、编程实现输入文件名和关键字,计算出该关键字在文件中出现了几次。23 、编程实现输出一个文件夹下的所有文件名 ( 包括子目录 ) 。24 、用 1,2,2,3,4,5 这六个数字,用 java 写一个 main 函数,打印出所有不同的排列,如:512234 、 412345 等,要求: “ 4不”能再第三位, “3与" “5不”能相连 (使用内存越 少越好

18、 )。25 、实现一个方法,输入一个不重复、互不包含的关键词集合,将输入的文本中包含该 关键词集合中的词替换为 *, 并返回。 ( 要求考虑字符串越来越多时耗时越少越好,不使用replace,replaceAII 类的效率较低的函数 ) 如: 输入关键词集合: hello, key,name,a word,next word;要替换的字符串 : hello world,the name of game is key filter.ucan say hello to any one and the word is only a word.替换后的字符串为: * world,the * of ga

19、me is * filter.u can say * to any one.and the word id only *.26、不用 API 中的内置方法实现大位数相乘 ( 每个数都在 20 位以上 )27、1-2+3-4+5 n; 输出计算结果 (要考虑效率 )。28、请使用递归算法计算正整数的阶乘,例如5! =5*4*3*2*1=12029、选秀节目为选手打分的分为专家评委和大众评委,选手最终得分公式为专家评委平均分 *专家权重 +大众评委平均分 * (1- 专家权重 ) ,为求选手得分,假定函数接口为 int cal_score(int score, int judge_type, in

20、t weight), 其中 score 数组里存储每个评 委打的分数, judge_type 里存储 与 score 数组对应的评委类别 (1- 专家 2- 大众 ), weight 表示专家权重,请实现该函数。30 、 判断 101-200 之间有多少个素数,并输出所有素数。public static void main(String args) int sum=0;for (int i = 101; i < 201; i+) for (int j = 2; j <=i; j+) if(j=i) System.out.println(j); else if(i%j=0) sum+

21、; break; System.out.println(" 总共有 "+(100-sum)+" 个素数 ");31、 有一对老鼠,从出生后第 3 个月开始每个月都生一对老鼠,小老鼠长到第三个月后每个 月又生一对老鼠,假如老鼠都不死,问一年内每个月的老鼠总数为多少? public static void main (String args) ( long sl,s2;sl = 1;s2 = 1; int i=l; int m=12;while(true)if(i=l|i=2)System.out.println(i+" month: "

22、+sl);i+ ; else if(i<m) si = sl+s2; s2 = sl+s2;System.out.println(i+" month: "+sl);i+ ;System.out.println(i+ " month: "+s2);i+ ;else( break; 32 、 输入一个数,打印星号菱形,比如输入5,打印结果为:public static void main(String args) ( Scanner sc = new Scanner(System.in); System.out .println(" 请输入一

23、个奇数: ");int count = sc.nextlnt();if(count%2=l) ( count=count/2+l;for(int i = 1; i <= count; i+)( for(int j = 1; j <=count - i; j+)( System.out.print("n);for(int j = 1; j <= 2 * i - 1;j+) System.out.print(, * , ); System.out.println(); for(int i = count-1; i > 0;i-)( for(int j =

24、 1; j <= count - i;j+)( System.out.print(H "); ) for(int j = 1; j <= 2 * i- 1; j+) System.out.print("*"); System.out.printIn(); )else (System.out.printing 输入错误! 33 、 编写程序将由数字和字符组成的字符串中的数字取出,并进行升序排序输出。例如,输 入 “ AU31GF46S2P90HYQWRFW ”,输出 “ 0123469”34 、 用 Java 实现气泡法对任意 10 个整数按照从大到小顺

25、序排序。public static void main(String args) int array = new int10;for(int i=0;i<10;i+) ( array i = (int) (Math .rczndo/w( )*100);for(int i=0;i<array.length-1;i+) ( for(int j=0;j<array.length-i-1;j+)( if(arrayj>arrayj+l)( int temp = arrayj; arrayj = arrayj+l; arrayj+1 = temp;for (int i = 0; i < array.length; i+)( System.out.printIn(arrayi);)35 、 有面额为 5 分、 2 分、 1 分的硬币,当告诉你要找的零钱总额时,求出找零钱的方案,使得所找的零钱的硬币枚数达到最少。public static voi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论