1,烽火科技笔试题
用Java编写一个程序,从文件(C:\test.txt)中查出字符串“hello”出现的次数
package yx.file; import java.io.BufferedReader; import java.io.FileReader; import java.util.regex.Matcher; import java.util.regex.Pattern; /** * * @author yixiang *烽火科技笔试题 *从文件(C:\test.txt)中查找出字符串”hello“出现的次数 */ public class FindWord { public static void main(String[] args) { BufferedReader br=null; try { br=new BufferedReader(new FileReader("C:\\test.txt")); String line=null; int n=0; Pattern p=Pattern.compile("hello");//使用正则表达式 while((line=br.readLine())!=null){ Matcher m=p.matcher(line); while(m.find()){ n++; } } System.out.println(n+""); } catch (Exception e) { e.printStackTrace(); } //最好在finally里面把留给关闭
} }
请用Java编写一个简单的TCP服务程序,绑定端口4000,将客户端发送的数据回送给客户端,但如果收到“bye”时,则断开连接。(备注:不要求写出客户端的程序)
package yx.socket; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.ServerSocket; import java.net.Socket; /** * 烽火笔试题 请用java编写一个简单的TCP服务器程序,绑定端口4000, 将客户端发送的数据回传给客户端,但当如果收到”byte“时,则断开连接 * * @author yixiang * */ public class Test { public static void main(String[] args) { ServerSocket ss = null; Socket s = null; BufferedReader br; BufferedWriter bw; try { ss = new ServerSocket(4000); while (true) { s = ss.accept(); br = new BufferedReader(new InputStreamReader( s.getInputStream())); String line = ""; while ((line = br.readLine()) != null) { if (line.equals("bye")) { break; } } bw = new BufferedWriter(new OutputStreamWriter( s.getOutputStream())); bw.write(line); bw.flush(); } } catch (Exception e) { e.printStackTrace(); } finally { try { if (s != null) s.close(); if (ss != null) ss.close(); } catch (IOException e) { e.printStackTrace(); } } } }
3,烽火科技笔试题 趣味题
3.1 小明有12枚硬币(1分,2分,5分),共3角6分。其中有5枚硬币是一样的,那么这5枚一定是?请说出你的方案。
5分
排除法: 如果5枚二分硬币,那么剩下的7枚硬币总和必然是奇数,所有硬币总和不可能为三角六分,矛盾! 如果5枚1分硬币,那么剩下7枚5分和2分硬币共三角一分,这是不可能的组合。排除!
3.2 我们一天分分秒秒的经过24小时,那么细心的你观察过吗?一天中秒针、分针、时针会重叠多少次呢?为什么?
假设时针的角速度是ω(ω=π/6每小时),则分针的角速度为12ω,秒针的角速度为720ω。 分针与时针再次重合的时间为t,则有12ωt-ωt=2πn 0≤t≤24 12wt-wt=2π*n(n=0,1,2,...)=12w*n 11wt=12w*n 11t=12n t=12n/11(n=0,1,2,...) t=12*0=0 ,n=0 t=12*1/11=1+1/11 ,n=1 t=12*2/11 ,n=2 t=12*3/11 ,n=3 ..... ..... t=12*10/11 ,n=10 t=12*11/11=12 ,n=11 t=12*12/11 ,n=12 ..... ..... t=12*22/11=24 ,n=22(每天时针分针22次重合。) 由上可知时针和分针一天中可重合22次;由于0时至12时和12时至24时是对称的,所以只需考虑0时至12时时针、分针重合时,秒针是否也重合,就能得出结果。 t=12/11小时,换算成时分秒为1小时5分27.3秒,显然秒针不与时针分针重合,同样可以算出其它10次分针与时针重合时秒针都不能与它们重合。只有在正12点和0点时才会重合。 所以一天中只有两次三针重合,分别是0时,12时。
3.3 1元钱一瓶汽水,喝完后两个空瓶换一瓶汽水,问:你有20元钱,最多可以喝到几瓶汽水?
一瓶汽水5毛钱,换到极限能喝40瓶,
买20,20换10,10换5,5换2(省1),2换1,1加(省1)换1瓶,
喝完最后1瓶,还有1个瓶子,
买了这么多了,也和老板搞好关系了,赊1瓶,再喝完,把两个瓶子还了顶欠账,OK
3.4 有12个乒乓球,其中有一个不合规格,但不知是轻是重。要求用天平称三次,把这个坏球找出来,怎么称?
1.把十二个球分成三组(1,2,3,4)(a,b,c,d)(A,B,C,D)
2.取(1,2,3,4)和(a,b,c,d)分别放在天秤左、右两端.(第一次称)
(1)如果天秤平衡:
1. 则说明(A,B,C,D)中包含待找出的球.
2.从中(A,B,C,D)取3个球(如A、B、C)和从前两组正常球任意取三个球分别放在天秤两端.(第二次称)
如果天秤平衡:则说明D为我们要找的球.然后和任意一个正常球球比较后便知道是轻还是重.(第三次)--------完成
如果天秤不平衡:便能知道3个球中有我们等找的球,且由第二次的结果可知所找的球是轻还是重。然后任取三个中的两个如果天秤平衡则另一个球便是要找的球.不平衡根据刚才对轻重的判断找出该球.(第三次称)--------完成
(2)如果天秤不平衡
1.说明在(1,2,3,4)(a,b,c,d)中有我们要找的球.
2.此时我们从正常的A,B,C,D中取出三个球(如ABC),把a、b、c、d中三个(如a、b、c)换出,再用a、b、c换出另一组的1、2、3(待定),天平左右两端分别是a、b、c、4和A,B,C,d。(第二次称)
如果天秤平衡: 便能知道1、2、3球中有我们等找的球,且第一次的结果可知所找的球是轻还是重。然后任取三个中的两个如果天秤平衡则另一个球便是要找的球.不平衡根据刚才对轻重的判断找出该球.(第三次称)------完成
如果天秤不平衡:
(1) 与第一次称重时左右轻重不同(天平左右倾斜变化),要找的在a、b、c中且知道它的轻重。任取三个中的两个如果天秤平衡则另一个球便是要找的球.反之也能找出.(第三次称)--------完成
(2) 与第一次称重时左右轻重相同(天平左右倾斜不变),则球是4或d。从中任取一个(如4)与正常球称。(第三次称)
如平衡则d是要找的球,且由前两次可知轻重。--------完成
不平衡则4为要找的球,且轻重一看便知。--------完成