文本描述
1912制作
微软研究院是一个听起来就牛B的地方啊,反正我是进不去,不过不妨碍我看看他的笔试题到底是怎么样的。下面四道题就是微软研究院的笔试题目,题后附有我的解答。 微软研究院(亚洲)的网址是:http://research.microsoft/asia/1.改错#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) (3) {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());}答:改正后主要改正SaveString函数将void SaveString(const char* pText) const{strcpy(m_pBuffer, pText);}改为void SaveString(const char* pText) (1){Allocte(strlen(pText)+1); (2)strcpy(m_pBuffer, pText);}原因:(1) const成员函数表示不会修改数据成员,而SaveString做不到,去掉const声明(2) m_pBuffer指向NULL,必须用Allocte分配空间才能赋值。(3) 另外需要将Allocte成员函数声明为私有成员函数更符合实际2.下来程序想打印“Welcome MSR Asia”,改正错误#include <stdio.h>#include <string.h>char * GetName (void){//To return “MSR Asia”