microsoft微软——遥不可及的梦

 
发信人: fairypeach.bbs@bbs.nankai.edu.cn (桃之夭夭), 信区: job
标 题: Re: 微软2003笔试
发信站: 我爱南开站 (Thu Oct 23 01:14:44 2003)
转信站: BMY!news.tiaozhan.com!news.happynet.org!NanKai
 
 
【 在 vivifyinger (爱家) 的大作中提到: 】
MS China 2003 校园招聘一次笔试试题
 
 
 
分三个部分,第一部分IQ测验,5道题,第二部分EQ测试,64道题
,第三部分,写作/翻译
第一部分:(据内部人说一共30道iq题)
1、 7 14 12
4 12 9
6 24 ?
 
2 、老师 d 的物理测验答案在教室里丢失了,今天那个教室上了 5 堂课,老师 d 上了 3 堂,有可能是 a b c 三个同学盗窃
已知: 1 a 上了两堂课
2 b 上了三堂课
3 c 上了四堂课
4 a b c 每个人都上了老师 d 的两堂课
5 、五堂课中,三个人到堂的组合各不相同
6 、老师 d 的课中有一堂,三个人中到了两个,事后证明不是那两个人偷得
问?是谁偷得
 
3、 a b c d e
* f
__________________
g g g g g g
问,a b c d e f g各市什么数字(不重复)
95238 × 7 666666
4、a进行一次C和D之间往返旅行,希望在整个旅行中能够达到60km/h的平均速度,但是
 
他从C到达D的时候发现平均速度只有30km/h,问a应当怎么做才能够使这次往返旅行的平局速度到达60km/h
 
5图形~~~~~~~
 
比去年的简单多了 :)
 
EQ题会问一些个人性格方面的问题,比如你是否易怒~~~~,一共64道
 
第三部分
应聘SST的会要求用给定的场景写一篇英文的商务文章
应聘TST的会要求作大约300 words的技术文章英译中
 
我碰到的是EAP的翻译,还有一个朋友碰到了.net framework的翻译,不是很难.
 
发信人: kevinl (少说,多做), 信区: job
标 题: MSRA的笔试题2(A卷)
发信站: 饮水思源 (2003 年11月16日11:14:14 星期天), 站内信件
 
#include <stdio.h>
#include <String.h>
class CBuffer
{
    char * m_pBuffer;
    int m_size;
public:
    CBuffer()
    {
       m_pBuffer=NULL;
    }
    ~CBuffer()
    {
       Free();
    }
    void Allocte(int size)
    {
       m_size=size;
       m_pBuffer= new char[size];
    }
private:
    void Free()
    {
       if(m_pBuffer!=NULL)
       {
           delete m_pBuffer;
           m_pBuffer=NULL;
       }
    }
public:
    void SaveString(const char* pText) const
    {
       strcpy(m_pBuffer, pText);
    }
    char* GetBuffer() const
    {
       return m_pBuffer;
    }
};
void main (int argc, char* argv[])
{
    cBuffer buffer1;
    buffer1.SaveString("Microsoft");
    printf(buffer1.GetBuffer());
}
找出Allocate, SaveString, main的错误。
Allocate
SaveString 不能为 const
       If(pText==NULL)
              Return;
       Allocate(strlen(pText)+1);
 
Free() 应该是 delete[]
Main 中没有为 buffer1 分配空间,
原因:
1 const 成员函数表示不会修改数据成员,而 SaveString 做不到,去掉 const 声明
2 m_pBuffer 指向 NULL ,必须用 Allocte 分配空间才能赋值。
3 另外需要将 Allocte 成员函数声明为私有成员函数更符合实际
 
发信人: kevinl (少说,多做), 信区: job
标 题: MSRA笔试题3(A卷)
发信站: 饮水思源 (2003 年11月16日11:22:31 星期天), 站内信件
 
打印"Welcome MSR Asia"
#include <stdio.h>
#include <string.h>
char * GetName (void)
{
//To return "MSR Asia" String
char name[]="MSR Asia";
return name;
}
void main(int argc, char* argv[])
{
char name[32];
//Fill in zeros into name
for(int i=0;i<=32;i++)
{
name[i]='/0';
}
//copy "Welcome" to name
name="Welcome";
//Append a blank char
name[8]='';
//Append string to name
strcat(name, GetName());
//print out
printf(name);
}
找出程序中的错误。
#include <stdio.h>
#include <string.h>
char * GetName (void)
{
 //To return “MSR Asia” String
 //char name[]="MSR Asia";      1  
        char *name=(char *)malloc(strlen("MSR Asia")+1);   
 strcpy(name,"MSR Asia");
 return name;
}
void main(int argc, char* argv[])
{
 char name[32];
 //Fill in zeros into name
 for(int i=0;i<=32;i++)
 {
    name[i]='/0';
 }
 //copy “Welcome” to name
 //name="Welcome";        2
 strcat(name,"Welcome ");
 //Append a blank char
 name[7]=' ';             3
 //Append string to name
 char *p=GetName();        4
 strcat(name,p);
 free (p);
 //print out
 printf(name);
}
 
原因:( 1 )在函数内部定义的变量在函数结束时就清空了,必须动态分配内存
2 )字符串赋值语句错误,应该用 strcpy
3 )空格位置应该为 7
4 )定义一个指针指向动态分配的内存,用完后需用 free 语句释放
 
发信人: kevinl (少说,多做), 信区: job
标 题: MSRA笔试题4(A卷)
发信站: 饮水思源 (2003 年11月16日12:04:45 星期天), 站内信件
 
#include <stdio.h>
class A
{
public :
 
    void FuncA()
    {
       printf("FuncA called/n");
    }
    virtual void FuncB()
    {
       printf("FuncB called/n");
    }
};
class B: public A
{
public :
 
    void FuncA()
    {
       A::FuncA();
       printf("FuncAB called/n");
    }
    virtual void FuncB()
    {
       printf("FuncBB called/n");
    }
};
void main(void)
{
    B b;
    A *pa;
    pa=&b;
    A *pa2=new A;
    b.FuncA();
    b.FuncB();
    pa->FuncA();
    pa->FuncB();
    pa2->FuncA();
    pa2->FuncB();
    delete pa2;
}
What is the output of the above program?
FuncA called
FuncAB called
FuncBB called
FuncA called
FuncBB called
FuncA called
FuncB called
发信人: kevinl (少说,多做), 信区: job
标 题: MSRA笔试题5(A卷)
发信站: 饮水思源 (2003 年11月16日12:16:21 星期天), 站内信件
 
#include <stdio.h>
#include <string.h>
int FindSubString(char* pch)
{
int count=0;
char* p1=pch;
while(*p1!='/0')
{
if(*p1==p1[1]-1)
{
p1++;
count++;
}
else
{
break;
}
}
int count2=count;
while(*p1!='/0')
{
if(*p1!==p1[1]+1)
{
p1++;
count2--;
}
else
{
break;
}
if(count2==0)
{return count;
return 0;
}
void ModifyString(char* pText)
{
char* p1=pText;
char* p2=p1;
while(*p1!='/0')
{
int count=FindSubString(p1);
if(count>0)
{
*p2++=*p1;
sprintf(p2,"%i",count);
while(*p2!='/0')
{
p2++;
}
p1+=count+count+1;
}
else
{
*p2++=*p1++;
}
}
void main(void)
{
char text[32]="XYBCDCBABABA";
ModifyString(text);
printf(text);
}
In the main() function, after ModifyString(text) is called, what's the value
 of 'text'?
最后运行结果写出来是 XYBCDCBAIBAA
FindSubString 判断回文串,如果是的话,返回其前半段的长度,
//*p1==p1[1]-1 递增
则执行顺序为
BABABA
BA10BA
BA1BBA
BA1BAA
 
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值