微软笔试题目2

微软笔试题目2

ID:37768701

大小:37.96 KB

页数:14页

时间:2019-05-30

微软笔试题目2_第1页
微软笔试题目2_第2页
微软笔试题目2_第3页
微软笔试题目2_第4页
微软笔试题目2_第5页
资源描述:

《微软笔试题目2》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、1.改错#include#includeclassCBuffer{  char*m_pBuffer;  intm_size;  public:    CBuffer()    {      m_pBuffer=NULL;    }    ~CBuffer()    {      Free();    }    voidAllocte(intsize)  (3)    {      m_size=size;      m_pBuffer=newchar[size];    }  private:    voidF

2、ree()    {       if(m_pBuffer!=NULL)      {        deletem_pBuffer;        m_pBuffer=NULL;      }    }    public:    voidSaveString(constchar*pText)const    {      strcpy(m_pBuffer,pText);    }    char*GetBuffer()const    {      returnm_pBuffer;    }};voidmain(intargc,char*arg

3、v[]){  CBufferbuffer1;  buffer1.SaveString("Microsoft");  printf(buffer1.GetBuffer());}答:改正后主要改正SaveString函数将voidSaveString(constchar*pText)const{strcpy(m_pBuffer,pText);}改为voidSaveString(constchar*pText) (1){Allocte(strlen(pText)+1); (2)strcpy(m_pBuffer,pText);}原因:(1)const成员函

4、数表示不会修改数据成员,而SaveString做不到,去掉const声明(2)m_pBuffer指向NULL,必须用Allocte分配空间才能赋值。(3)另外需要将Allocte成员函数声明为私有成员函数更符合实际2.下来程序想打印“WelcomeMSRAsia”,改正错误#include#includechar*GetName(void){  //Toreturn“MSRAsia”String  charname[]="MSRAsia";  returnname;}voidmain(intargc,char*

5、argv[]){  charname[32];  //Fillinzerosintoname  for(inti=0;i<=32;i++)  {    name[i]='';  }  //copy“Welcome”toname  name="Welcome";  //Appendablankchar  name[8]="";  //Appendstringtoname  strcat(name,GetName());  //printout  printf(name);}答:改正后为#include#include

6、g.h>char*GetName(void){  //Toreturn“MSRAsia”String  //charname[]="MSRAsia";      (1)          char*name=(char*)malloc(strlen("MSRAsia")+1);      strcpy(name,"MSRAsia");  returnname;}voidmain(intargc,char*argv[]){  charname[32];  //Fillinzerosintoname  for(inti=0;i<=32;i++)  { 

7、   name[i]='';  }  //copy“Welcome”toname  //name="Welcome";        (2)  strcat(name,"Welcome");  //Appendablankchar//  name[8]='';            (3)  //Appendstringtoname  char*p=GetName();        (4)  strcat(name,p);  free(p);  //printout  printf(name);}原因:(1)在函数内部定义的变量在函数结束时就

8、清空了,必须动态分配内存(2)字符串赋值语句错误,应该用strcat(3)该语句无效,可去掉(4)定义一个指针指向动态分配

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。