笔试题积累

来源:互联网 发布:linux c 绝对路径 编辑:程序博客网 时间:2024/06/15 00:52

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里面把留给关闭
}}

2,烽火科技笔试题

请用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≤2412wt-wt=2π*n(n=0,1,2,...)=12w*n11wt=12w*n11t=12nt=12n/11(n=0,1,2,...)t=12*0=0             ,n=0t=12*1/11=1+1/11     ,n=1t=12*2/11            ,n=2t=12*3/11            ,n=3.....         .....t=12*10/11    ,n=10t=12*11/11=12 ,n=11t=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为要找的球,且轻重一看便知。--------完成

0 0