microsoft微软——笔试题2

   
发信人: doggy (老三~差人※年复一年), 信区: Career_MS
标 题: MS考经
发信站: BBS 水木清华站 (Sat Nov 13 17:40:11 2004), 站内
 
刚考完回来,趁热乎回忆一下题目吧。
A组题
1 选择填空题
居然是多选,ft。似乎十几道,开始考基本概念。比如
为什么要使用函数(结构化,可重用之类的)
后来看程序输出或者找错,有一道比较难,我比较犹豫:
struct S {
    int i;
    int * p;
};
void main()
{
    S s;
    int * p = &s.i;
    p[0] = 4;
    p[1] = 3;
    s.p = p;
    s.p[1] = 1;
    s.p[0] = 2;
}
问程序会在哪一行死掉。
最后一行   
  s.i 的地址为 a,s.p 的地址为 b,   a   =   &s.i,b   =   &s.p,   b   =   a+4  
   
 p     =     &s.i   //      p   =   a;  
 s.p   =   p     //   *b   =   p   =   a;  
 s.p[1]   =   1   //      *(*b   +   4)   =   *(a+4)   =   *b   =   1;  
 s.p[0]   =   2   //      **b   =   *(1)     对地址 0x00000001 赋值非法
 
还有一题考静态成员变量的,不过我看怎么着结果都一样
int CalcMean(int i)
{    static int s, c;
    s+=i; c++;
    return s/c;
}
求CalcMeas( CalcMeas(3) )=?
再嵌套几次都一样。
3
还有一个
int calc(int a, int b)
{
    if(a >= b)
        return (a==b)?a:b;
    else
        return a+b+calc(++a, --b);
}
问calc(1, 5)等于? 15
 
还有那个IQ题:三个盒子有一个有宝石,先选一个,
主持人打开一个问改不改的。常上iqdoor版肯定不会有问题
还有一个
abcdef*2=cdefab
cdefab*2=efabcd
每个字母代表一个数字
abcdef=?
 
2 编程题
2。1 写一个CircularQueue()
2。2 写一个Merge函数。把两个排序的链表合并。
难点是两个链表一个从小到大排,另一个反向。
我是先把反向的转过来再合并的。
 
3 设计(可用中文)
1 设计一个密码对话框。问如何设计,有什么规范,如何测试等
2 Web搜索引擎测试。
 
4 是一个测试函数 int atoi( const char * string ) 字符串转换倒一个整数
 列举出所有的情况。 可以用中文
 
5 要用英文做答
5。1 你有什么新奇的想法,最好是软件方面
5。2 让一个员工开发一个功能,但是他不重视。如何搞定。
英语是:我猜是这个意思吧。
How would you convince a developer to add a feature
 that the developer does not view as importart?
 
记性好差
 
 
罗马数字共有七个,即     
 I(1),V(5),X(10),L(50),C(100),D(500),M(1000)。     
   
 按照下面三条规则可以表示任意正整数。     
   
 重复数次:一个罗马数字重复几次,就表示这个数的几倍。     
   
 右加左减:在一个较大的罗马数字的右边记上一个较小的罗马数字,     
 表示大数字加小数字。在一个较大的数字的左边记上一个较小的罗     
 马数字,表示大数字减小数字。但是,左减不能跨越等级。     
 比如,99不可以用IC表示,用XCIX表示   
   
 基本数字Ⅰ、X    、C    中的任何一个,自身连用构成数目,或者放在大数的右边连用构成数目,都不能超过三个,比如40不能用XXXX,而用XL表示   
   
  设计一个函数 , 100( 包括 100) 以内的整数转换成罗马数字 , 超过 100 不考虑   
 int    itor(int   n,char*   buf,int   bufLength)  
 其中,n是要转换的整数,buf是要输出的字符串,bufLength是buf的字符长度  
 成功,返回0,否则,返回    -1;  
   
 比如:   
 char    buf[256];  
 result    =   itor(n,buf,sizeof(buf));  
   
 when    n   =   28;   result   =   0,   输出"XXVIII";   
 when    n   =   72;   result   =   0,   输出"LXXII";   
 
abcdef*2=cdefab  
 cdefab*2=efabcd  
  每个字母代表一个数字,请问 abcdef=?
abcdef*4=efabcd  
  x=   abcd,   y=ef  
  那么   
 (x*100   +   y)*4   =   y*10000   +   x  
  得到   
 399*x   =   y*9996  
  两边分别除以 7  
 57   *   x   =   1428*y  
  那么    y   =   57,   x   =   1428  
  拿去验证一下   
 142857*2   =   285714
 
 
 
1.    Implement   a   string   class   in   C++   with   basic   functionality   like   comparison,   concatenation 串联,    input   and   output.   Please   also   provide   some   test   cases   and   using   scenarios   (sample   code   of   using   this   class).  
   
 Please    do   not   use   MFC,   STL   and   other   libraries   in   your   implementation.  
    class   String{  
        public:  
        String();  
                String(int   n,char   c);  
        String(const   char*   source);  
        String(const   String&   s);  
        //String&   operator=(char*   s);  
        String&   operator=(const   String&   s);  
        ~String();  
   
        char&   operator[](int   i){return   a[i];}  
        const   char&   operator[](int   i)   const   {return   a[i];}// 对常量的索引 .  
        String&   operator+=(const   String&   s);  
        int   length();  
   
        friend   istream&   operator>>(istream&   is,   String&   s);// 搞清为什么将 >> 设置为友元函数的原因 .  
          friend String   operator+(const   String&   a,const   String&   b)
        //friend   bool   operator<   (const   String&   left,const   String&   right);  
        friend   bool   operator>   (const   String&   left,   const   String&   right);// 下面三个运算符都没必要设成友元函数 , 这里是为了简单 .  
        friend   bool   operator==   (const   String&   left,   const   String&   right);  
        friend   bool   operator!=   (const   String&   left,   const   String&   right);  
        private:  
        char*   a;  
       int   size;  
 };  
     
   
 2.    Implement   a   single-direction   linked   list   sorting   algorithm.   Please   first   define   the   data   structure   of   linked   list   and   then   implement   the   sorting   algorithm.    
   
     
   
 3.    (Optional)   what   is   your   understanding   of   web,   HTML   and   XML?   Please   don't   write   too   much   content,   feel   free   to   use   bullets.  
 
 
以下题目请注意错误处理:   
 1、用非递归算法实现求N个数的最大公约数   
 2、设计一数据结构,实现对单词(限于a到z的26个字母)的存储,并可实现查询,如输入"ab",则返回所有以ab开头的单词.
 
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值