microsoft微软——遥不可及的梦

 
发信人: [email protected] (桃之夭夭), 信区: 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 111611: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 111611: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 111612: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 111612: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
 
 

你可能感兴趣的:(String,Microsoft,null,delete,buffer,微软)