zhangtorando的博客秀

立即激活博客秀

关于作者

用户名:zhangtorando
笔名:zhangtorando
地区:

日历  

快速登录

+ 用户名:
+ 密 码:

我的博采 我的论坛 我的RSS

在线留言



技术

访问统计:
文章个数:8
评论个数:3
留言条数:0



Powered by BlogDriver 2.1

轻松程序人生

 

分享每天生活的沉淀感悟

文章

.Net开发十种武器!

 用于编写单元测试的 NUnit

 用于创建代码文档资料的 NDoc

 用于生成解决方案的 NAnt

 用于生成代码的 CodeSmith

用于监视代码的 FxCop

 用于编译少量代码的 Snippet Compiler

 两种不同的转换器工具:ASP.NET 版本转换器和 Visual Studio .NET 项目转换器

 用于生成正则表达式的 Regulator

 用于分析程序集的 .NET Reflector

 用于编写单元测试的 NUnit

 用于创建代码文档资料的 NDoc

 用于生成解决方案的 NAnt

 用于生成代码的 CodeSmith

用于监视代码的 FxCop

 用于编译少量代码的 Snippet Compiler

 两种不同的转换器工具:ASP.NET 版本转换器和 Visual Studio .NET 项目转换器

 用于生成正则表达式的 Regulator

 用于分析程序集的 .NET Reflector

好好研究一下!!!

- 作者: zhangtorando 2004年11月21日, 星期日 15:08  回复(0) |  引用(0) 加入博采

HP笔试后的感想

昨天2004-11-9号的惠普笔试。感觉题量很大。

共有如下几类题:

1。数据结构

2。c语言

3。c++语言

4。java语言

5。OS

6。UML/OOD

7。网络

8。软件工程

每类大概都有十几道题目,做完后感觉难度一般。可是自己平日知识积累的仍然不够。比方说什么是design pattern?你知道哪几种设计模式?

可怜的我只知道Observer模式。还有诸如内核线程和用户线程的区别是什么?这类题还能答上一点,可惜不能很完整。

看来还是需要多看书阿!


昨天2004-11-9号的惠普笔试。感觉题量很大。

共有如下几类题:

1。数据结构

2。c语言

3。c++语言

4。java语言

5。OS

6。UML/OOD

7。网络

8。软件工程

每类大概都有十几道题目,做完后感觉难度一般。可是自己平日知识积累的仍然不够。比方说什么是design pattern?你知道哪几种设计模式?

可怜的我只知道Observer模式。还有诸如内核线程和用户线程的区别是什么?这类题还能答上一点,可惜不能很完整。

看来还是需要多看书阿!

- 作者: zhangtorando 2004年11月10日, 星期三 20:06  回复(0) |  引用(0) 加入博采

C# 编码规范和编程好习惯
         Anders_Hejlsberg 天才!我的偶像。

命名惯例和规范



注记 :
Pascal 大小写形式-所有单词第一个字母大写,其他字母小写。
Camel   大小写形式-除了第一个单词,所有单词第一个字母大写,其他字母小写。

 

命名惯例和规范



注记 :
Pascal 大小写形式-所有单词第一个字母大写,其他字母小写。
Camel   大小写形式-除了第一个单词,所有单词第一个字母大写,其他字母小写。

  • 类名使用Pascal 大小写形式
    public class HelloWorld
    {
     ...
    }
    

  • 方法使用Pascal 大小写形式
    public class HelloWorld
    {
     void SayHello(string name)
     {
      ...
     }
    }

     

  • 变量和方法参数使用Camel 大小写形式

     


    public class HelloWorld
    {
     int totalCount = 0;
     void SayHello(string name)
     {
      string fullMessage = "Hello " + name;
      ...
     }
    }
      
  • 不要使用匈牙利方法来命名变量

    以前,多数程序员喜欢它-把数据类型作为变量名的前缀而m_作为成员变量的前缀。例如:
    
    string m_sName;
    int nAge;
    
        
    然而,这种方式在.NET编码规范中是不推荐的。所有变量都用camel 大小写形式,而不是用数据类型和m_来作前缀。
  • 用有意义的,描述性的词语来命名变量

    - 别用缩写。用name, address, salary等代替 nam, addr, sal
    - 别使用单个字母的变量象i, n, x 等. 使用 index, temp
    用于循环迭代的变量例外:
    for ( int i = 0; i < count; i++ )
    {
     ...
    }
    
    如果变量只用于迭代计数,没有在循环的其他地方出现,许多人还是喜欢用单个字母的变量(i) ,而不是另外取名。
    - 变量名中不使用下划线 (_) 。
    - 命名空间需按照标准的模式命名
    ...
    

  • 文件名要和类名匹配

    例如,对于类HelloWorld, 相应的文件名应为 helloworld.cs (或, helloworld.vb)

    缩进和间隔

  • 缩进用 TAB . 不用 SPACES.。
  • 注释需和代码对齐.。
  • 花括弧 ( {} ) 需和括号外的代码对齐.。
  • 用一个空行来分开代码的逻辑分组。.
     bool SayHello (string name)
     {
      string fullMessage = "Hello " + name;
      DateTime currentTime = DateTime.Now;
      string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
      MessageBox.Show ( message );
      if ( ... )
      {
       // Do something
       // ...
       return false;
      }
      return true;
     }
                  
    这段代码看起来比上面的好::
     bool SayHello ( string name )
     {
      string fullMessage = "Hello " + name;
      DateTime currentTime = DateTime.Now;
      
    string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
    MessageBox.Show ( message );
    if ( ... ) { // Do something // ...
    return false; }
    return true; }
  • 在一个类中,各个方法需用一空行,也只能是一行分开。
  • 花括弧需独立一行,而不象if, for 等可以跟括号在同一行。.
    好:
      if ( ... ) 
      {
       // Do something
      }
    
    不好:
      if ( ... ) {
       // Do something
      }
    
  • 在每个运算符和括号的前后都空一格。.

    好:
      if ( showResult == true )
      {
       for ( int i = 0; i < 10; i++ )
       {
        //
       }
      }
    
    不好:
      if(showResult==true)
      {
       for(int i= 0;i<10;i++)
       {
        //
       }
      }
    

    良好的编程习惯


    遵从以下良好的习惯以写出好程序

  • 避免使用大文件。如果一个文件里的代码超过300~400行,必须考虑将代码分开到不同类中。
  • 避免写太长的方法。一个典型的方法代码在1~25行之间。如果一个方法发代码超过25行,应该考虑将其分解为不同的方法。
  • 方法名需能看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了。

    好:
     void SavePhoneNumber ( string phoneNumber )
     {
      // Save the phone number.
     }
    

    不好:
     // This method will save the phone number.
     void SaveData ( string phoneNumber )
     {
      // Save the phone number.
     }
    
  • 一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。

    好:
     // Save the address.
     SaveAddress (  address );
     
     // Send an email to the supervisor to inform that the address is updated.
     SendEmail ( address, email );  
     
     void SaveAddress ( string address )
     {
      // Save the address.
      // ...
     }
     
     void SendEmail ( string address, string email )
     {
      // Send an email to inform the supervisor that the address is changed.
      // ...
     }
    

    不好:
     // Save address and send an email to the supervisor to inform that the address is updated.
     SaveAddress ( address, email );
     void SaveAddress ( string address, string email )
     {
      // Job 1.
      // Save the address.
      // ...
      // Job 2.
      // Send an email to inform the supervisor that the address is changed.
      // ...
     }
    
  • 使用C# 或 VB.NET的特有类型,而不是System命名空间中定义的别名类型。

    好:
     int age;
     string name;
     object contactInfo;
    

    不好:
     Int16 age;
     String name;
     Object contactInfo;
     
  • 别在程序中使用固定数值,用常量代替。
  • 别用字符串常数。用资源文件。
  • 避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。如果在几个方法间共享一个成员变量,那就很难知道是哪个方法在什么时候修改了它的值。
  • 必要时使用enum 。别用数字或字符串来指示离散值。
    好:
     enum MailType
     {
      Html,
      PlainText,
      Attachment
     }
     void SendMail (string message, MailType mailType)
     {
      switch ( mailType )
      {
       case MailType.Html:
        // Do something
        break;
       case MailType.PlainText:
        // Do something
        break;
       case MailType.Attachment:
        // Do something
        break;
       default:
        // Do something
        break;
      }
     }
                


    不好:
     void SendMail (string message, string mailType)
     {
      switch ( mailType )
      {
       case "Html":
        // Do something
        break;
       case "PlainText":
        // Do something
        break;
       case "Attachment":
        // Do something
        break;
       default:
        // Do something
        break;
      }
     }
  • 别把成员变量声明为 public 或 protected。都声明为 private 而使用 public/protected 的Properties.
  • 不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可编程。
  • 永远别设想你的代码是在"C:"盘运行。你不会知道,一些用户在网络或"Z:"盘运行程序。
  • 应用程序启动时作些"自检"并确保所需文件和附件在指定的位置。必要时检查数据库连接。出现任何问题给用户一个友好的提示。
  • 如果需要的配置文件找不到,应用程序需能自己创建使用默认值的一份。
  • 如果在配置文件中发现错误值,应用程序要抛出错误,给出提示消息告诉用户正确值。
  • 不要使用匈牙利方法来命名变量

    以前,多数程序员喜欢它-把数据类型作为变量名的前缀而m_作为成员变量的前缀。例如:
    
    string m_sName;
    int nAge;
    
        
    然而,这种方式在.NET编码规范中是不推荐的。所有变量都用camel 大小写形式,而不是用数据类型和m_来作前缀。
  • 用有意义的,描述性的词语来命名变量

    - 别用缩写。用name, address, salary等代替 nam, addr, sal
    - 别使用单个字母的变量象i, n, x 等. 使用 index, temp
    用于循环迭代的变量例外:
    for ( int i = 0; i < count; i++ )
    {
     ...
    }
    
    如果变量只用于迭代计数,没有在循环的其他地方出现,许多人还是喜欢用单个字母的变量(i) ,而不是另外取名。
    - 变量名中不使用下划线 (_) 。
    - 命名空间需按照标准的模式命名
    ...
    

  • 文件名要和类名匹配

    例如,对于类HelloWorld, 相应的文件名应为 helloworld.cs (或, helloworld.vb)

    缩进和间隔

  • 缩进用 TAB . 不用 SPACES.。
  • 注释需和代码对齐.。
  • 花括弧 ( {} ) 需和括号外的代码对齐.。
  • 用一个空行来分开代码的逻辑分组。.
     bool SayHello (string name)
     {
      string fullMessage = "Hello " + name;
      DateTime currentTime = DateTime.Now;
      string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
      MessageBox.Show ( message );
      if ( ... )
      {
       // Do something
       // ...
       return false;
      }
      return true;
     }
                  
    这段代码看起来比上面的好::
     bool SayHello ( string name )
     {
      string fullMessage = "Hello " + name;
      DateTime currentTime = DateTime.Now;
      
    string message = fullMessage + ", the time is : " + currentTime.ToShortTimeString();
    MessageBox.Show ( message );
    if ( ... ) { // Do something // ...
    return false; }
    return true; }
  • 在一个类中,各个方法需用一空行,也只能是一行分开。
  • 花括弧需独立一行,而不象if, for 等可以跟括号在同一行。.
    好:
      if ( ... ) 
      {
       // Do something
      }
    
    不好:
      if ( ... ) {
       // Do something
      }
    
  • 在每个运算符和括号的前后都空一格。.

    好:
      if ( showResult == true )
      {
       for ( int i = 0; i < 10; i++ )
       {
        //
       }
      }
    
    不好:
      if(showResult==true)
      {
       for(int i= 0;i<10;i++)
       {
        //
       }
      }
    

    良好的编程习惯


    遵从以下良好的习惯以写出好程序

  • 避免使用大文件。如果一个文件里的代码超过300~400行,必须考虑将代码分开到不同类中。
  • 避免写太长的方法。一个典型的方法代码在1~25行之间。如果一个方法发代码超过25行,应该考虑将其分解为不同的方法。
  • 方法名需能看出它作什么。别使用会引起误解的名字。如果名字一目了然,就无需用文档来解释方法的功能了。

    好:
     void SavePhoneNumber ( string phoneNumber )
     {
      // Save the phone number.
     }
    

    不好:
     // This method will save the phone number.
     void SaveData ( string phoneNumber )
     {
      // Save the phone number.
     }
    
  • 一个方法只完成一个任务。不要把多个任务组合到一个方法中,即使那些任务非常小。

    好:
     // Save the address.
     SaveAddress (  address );
     
     // Send an email to the supervisor to inform that the address is updated.
     SendEmail ( address, email );  
     
     void SaveAddress ( string address )
     {
      // Save the address.
      // ...
     }
     
     void SendEmail ( string address, string email )
     {
      // Send an email to inform the supervisor that the address is changed.
      // ...
     }
    

    不好:
     // Save address and send an email to the supervisor to inform that the address is updated.
     SaveAddress ( address, email );
     void SaveAddress ( string address, string email )
     {
      // Job 1.
      // Save the address.
      // ...
      // Job 2.
      // Send an email to inform the supervisor that the address is changed.
      // ...
     }
    
  • 使用C# 或 VB.NET的特有类型,而不是System命名空间中定义的别名类型。

    好:
     int age;
     string name;
     object contactInfo;
    

    不好:
     Int16 age;
     String name;
     Object contactInfo;
     
  • 别在程序中使用固定数值,用常量代替。
  • 别用字符串常数。用资源文件。
  • 避免使用很多成员变量。声明局部变量,并传递给方法。不要在方法间共享成员变量。如果在几个方法间共享一个成员变量,那就很难知道是哪个方法在什么时候修改了它的值。
  • 必要时使用enum 。别用数字或字符串来指示离散值。
    好:
     enum MailType
     {
      Html,
      PlainText,
      Attachment
     }
     void SendMail (string message, MailType mailType)
     {
      switch ( mailType )
      {
       case MailType.Html:
        // Do something
        break;
       case MailType.PlainText:
        // Do something
        break;
       case MailType.Attachment:
        // Do something
        break;
       default:
        // Do something
        break;
      }
     }
                


    不好:
     void SendMail (string message, string mailType)
     {
      switch ( mailType )
      {
       case "Html":
        // Do something
        break;
       case "PlainText":
        // Do something
        break;
       case "Attachment":
        // Do something
        break;
       default:
        // Do something
        break;
      }
     }
  • 别把成员变量声明为 public 或 protected。都声明为 private 而使用 public/protected 的Properties.
  • 不在代码中使用具体的路径和驱动器名。 使用相对路径,并使路径可编程。
  • 永远别设想你的代码是在"C:"盘运行。你不会知道,一些用户在网络或"Z:"盘运行程序。
  • 应用程序启动时作些"自检"并确保所需文件和附件在指定的位置。必要时检查数据库连接。出现任何问题给用户一个友好的提示。
  • 如果需要的配置文件找不到,应用程序需能自己创建使用默认值的一份。
  • 如果在配置文件中发现错误值,应用程序要抛出错误,给出提示消息告诉用户正确值。
  • 错误消息需能帮助用户解决问题。永远别用象"应用程序出错", "发现一个错误" 等错误消息。而应给出象 "更新数据库失败。请确保登陆id和密码正确。" 的具体消息。  
  • 显示错误消息时,除了说哪里错了,还应提示用户如何解决问题。不要用 象 "更新数据库失败。"这样的,要提示用户怎么做:"更新数据库失败。请确保登陆id和密码正确。"
  • 显示给用户的消息要简短而友好。但要把所有可能的信息都记录下来,以助诊断问题。

    注释

  • 别每行代码,每个声明的变量都做注释。
  • 需要的地方注释。可读性强的代码需要很少的注释。如果所有的变量和方法的命名都很有意义,会使代码可读性很强并无需太多注释。
  • 行数不多的注释会使代码看起来优雅。但如果代码不清晰,可读性差,那就糟糕。
  • 如果应为某种原因使用了复杂艰涩的原理,为程序配备良好的文档和重分的注释。
  • 对一个数值变量采用不是0,-1等的数值初始化,给出选择该值的理由。
  • 简言之,要写清晰,可读的代码以致无须什么注释就能理解。
  • 对注释做拼写检查,保证语法和标点符号的正确使用。

    异常处理

  • 不要"捕捉了异常却什么也不做"。如果隐藏了一个异常,你将永远不知道异常到底发生了没有。
  • 发生异常时,给出友好的消息给用户,但要精确记录错误的所有可能细节,包括发生的时间,和相关方法,类名等。
  • 只捕捉特定的异常,而不是一般的异常。

    好:
     void ReadFromFile ( string fileName )
     {
      try
      {
       // read from file.
      }
      catch (FileIOException ex)
      {
       // log error.
       //  re-throw exception depending on your case.
       throw;
      }
     }
    
    不好:
     void ReadFromFile ( string fileName )
     {
      try
      {
       // read from file.
      }
      catch (Exception ex) 
      {
       // Catching general exception is bad... we will never know whether it
       // was a file error or some other error.
       
       // Here you are hiding an exception. 
       // In this case no one will ever know that an exception happened.
       return "";  
      }
     }
    
  • 不必在所有方法中捕捉一般异常。不管它,让程序崩溃。这将帮助你在开发周期发现大多数的错误。
  • 你可以用应用程序级(线程级)错误处理器处理所有一般的异常。遇到"以外的一般性错误"时,此错误处理器应该捕捉异常,给用户提示消息,在应用程序关闭或 用户选择"忽略并继续"之前记录错误信息。
  • 不必每个方法都用try-catch。当特定的异常可能发生时才使用。比如,当你写文件时,处理异常FileIOException.
  • 别写太大的 try-catch 模块。如果需要,为每个执行的任务编写单独的 try-catch 模块。 这将帮你找出哪一段代码产生异常,并给用户发出特定的错误消息
  • 显示给用户的消息要简短而友好。但要把所有可能的信息都记录下来,以助诊断问题。

    注释

  • 别每行代码,每个声明的变量都做注释。
  • 需要的地方注释。可读性强的代码需要很少的注释。如果所有的变量和方法的命名都很有意义,会使代码可读性很强并无需太多注释。
  • 行数不多的注释会使代码看起来优雅。但如果代码不清晰,可读性差,那就糟糕。
  • 如果应为某种原因使用了复杂艰涩的原理,为程序配备良好的文档和重分的注释。
  • 对一个数值变量采用不是0,-1等的数值初始化,给出选择该值的理由。
  • 简言之,要写清晰,可读的代码以致无须什么注释就能理解。
  • 对注释做拼写检查,保证语法和标点符号的正确使用。

    异常处理

  • 不要"捕捉了异常却什么也不做"。如果隐藏了一个异常,你将永远不知道异常到底发生了没有。
  • 发生异常时,给出友好的消息给用户,但要精确记录错误的所有可能细节,包括发生的时间,和相关方法,类名等。
  • 只捕捉特定的异常,而不是一般的异常。

    好:
     void ReadFromFile ( string fileName )
     {
      try
      {
       // read from file.
      }
      catch (FileIOException ex)
      {
       // log error.
       //  re-throw exception depending on your case.
       throw;
      }
     }
    
    不好:
     void ReadFromFile ( string fileName )
     {
      try
      {
       // read from file.
      }
      catch (Exception ex) 
      {
       // Catching general exception is bad... we will never know whether it
       // was a file error or some other error.
       
       // Here you are hiding an exception. 
       // In this case no one will ever know that an exception happened.
       return "";  
      }
     }
    
  • 不必在所有方法中捕捉一般异常。不管它,让程序崩溃。这将帮助你在开发周期发现大多数的错误。
  • 你可以用应用程序级(线程级)错误处理器处理所有一般的异常。遇到"以外的一般性错误"时,此错误处理器应该捕捉异常,给用户提示消息,在应用程序关闭或 用户选择"忽略并继续"之前记录错误信息。
  • 不必每个方法都用try-catch。当特定的异常可能发生时才使用。比如,当你写文件时,处理异常FileIOException.
  • 别写太大的 try-catch 模块。如果需要,为每个执行的任务编写单独的 try-catch 模块。 这将帮你找出哪一段代码产生异常,并给用户发出特定的错误消息
  • 如果应用程序需要,可以编写自己的异常类。自定义异常不应从基类SystemException派生,而要继承于. IApplicationException
  • - 作者: zhangtorando 2004年11月10日, 星期三 19:50  回复(0) |  引用(0) 加入博采

    面试题库2

    《世界最佳公司面试题》


    A:他们一定会问你这些问题

    1、我们为什么要聘用你 ?
    2、为什么你想到这里来工作 ?
    3、这个职位最吸引你的是什么?
    4、你是否喜欢你老板的职位 ?
    5、你是否愿意去公司派你去的那个地方?
    6、谁曾经给你最大的影响?
    7、你将在这家公司呆多久?
    8、什么是你最大的成就?
    9、你能提供一些参考证明吗?
    10、从现在开始算,未来的五年,你想自己成为什么样子?或者:告诉我你事业的目标。
    11、你有和这份工作相关的训练或品质吗?
    12、导致你成功的因素是什么?
    13、你最低的薪金要求是多少
    14、你还有什么问题吗?
    答案:
    1、(测试你的沉静与自信。)给一个简短、有礼貌的回答:"我能做好我要做的事情"、"我相信自己,我想得到这份工作"。
    2、(这应该是你喜爱的题目。)因为你在此前进行了大量的准备,你了解这家公司。组织几个原因,最好是简短而切合实际的。
    3、(这是一个表现你对这个公司、这份工作看法的机会。)回答应使考官确认你具备他要求的素质。
    4、回答当然是"YES",如你不满意,可补充:"当我有这个评测能力时"或"有这样一个空缺时吧"。
    5、如果你回答"NO",你可能会因此而失掉这份工作,记住:你被雇用后你可以和公司就这个问题再行谈判。
    6、选一个名字即可,最好是你过去的老师等,再简短准备几句说明为什么。
    7、回答这样的问题,你该持有一种明确的态度,即:能待多久待多久,尽可能长,"我在这里继续学习和完善自己。"
    8、准备一两个成功的小故事。
    9、你该准备好一些相关的整洁的打印件,并有现在的电话和地址。
    10、回答一定要得体,根据你的能力和经历。
    11、说明要短,举两三个最重要的品质,要有事实依据。
    12、回答要短,让考官自己去探究,比如只一句话:"我喜欢挑战性工作
    13、(这是必不可少的问题,因为你和你的考官出于不同考虑都十分关心它。)你聪明的做法是:不做正面回答。强调你最感兴趣的是这个机遇和挑战并存的工作,避免讨论经济上的报酬,直到你被雇用为止。
    14、你必须回答"当然"。你要准备通过你的发问,了解更多关于这家公司这次面试、这份工作的信息。
    假如你笑笑说"没有"(心里想着终于结束了,长长吐了口气),那才是犯了一个大错误。这往往被理解为你对该公司、对这份工作没有太深厚的兴趣;其次,从最实际的考虑出发,你难道不想听话听音敲打一下考官,推断一下自己入围有几成希望?
    这里有一些供你选择的问题:1、为什么这个职位要公开招聘?2、这家公司(这个部门)最大的挑战是什么?3、公司的长远目标和战略计划您能否用一两句话简要为我介绍一下?4、您考虑这个职位上供职的人应有什么素质?5、决定雇用的时间大致期限要多久?6、关于我的资格与能力问题,您还有什么要问的吗?

    B:烫手的山芋怎么接?

    1、你为什么选择这所学校(专业)?
    2、你的学位如何?
    A、为你在[某行业]找一份工作作好了准备
    B、为你能成为一个出色的[某职务]员工做好了准备?
    除了学术方面以外,你还有哪些资历能使你成功地实现从理论到商务的转变?
    3、为什么你是这份工作的最佳人选?
    a)我干过不少这种职位,我的经验将我帮助我胜任这一岗位.
    b)我干什么都很出色。
    c)通过我们之间的交流,我觉得这里是一个很好的工作地点。
    d)你们需要可以生产出"效益"的人,而我的背景和经验......
    答案:
    A、错误。经验是好的,但"很多相同职位"也许更让人觉得你并不总能保证很好的表现。
    B、错误。很自信的回答,但是过于傲慢。对于这种问题合适的案例和谦虚更重要。
    C、错误。这对雇主来说是一个很好的恭维,但是过于自我为中心了,答非所问。应该指出你能为雇主提供什么。
    D、最佳答案。回答问题并提供案例支持在这里是最好的策略。
    4、如果你被问到一个判断性问题,例如:你有没有创造性?你能不能在压力下工作?最好的答案是什么?
    a)回答"是"或"否"。
    b)回答"是"或"否",并给出一个具体的例子。
    c)回答"是"或"否",并做进一步的解释。
    A、错误。没有支持的答案总是显得不可信。即使是这种只需要回答"是"或"否"的问题也需要具体的解释。
    B、最佳答案。一个简短的具体案例可以很好地支持你的答案,同时,也能表明你的自信和真诚。
    C、错误。具体案例可以更简单有力地说明你的能力。在解释的时候,人们往往会跑题,夹杂不清。同时,最好不要用"应聘指南"之类的"经典"套话,那会让你像个"职业"应聘的。
    5、描述一下你自己。
    a)列举自己的个人经历,业余兴趣爱好等。
    b)大肆宣扬一下自己良好的品德和工作习惯。
    c)列举3个自己的性格与成就的具体案例。
    A、错误。一般来说,招聘者更想通过这个问题了解你的习惯和行为方式。个人的详细资料对他们来说没有任何意义。
    B、自大并不能让你从竞争中脱颖而出。回答完问题以后,你必须得到招聘者的信任并让他/她记住你。这样的宣扬并不成功。
    C、最佳答案。案例是你能力最好的证据。一个清晰简明有力的案例能让你从人群中脱颖而出,给招聘者留下好印象。因此,在面试以前最好考虑一下这份工作需要自己什么样的品质,做好准
    6、你期望在这个职位中找到什么?
    a)我想找到一个好机会,使得我可以运用自己的知识为公司发展做出贡献,同时也能为自己创造进一步的机会。
    b)我想找到一个可以认同我的努力和工作成果的公司。
    c)我想找到一个可以提供给我足够薪水的公司。我的工作很努力,值得给我那么多钱。
    7、对我们公司都知道些什么?
    a)我事先看过一些贵公司的介绍,就我所知贵公司......
    b)我看过和听过的关于贵公司的一切都深深地吸引着我想加入这个团队。我知道这个行业是......,你们的客户是......。我最感兴趣的还有你们是......
    d)关于你们公司,我知道很多,我喜欢在你们公司工作。
    8、你有什么弱点?
    a)我的同事们什么事都抱怨的时候我总是很有挫折感。
    b)我不大看重个人名誉。对我来说,只要把事情做好,我不在乎谁得到名声。
    c)我不觉得自己有弱点。
    9、你的短期目标是什么?
    a)短期内我只想得到一份工作。
    b)我已经有很多欠账了,所以短期内我想找到一份工作,然后尽我应有的责任。
    c)短期内我想找到一份适合自己的工作,对公司做出自己的贡献。今天我们谈的这份工作看起来是一个好机会,您能告诉我这份工作更详细的情况吗?
    10、请谈谈你对麦肯锡的一些看法和意见。
    有的应聘者谈不出什么感想,或只讲本企业的好话;而有的应聘者,则能对本企业不足之外提出意见,并提出改进的建议,如何加强安全防扩措施等;显然,后一种应聘者更关心企业的发展,具有较强的事业心和责任感,因而受到公司的欢迎。

    C:给应届生指点迷津

    1 我们为什么要雇请你呢?
    有的面试只有这么一个问题。
    2 你认为自己最大的弱点是什么?
    绝对不要自作聪明地回答我最大的缺点是过于追求完美。有的人以为这样回答会显得自己比较出色,但事实上他已经岌芨可危了。
    3 你最喜欢的大学课程是什么?为什么?
    说和你要应聘的职位相关的课程吧,表现一下自己的热诚没有什么坏处。
    4 你最不喜欢的大学课程是什么?为什么?
    我不得不说是我们大学的主修课程。虽然我知道他们只是例行一下公事,但课堂上死气沉沉,老师和学生都只不过想熬完这个学期。
    5 你在大学期间最喜欢的老师是谁?
    我一向的回答都是,事实上也的确是。教我们广告营销的教授他能使课堂充满生气,通过实例让学生把知识和现实紧密结合,而不是死读书本。我想我从他身上得到的最多。
    6 你能为我们公司带来什么呢?
    假如你可以的话,试着告诉他们你可以减低他们的费用。我已经接受过Microsoft Access 和Word 的培训,立刻就可以上岗工作。他们在那边可能想Access 培训。要花$540Word 要花$445,这小子能为我们省下$1000 的培训费用呢。
    7 最能概括你自己的三个词是什么?
    我经常用的三个词是适应能力强。有责任心和做事有始终。结合具体例子向主考官解释,使他们觉得你具有发展潜力。
    8 你为什么来应聘这份工作?
    "我来应聘是因为我相信自己能为公司作出贡献。我在这个领域的经验很少人比得上,而且我的适应能力使我确信我能把职责带上一个新的台阶。
    9 你对加班有什么看法?
    尽量诚实,如果你说了是而实际上却不想,那么你会被人一直盯住。
    10 你对我们公司有什么认识?
    说几件你知道的事,其中至少有一样是销售额为多少多少之类。
    11 你是怎么知道我们招聘这个职位的呢?
    如果你是从公司内部某人处打听回来的消息,记得提及他的名字。公司不说偏袒内部关系,不代表它不存在。
    12 除了工资还有什么福利最吸引你?
    尽可能诚实,如果你做足了功课,你就知道他们会提供什么回答。尽可能和他们提供的相配,如果你觉得自己该得到更多,也可以多要一点。
    13 你参加过什么业余活动?
    最好是让人觉得你处事不乏手腕,那么最好强调一下那些需要群体合作和领导的才能的活动。
    14 你参加过义务活动吗?
    现在就着手做一些义务活动,不仅仅是那些对社会有贡献的还要是你的雇主会在意的。如果他们还没有一个这样的员工,那么你会成为很好的公关资源。
    15 你心目中的英雄是谁?
    最好的答案是你的朋友或者家人。尽量避免说及名人。
    16 你有什么问题吗?
    一定要提问。
    17 你为什么还没找到合适的职位呢?
    别怕告诉他们你可能会有的聘请,千万不要说我上一次面试弄得一塌糊涂。指出这是你第一次面试。
    18 你最近看过的电影或者小说是什么?
    虽然雌雄大盗是部不错的电影,但现在显然不是适合讨论的时候。找一些老少咸宜的电影,如尽善尽美。
    19 你的业余爱好是什么?
    找一些富于团体合作精神的。这里有一个真实的故事有人被否决掉,因为他的爱好是深海潜水,面试官说因为这是一项单人活动,我不敢肯定他能否适应团体工作。
    20 你怎么看待要向比你年轻的人/女性汇报呢?
    我从不根据年龄性别划分别人,只要他们是凭借自己能力到达该职务的那绝对没有问题。
    21 有想过创业吗?
    这个问题可以显示你的冲劲,但如果你的回答是有的话,千万小心下一个问题可能就是那么为什么你不这样做呢。
    22 卖这张桌子给我。
    如果应聘销售或者市场之类的职务会常碰到这类问题。
    23 作为被面试者给我打一下分。
    试着列出四个优,点和一个非常非常非常小的缺点。可以抱怨一下设施没有明确责任人的缺点,是不会有人介意的。
    24 告诉我三件关于这公司的事情。
    你应该知道十件和公司有关的事情,他问你三件你回答四件,他问你四件你回答五件。

    - 作者: zhangtorando 2004年11月7日, 星期日 19:46  回复(1) |  引用(0) 加入博采

    面试技巧1

    《世界最佳公司面试题》、微软的面试题


    A:超级推理

      1、你让工人为你工作7天,给工人的回报是一根金条。金条平分成相连的7段
    ,你必须在每天结束时给他们一段金条,如果只许你两次把金条弄断,你如何给你
    的工人付费?
      2、请把一盒蛋糕切成8份,分给8个人,但蛋糕盒里还必须留有一份。
      3、小明一家过一座桥,过桥时是黑夜,所以必须有灯。现在小明过桥要1秒,
    小明的弟弟要3秒,小明的爸爸要6秒,小明的妈妈要8秒,小明的爷爷要12秒。每
    次此桥最多可过两人,而过桥的速度依过桥最慢者而定,而且灯在点燃后30秒就会
    熄灭。问:小明一家如何过桥?
      4、一群人开舞会,每人头上都戴着一顶帽子。帽子只有黑白两种,黑的至少
    有一顶。每个人都能看到其他人帽子的颜色,却看不到自己的。主持人先让大家看
    看别人头上戴的是什么帽子,然后关灯,如果有人认为自己戴的是黑帽子,就打自
    己一个耳光。第一次关灯,没有声音。于是再开灯,大家再看一遍,关灯时仍然鸦
    雀无声。一直到第三次关灯,才有劈劈啪啪打耳光的声音响起。问有多少人戴着黑
    帽子?
      5、请估算一下CN TOWER电视塔的质量。
      6、一楼到十楼的每层电梯门口都放着一颗钻石,钻石大小不一。你乘坐电梯
    从一楼到十楼,每层楼电梯门都会打开一次,只能拿一次钻石,问怎样才能拿到最
    大的一颗?
      7、U2合唱团在17分钟内得赶到演唱会场,途中必需跨过一座桥,四个人从桥
    的同一端出发,你得帮助他们到达另一端,天色很暗,而他们只有一只手电筒。一
    次同时最多可以有两人一起过桥,而过桥的时候必须持有手电筒,所以就得有人把
    手电筒带来带去,来回桥两端。手电筒是不能用丢的方式来传递的。四个人的步行
    速度各不同,若两人同行则以较慢者的速度为准。Bono需花1分钟过桥,Edge需花
    2分钟过桥,Adam需花5分钟过桥,Larry需花10分钟过桥。他们要如何在17分钟内
    过桥呢?
      8、烧一根不均匀的绳要用一个小时,如何用它来判断半个小时
      9、为什么下水道的盖子是圆的?
      10、美国有多少辆加油站(汽车)?
      11、有7克、2克砝码各一个,天平一只,如何只用这些物品三次将140克的盐
    分成50、90克各一份?
      12、有一辆火车以每小时15公里的速度离开洛杉矶直奔纽约,另一辆火车以第
    小时20公里的速度从纽约开往洛杉矶。如果有一只鸟,以外30公里每小时的速度和
    两辆火车现时启动,从洛杉矶出发,碰到另辆车后返回,依次在两辆火车来回的飞
    行,直道两面辆火车相遇,请问,这只小鸟飞行了多长距离?
      13、你有两个罐子,50个红色弹球,50个蓝色弹球,随机选出一个罐子,随机
    选取出一个弹球放入罐子,怎么给红色弹球最大的选中机会?在你的计划中,得到
    红球的准确几率是多少?
      14、想象你在镜子前,请问,为什么镜子中的影像可以颠倒左右,却不能颠倒
    上下?
      15、你有四人装药丸的罐子,每个药丸都有一定的重量,被污染的药丸是没被
    污染的重量+1.只称量一次,如何判断哪个罐子的药被污染了?
      16、如果你有无穷多的水,一个3夸脱的和一个5夸脱的提桶,你如何准确称出
    4夸脱的水?
      17、你有一桶果冻,其中有黄色,绿色,红色三种,,闭上眼睛选出同样颜色
    的两个,抓取同种颜色的两个。抓取多少个就可以确定你肯定有两个同一颜色的果
    冻?
      18、将汽车钥匙插入车门,向哪个方向旋转就可以打开车锁?
      19、如果要你能去掉50个州的任何一个,那你去掉哪一个,为什么?
      20、对一批编号为1~100 全部开关朝上开的灯进行以下操作
      凡是1 的倍数反方向拨一次开关2 的倍数反方向又拨一次开关3 的倍数反方向
    又拨一次开关。
      问最后为关熄状态的灯的编号。
      21、假设一张圆盘像唱机上的唱盘那样转动。这张盘一半是黑色,一半是白色
    。假设你有数量不限的一些颜色传感器。要想确定圆盘转动的方向,你需要在它周
    围摆多少个颜色传感器?它们应该被摆放在什么位置?
      22、假设时钟到了12点。注意时针和分针重叠在一起。在一天之中,时针和分
    针共重叠多少次?你知道它们重叠时的具体时间吗?
      23、中间只隔一个数字的两个奇数被称为奇数对,比如17和19。证明奇数对之
    间的数字总能被6整除(假设这两个奇数都大于6)。现在证明没有由三个奇数组成
    的奇数对。
      24、一个屋子有一个门(门是关闭的)和3盏电灯。屋外有3个开关,分别与这
    3盏灯相连。你可以随意操纵这些开关,可一旦你将门打开,就不能变换开关了。
    确定每个开关具体管哪盏灯。
      25、假设你有8个球,其中一个略微重一些,但是找出这个球的惟一方法是将
    两个球放在天平上对比。最少要称多少次才能找出这个较重的球?
      26、下面玩一个拆字游戏,所有字母的顺序都被打乱。你要判断这个字是什么
    。假设这个被拆开的字由5个字母组成:
        1.共有多少种可能的组合方式?
        2.如果我们知道是哪5个字母,那会怎么样?
        3.找出一种解决这个问题的方法。
      27、有4个女人要过一座桥。她们都站在桥的某一边,要让她们在17分钟内全
    部通过这座桥。这时是晚上。她们只有一个手电筒。最多只能让两个人同时过桥。
    不管是谁过桥,不管是一个人还是两个人,必须要带着手电筒。手电筒必须要传来
    传去,不能扔过去。每个女人过桥的速度不同,两个人的速度必须以较慢的那个人
    的速度过桥。
      第一个女人:过桥需要1分钟;
      第二个女人:过桥需要2分钟;
      第三个女人:过桥需要5分钟;
      第四个女人:过桥需要10分钟。
      比如,如果第一个女人与第4个女人首先过桥,等她们过去时,已经过去了10
    分钟。如果让第4个女人将手电筒送回去,那么等她到达桥的另一端时,总共用去
    了20分钟,行动也就失败了。怎样让这4个女人在17分钟内过桥?还有别的什么方
    法?
      28、如果你有两个桶,一个装的是红色的颜料,另一个装的是蓝色的颜料。你
    从蓝色颜料桶里舀一杯,倒入红色颜料桶,再从红色颜料桶里舀一杯倒入蓝颜料桶
    。两个桶中红蓝颜料的比例哪个更高?通过算术的方式来证明这一点。

    B:疯狂计算

      29、已知两个1~30之间的数字,甲知道两数之和,乙知道两数之积。
      甲问乙:"你知道是哪两个数吗?"乙说:"不知道";
      乙问甲:"你知道是哪两个数吗?"甲说:"也不知道";
      于是,乙说:"那我知道了";
      随后甲也说:"那我也知道了";
      这两个数是什么?
      30、4,4,10,10,加减乘除,怎么出24点?
      31、1000!有几位数,为什么?
      32、F(n)=1 n>8 n<12
      F(n)=2 n<2
      F(n)=3 n=6
      F(n)=4 n=other
      使用+ - * /和sign(n)函数组合出F(n)函数
      sign(n)=0 n=0
      sign(n)=-1 n<0
      sign(n)=1 n>0
      33、编一个程序求质数的和例如F(7)=1+3+5+7+11+13+17=58
      34、。。。
      请仅用一支笔画四根直线将上图9 各点全部连接
      35、三层四层二叉树有多少种
      36、1--100000 数列按一定顺序排列,有一个数字排错,如何纠错?写出最好
    方法。两个数字呢?
      37、链接表和数组之间的区别是什么?
      38、做一个链接表,你为什么要选择这样的方法?
      39、选择一种算法来整理出一个链接表。你为什么要选择这种方法?现在用
    O(n)时间来做。
      40、说说各种股票分类算法的优点和缺点。
      41、用一种算法来颠倒一个链接表的顺序。现在在不用递归式的情况下做一遍

      42、用一种算法在一个循环的链接表里插入一个节点,但不得穿越链接表。
      43、用一种算法整理一个数组。你为什么选择这种方法?
      44、用一种算法使通用字符串相匹配。
      45、颠倒一个字符串,优化速度,优化空间。
      46、颠倒一个句子中的词的顺序,比如将"我叫克丽丝"转换为"克丽丝叫我",
    实现速度最快,移动最少。
      47、找到一个子字符串,优化速度,优化空间。
      48、比较两个字符串,用O(n)时间和恒量空间。
      49、假设你有一个用1001个整数组成的数组,这些整数是任意排列的,但是你
    知道所有的整数都在1到1000(包括1000)之间。此外,除一个数字出现两次外,
    其他所有数字只出现一次。假设你只能对这个数组做一次处理,用一种算法找出重
    复的那个数字。如果你在运算中使用了辅助的存储方式,那么你能找到不用这种方
    式的算法吗?
      50、不用乘法或加法增加8倍。现在用同样的方法增加7倍。

    C:创造性应用

      51、营业员小姐由于工作失误,将2万元的笔记本电脑以1.2万元错卖给李先生
    ,王小姐的经理怎么写信给李先生试图将钱要回来?
      52、如何将计算机技术应用于一幢100层高的办公大楼的电梯系统上?你怎样
    优化这种应用?工作日时的交通、楼层或时间等因素会对此产生怎样的影响?
      53、你如何对一种可以随时存在文件中或从因特网上拷贝下来的操作系统实施
    保护措施,防止被非法复制?
      54、你如何重新设计自动取款机?
      55、假设我们想通过电脑来操作一台微波炉,你会开发什么样的软件来完成这
    个任务?
      56、你如何为一辆汽车设计一台咖啡机?
      56、如果你想给微软的Word系统增加点内容,你会增加什么样的内容?
      57、你会给只有一只手的用户设计什么样的键盘?
      58、你会给失聪的人设计什么样的闹钟?

    [答案在额外内容里]

     

    E:参考答案

      1、day1 给1 段,
      day2 让工人把1 段归还给2 段,
      day3 给1 段,
      day4 归还1 2 段,给4 段。
      day5 依次类推......
      2、面对这样的怪题,有些应聘者绞尽脑汁也无法分成;而有些应聘者却感到
    此题实际很简单,把切成的8份蛋糕先拿出7份分给7人,剩下的1份连蛋糕盒一起分
    给第8个人。
      4、假如只有一个人戴黑帽子,那他看到所有人都戴白帽,在第一次关灯时就
    应自打耳光,所以应该不止一个人戴黑帽子;如果有两顶黑帽子,第一次两人都只
    看到对方头上的黑帽子,不敢确定自己的颜色,但到第二次关灯,这两人应该明白
    ,如果自己戴着白帽,那对方早在上一次就应打耳光了,因此自己戴的也是黑帽子
    ,于是也会有耳光声响起;可事实是第三次才响起了耳光声,说明全场不止两顶黑
    帽,依此类推,应该是关了几次灯,有几顶黑帽。
      5、比如你怎样快速估算支架和柱子的高度、球的半径,算出各部分的体积等
    等。招聘官的说法:"就CNTOWER这道题来说,它和一般的谜语或智力题还是有区别
    的。我们称这类题为'快速估算题',主要考的是快速估算的能力,这是开发软件
    必备的能力之一。当然,题目只是手段,不是目的,最终得到一个结果固然是需要
    的,但更重要的是对考生得出这个结果的过程也就是方法的考察。"Mr Miller为记
    者举例说明了一种比较合理的答法,他首先在纸上画出了CN TOWER的草图,然后快
    速估算支架和各柱的高度,以及球的半径,算出各部分体积,然后和各部分密度运
    算,最后相加得出一个结果。
      这一类的题目其实很多,如:"估算一下密西西比河里的水的质量。""如果你
    是田纳西州州长,请估算一下治理好康柏兰河的污染需要多长时间。"
      "估算一下一个行进在小雨中的人5分钟内身上淋到的雨的质量。"
      Mr Miller接着解释道:"像这样的题目,包括一些推理题,考的都是人的
    ProblemSolving(解决问题的能力),不是哪道题你记住了答案就可以了的。"
      对于公司招聘的宗旨,Mr Miller强调了四点,这些是有创造性的公司普遍注
    重的员工素质,是想要到知名企业实现自己的事业梦想的人都要具备的素质和能力

      要求一:RawSmart(纯粹智慧),与知识无关。
      要求二:Long-termPotential(长远学习能力)。
      要求三:TechnicSkills(技能)。
      要求四:Professionalism(职业态度)。
      6、她的回答是:选择前五层楼都不拿,观察各层钻石的大小,做到心中有数
    。后五层楼再选择,选择大小接近前五层楼出现过最大钻石大小的钻石。她至今也
    不知道这道题的准确答案,"也许就没有准确答案,就是考一下你的思路,"她如是
    说。
      7、分析:有个康奈尔的学生写文章说他当时在微软面试时就是碰到了这道题
    ,最短只能做出在19分钟内过桥。
      8、两边一起烧。
      9、答案之一:从麻省理工大学一位计算机系教授那里听来的答案,首先在同
    等用材的情况下他的面积最大。第二因为如果是方的、长方的或椭圆的,那无聊之
    徒拎起来它就可以直接扔进地下道啦!但圆形的盖子嘛,就可以避免这种情况了
    )
      10、这个乍看让人有些摸不着头脑的问题时,你可能要从问这个国家有多少小
    汽车入手。面试者也许会告诉你这个数字,但也有可能说:"我不知道,你来告诉
    我。"那么,你对自己说,美国的人口是2.75亿。你可以猜测,如果平均每个家庭
    (包括单身)的规模是2.5人,你的计算机会告诉你,共有1.1亿个家庭。你回忆起
    在什么地方听说过,平均每个家庭拥有1.8辆小汽车,那么美国大约会有1.98亿辆
    小汽车。接着,只要你算出替1.98亿辆小汽车服务需要多少加油站,你就把问题解
    决了。重要的不是加油站的数字,而是你得出这个数字的方法。
      12、答案很容易计算的:
      假设洛杉矶到纽约的距离为s
      那小鸟飞行的距离就是(s/(15+20))*30。
      13、无答案,看你有没有魄力坚持自己的意见。
      14、因为人的两眼在水平方向上对称。
      15、从第一盒中取出一颗,第二盒中取出2 颗,第三盒中取出三颗。
      依次类推,称其总量。
      16、比较复杂:
      A、先用3 夸脱的桶装满,倒入5 夸脱。以下简称3->5)
      在5 夸脱桶中做好标记b1,简称b1)。
      B、用3 继续装水倒满5 空3 将5 中水倒入3 直到b1 在3 中做标记b2
      C、用5 继续装水倒满3 空5 将3 中水倒入5 直到b2
      D、空3 将5 中水倒入3 标记为b3
      E、装满5 空3 将5 中水倒入3 直到3 中水到b3
      结束了,现在5 中水为标准的4 夸脱水。
      20、素数是关,其余是开。
      29、允许两数重复的情况下
      答案为x=1,y=4;甲知道和A=x+y=5,乙知道积B=x*y=4
      不允许两数重复的情况下有两种答案
      答案1:为x=1,y=6;甲知道和A=x+y=7,乙知道积B=x*y=6
      答案2:为x=1,y=8;甲知道和A=x+y=9,乙知道积B=x*y=8
      解:
      设这两个数为x,y.
      甲知道两数之和 A=x+y;
      乙知道两数之积 B=x*y;
      该题分两种情况 :
      允许重复, 有(1 <= x <= y <= 30);
      不允许重复,有(1 <= x < y <= 30);
      当不允许重复,即(1 <= x < y <= 30);
      1)由题设条件:乙不知道答案
      <=> B=x*y 解不唯一
      => B=x*y 为非质数
      又∵ x ≠ y
      ∴ B ≠ k*k (其中k∈N)
      结论(推论1):
      B=x*y 非质数且 B ≠ k*k (其中k∈N)
      即:B ∈(6,8,10,12,14,15,18,20...)
      证明过程略。
      2)由题设条件:甲不知道答案
      <=> A=x+y 解不唯一
      => A >= 5;
      分两种情况:
      A=5,A=6时x,y有双解
      A>=7 时x,y有三重及三重以上解
      假设 A=x+y=5
      则有双解
      x1=1,y1=4;
      x2=2,y2=3
      代入公式B=x*y:
      B1=x1*y1=1*4=4;(不满足推论1,舍去)
      B2=x2*y2=2*3=6;
      得到唯一解x=2,y=3即甲知道答案。
      与题设条件:"甲不知道答案"相矛盾 ,
      故假设不成立,A=x+y≠5
      假设 A=x+y=6
      则有双解。
      x1=1,y1=5;
      x2=2,y2=4
      代入公式B=x*y:
      B1=x1*y1=1*5=5;(不满足推论1,舍去)
      B2=x2*y2=2*4=8;
      得到唯一解x=2,y=4
      即甲知道答案
      与题设条件:"甲不知道答案"相矛盾
      故假设不成立,A=x+y≠6
      当A>=7时
      ∵ x,y的解至少存在两种满足推论1的解
      B1=x1*y1=2*(A-2)
      B2=x2*y2=3*(A-3)
      ∴ 符合条件
      结论(推论2):A >= 7
      3)由题设条件:乙说"那我知道了"
      =>乙通过已知条件B=x*y及推论(1)(2)可以得出唯一解
      即:
      A=x+y, A >= 7
      B=x*y, B ∈(6,8,10,12,14,15,16,18,20...)
      1 <= x < y <= 30
      x,y存在唯一解
      当 B=6 时:有两组解
      x1=1,y1=6
      x2=2,y2=3 (∵ x2+y2=2+3=5 < 7∴不合题意,舍去)
      得到唯一解 x=1,y=6
      当 B=8 时:有两组解
      x1=1,y1=8
      x2=2,y2=4 (∵ x2+y2=2+4=6 < 7∴不合题意,舍去)
      得到唯一解 x=1,y=8
      当 B>8 时:容易证明均为多重解
      结论:
      当B=6时有唯一解 x=1,y=6当B=8时有唯一解 x=1,y=8
      4)由题设条件:甲说"那我也知道了"
      => 甲通过已知条件A=x+y及推论(3)可以得出唯一解
      综上所述,原题所求有两组解:
      x1=1,y1=6
      x2=1,y2=8
      当x<=y时,有(1 <= x <= y <= 30);
      同理可得唯一解 x=1,y=4
      31、
      解:1000
      Lg(1000!)=sum(Lg(n))
      n=1
      用3 段折线代替曲线可以得到
      10(0+1)/2+90(1+2)/2+900(2+3)/2=2390
      作为近似结果,好象1500~3000 都算对
      32、F(n)=1 n>8 n<12
      F(n)=2 n<2
      F(n)=3 n=6
      F(n)=4 n=other
      使用+ - * /和sign(n)函数组合出F(n)函数
      sign(n)=0 n=0
      sign(n)=-1 n<0
      :sign(n)=1 n>0
      解:只要注意[sign(n-m)*sign(m-n)+1]在n=m 处取1 其他点取0 就可以了
      34、米字形的画就行了
      59、答案是和家人告别.

    F:公司背景知识

      美国微软公司从成立到现在已经走过了25年的历程,从最初的两个人发展到现
    在的3万多人,并从屈指可数的资金一跃成为世界第二大富豪。微软公司之所以一
    路顺风,与其高超的用人制度分不开的。
      低薪高股,留住顶尖人才
      微软是第一家用股票期权来奖励普通员工的企业。微软公司职员可以拥有公司
    的股份,并可享受15%的优惠,公司高级专业人员可享受更大幅度的优惠,公司还
    给任职一年的正式雇员一定的股票买卖特权。微软公司职员的主要经济来源并非薪
    水,股票升值是主要的收益补偿。公司故意把薪水压得比竞争对手还低,创立了一
    个"低工资高股份"的典范,微软公司雇员拥有股票的比率比其他任何上市公司都要
    高。这种不向员工保证提供某种固定收入或福利待遇,而是将员工的收益与其对企
    业的股权投资相联系,从而将员工个人利益同企业的效益、管理和员工自身的努力
    等因素结合起来的做法,具有明显的激励功效。
      在当今这个跳槽普遍盛行的时代,为什么微软能够"生产"数以千计的百万富翁
    ,且对公司忠心耿耿?其原因就是微软建立了一套网罗顶尖人才,珍惜顶尖人才的
    机制,建立了一种"宁缺毋滥,人尽其才"的选人用人模式。难怪盖茨坦言:"如果
    把我们公司顶尖的20个人才挖走,那么我告诉你,微软会变成一家无足轻重的公司
    。"也许,这就是微软成功的秘诀所在。
      精挑细选,不让最优秀的人才"漏网"
      根据微软的记录,公司每年接到来自全世界各地的求职申请达12万份。面对如
    此众多的求职者,比尔·盖茨并不满足,他认为许多令人满意的人才没有注意到微
    软,因而会使微软漏掉一些最优秀的人。于是,在微软的发展史上曾发生了许多较
    比尔·盖茨的财产快速增长更加激动人心的寻找人才的故事。据说,不论世界上哪
    个角落有他满意的人才,他便不惜任何代价将其弄到微软公司。他安排的很多"面
    试",不是在考人家,而是在求人家。用微软研究院副院长杰克·巴利斯的话说,
    是在"推销式面试"。有趣的是,微软"考官"们"求人家"的时候所迸发出来的那种兴
    奋感,甚至还要超过"考人家"。他们知道谁是值得他们"恳求"的人,其"恳求"的方
    式常常会出人预料。在西方记者撰写的关于微软的书籍中,多次提到一件事情:加
    州"硅谷"的两位计算机奇才--吉姆·格雷和戈登·贝尔,在微软千方百计的说服下
    终于同意为微软工作,但他们不喜欢微软总部雷德蒙冬季的霏霏阴雨。比尔·盖茨
    说,这好办,就在"硅谷"为他们建立了一个研究院。
      知识地图,协调员工与团队的发展
      有人把微软比作全世界最大的脑力压榨机。在这座知识工厂里,盖茨是全球知
    识精英的超级工头。在其带领下,员工的心血智慧结晶为众多畅销软件,使微软成
    为有史以来最具价值的知识创造型企业。
      为了让这一群知识精英能够合作无间,微软的IT团队花费了相当多的时间和
    精力,建构起一套敏捷的知识管理系统,微软的人员"知识地图"可以说是这套知识
    管理系统的最佳代表之一。
      这张"知识地图"是1995年10月开始制作的。当时,微软的资讯系统小组开展了
    一项"技能规划与开发计划"。他们把每个系统开发人员的工作能力和某特定工作所
    需要的知识制作成地图,以便协助公司维持业界领导地位的能力,同时让员工与团
    队的配合更加默契。微软的这一计划分为5个主要阶段:为知识能力的形态与程度
    建立起架构,明确某特定工作所需要的知识;为个别员工在特定工作中的知识能力
    表现评分;在线上系统执行知识能力的搜寻;将知识模型和教育训练计划结合起来
    。对于员工的知识能力,微软采用了基础水准能力、地区性或独特性的知识能力、
    全球水准能力和普遍性能力等四种知识结构形态来评估。当管理者想为新专案建立
    团队时,他无须知道所有员工中谁符合工作条件,而只要向这个系统咨询就可以了
    。微软推动"知识地图"的做法,表现出公司管理阶层重视知识,并支持知识的交流
    。"知识地图"不但使员工更容易找到所需的知识,也表明企业知识属于企业全体而
    非个人。

    - 作者: zhangtorando 2004年11月7日, 星期日 19:44  回复(0) |  引用(0) 加入博采

    微软工程院笔试通知
    您好! 微软亚洲工程院(ATC)对您的简历进行了认真的评估,认为您具备了进入第二轮笔试的资格,特此邀请您参加微软亚洲工程院2005年度校园招聘的第二次笔试,具体安排如下:

    微软亚洲工程院2005年度校园招聘――第二轮笔试通知信
    尊敬的张雷
    个人编号:16348

    您好! 微软亚洲工程院(ATC)对您的简历进行了认真的评估,认为您具备了进入第二轮笔试的资格,特此邀请您参加微软亚洲工程院2005年度校园招聘的第二次笔试,具体安排如下:

    地点:上海市上海大学延长校区第四教学楼101室

    笔试时间:2004年11月13日(周六) 下午14:00-17:00
    考试时长:180分钟 (3小时)
    座位号:024

    注意事项:
    1. 请于考试开始前15分钟到达指定地点;
    2. 请携带你的身份证、个人编号、请将本笔试通知打印出来,并在进入考场前连同身份证一起向工作人员出示;
    3.请你在考试前将与考试无关的物品放在前台(包括书包及内在物品)。
    4.请注意考场纪律;每张试卷均需写清姓名,第一页务必写清联系方式和学校及在笔试通知函上的ID编号(五位编号);
    5.考试时间长度为3个小时。到时间准时收卷。
    6.考场内禁止使用手机,个人电脑,PDA的工具,一旦发现,当场没收。
    7.卷子发下时候,请大家一定检查卷子是否完整(页数、内容)
    8.考试中途不得随意离场,如果有需要离场。请举手向监考官示意。如不想继续考试请将试卷及草稿纸一并交与监考官。
    9. 请携带个人简历,在考试结束后连同考卷一起交给准考官;
    10. 请按照你的座位编号就座;
    11. 携带考试的必备工具,如:铅笔、钢笔、橡皮等;
    12. 草稿纸将由MSRA-ATC提供;
    13.考官一律不回答与考试无关的问题。
    14.由于此次笔试卷子是分A、B卷,请大家一定注意自己卷子的类别,如果写错卷子,笔试成绩将被取消。
    15.请大家按照卷面要求回答试卷问题,如没有特殊要求,请大家一概使用英文答卷。
    16.选择题请大家在每个选择题的答案上划圈表示。
    17.每个填空题只有一个答案。
    18.请大家不要大声喧哗。考生进出时保持安静。

    - 作者: zhangtorando 2004年11月7日, 星期日 16:01  回复(1) |  引用(0) 加入博采

    Linux下的压缩文件剖析
    对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕。别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rap。可是Linux就不同了,它有.gz、.tar.gz、tgz、bz2、.Z、.tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.rar的人就太少了。本文就来对这些常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕:)
    在具体总结各类压缩文件之前呢,首先要 弄清两个概念:打包和压缩。打包是指将一大堆文件或目录什么的变成一个总的文件,压缩则是将一个大的文件通过一些压缩算法变成一个小文件。为什么要区分这两个概念呢?其实这源于Linux中的很多压缩程序只能针对一个文件进行压缩,这样当你想要压缩一大堆文件时,你就得先借助另它的工具将这一大堆文件先打成一个包,然后再就原来的压缩程序进行压缩。

      Linux下最常用的打包程序就是tar了,使用tar程序打出来的包我们常称为tar包,tar包文件的命令通常都是以.tar结尾的。生成tar包后,就可以用其它的程序来进行压缩了,所以首先就来讲讲tar命令的基本用法:

      tar命令的选项有很多(用man tar可以查看到),但常用的就那么几个选项,下面来举例说明一下:

      # tar -cf all.tar *.jpg
      这条命令是将所有.jpg的文件打成一个名为all.tar的包。-c是表示产生新的包,-f指定包的文件名。

      # tar -rf all.tar *.gif
      这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
    # tar -uf all.tar logo.gif
      这条命令是更新原来tar包all.tar中logo.gif文件,-u是表示更新文件的意思。

      # tar -tf all.tar
      这条命令是列出all.tar包中所有文件,-t是列出文件的意思

      # tar -xf all.tar
      这条命令是解出all.tar包中所有文件,-t是解开的意思

      以上就是tar的最基本的用法。为了方便用户在打包解包的同时可以压缩或解压文件,tar提供了一种特殊的功能。这就是tar可以在打包或解包的同时调用其它的压缩程序,比如调用gzip、bzip2等。

      1) tar调用gzip

      gzip是GNU组织开发的一个压缩程序,.gz结尾的文件就是gzip压缩的结果。与gzip相对的解压程序是gunzip。tar中使用-z这个参数来调用gzip。下面来举例说明一下:

      # tar -czf all.tar.gz *.jpg
      这条命令是将所有.jpg的文件打成一个tar包,并且将其用gzip压缩,生成一个gzip压缩过的包,包名为all.tar.gz

      # tar -xzf all.tar.gz
      这条命令是将上面产生的包解开。

      2) tar调用bzip2

      bzip2是一个压缩能力更强的压缩程序,.bz2结尾的文件就是bzip2压缩的结果。与bzip2相对的解压程序是bunzip2。tar中使用-j这个参数来调用gzip。下面来举例说明一下:

      # tar -cjf all.tar.bz2 *.jpg
      这条命令是将所有.jpg的文件打成一个tar包,并且将其用bzip2压缩,生成一个bzip2压缩过的包,包名为all.tar.bz2

      # tar -xjf all.tar.bz2
      这条命令是将上面产生的包解开。
    3)tar调用compress

      compress也是一个压缩程序,但是好象使用compress的人不如gzip和bzip2的人多。.Z结尾的文件就是bzip2压缩的结果。与compress相对的解压程序是uncompress。tar中使用-Z这个参数来调用gzip。下面来举例说明一下:

      # tar -cZf all.tar.Z *.jpg
      这条命令是将所有.jpg的文件打成一个tar包,并且将其用compress压缩,生成一个uncompress压缩过的包,包名为all.tar.Z

      # tar -xZf all.tar.Z
      这条命令是将上面产生的包解开

      有了上面的知识,你应该可以解开多种压缩文件了,下面对于tar系列的压缩文件作一个小结:

      1)对于.tar结尾的文件

      tar -xf all.tar

      2)对于.gz结尾的文件

      gzip -d all.gz
      gunzip all.gz

      3)对于.tgz或.tar.gz结尾的文件

      tar -xzf all.tar.gz
      tar -xzf all.tgz

      4)对于.bz2结尾的文件

      bzip2 -d all.bz2
      bunzip2 all.bz2

      5)对于tar.bz2结尾的文件

      tar -xjf all.tar.bz2

      6)对于.Z结尾的文件

      uncompress all.Z

      7)对于.tar.Z结尾的文件

      tar -xZf all.tar.z

      另外对于Window下的常见压缩文件.zip和.rar,Linux也有相应的方法来解压它们:

      1)对于.zip

      linux下提供了zip和unzip程序,zip是压缩程序,unzip是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:

      # zip all.zip *.jpg
      这条命令是将所有.jpg的文件压缩成一个zip包
    # unzip all.zip
      这条命令是将all.zip中的所有文件解压出来

      2)对于.rar

      要在linux下处理.rar文件,需要安装RAR for Linux,可以从网上下载,但要记住,RAR for Linux
    不是免费的;可从
    http://www.rarsoft.com/download.htm下载RAR for Linux 3.2.0,然后安装:

      # tar -xzpvf rarlinux-3.2.0.tar.gz
      # cd rar
      # make

      这样就安装好了,安装后就有了rar和unrar这两个程序,rar是压缩程序,unrar是解压程序。它们的参数选项很多,这里只做简单介绍,依旧举例说明一下其用法:

      # rar a all *.jpg
      这条命令是将所有.jpg的文件压缩成一个rar包,名为all.rar,该程序会将.rar 扩展名将自动附加到包名后。

      # unrar e all.rar
      这条命令是将all.rar中的所有文件解压出来

      到此为至,我们已经介绍过linux下的tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、zip、unzip、rar、unrar等程式,你应该已经能够使用它们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip、.rar这10种压缩文件进行解压了,以后应该不需要为下载了一个软件而不知道如何在Linux下解开而烦恼了。而且以上方法对于Unix也基本有效。

      本文介绍了linux下的压缩程式tar、gzip、gunzip、bzip2、bunzip2、compress、uncompress、zip、unzip、rar、unrar等程式,以及如何使用它们对.tar、.gz、.tar.gz、.tgz、.bz2、.tar.bz2、.Z、.tar.Z、.zip、.rar这10种压缩文件进行操作

    - 作者: zhangtorando 2004年11月7日, 星期日 15:59  回复(0) |  引用(0) 加入博采

    我的blog新建成功!!!

    我的个人空间今天建立,网络家园会记录我的成长过程,让我们一起分享每天生活沉淀下来的感悟。


    - 作者: zhangtorando 2004年11月7日, 星期日 15:48  回复(1) |  引用(0) 加入博采