答案仅供参考改错题找出以下两处逻辑错误(非编程规范)并改正char*getErrorString(interrcode){ charerrorString[]="notexist";charerrorString2[]="notavailable"; switch(errcode){case1:returnerrorString;case2:returnerrorString2;default:returnNULL; }}voidprintErrorString(interrcode){ char*errorString=getErrorString(errcode); printf("errcode:%d,errorString:%s\n",errcode,errorString);}case1和case2返回了两个局部变量指针,而局部变量在函数结束后将自动释放。改正:将字符数组改为指针char*errorString="notexist";char*errorString2="notavailable";以下是输出“ehome”的程序,找出逻辑错误(非编程规范)并改正constintMAX_STR_SIZE=12;intmain(intargc,char*argv[]){charstr[MAX_STR_SIZE];strcpy(str,"ehome"); printf("%s",str); return0;}“ehome”字符串应该是13个字节,而str字符数组只能存储12个字符改正:constintMAX_STR_SIZE=13;程序填空题写出String类的构造函数,析构函数和赋值函数classString{public: String(constchar*str=NULL); String(constString&other); ~String(); String&operator=(constString&other);private: char*m_data;};String::~String(){ (1)delete[]m_data;}String::String(constchar*str){ if((2)str==NULL){ m_data=(3)newchar; *m_data=0; } else{ intlength=(4)strlen(str); m_data=newchar[length+1]; strcpy(m_data,str); }}String&String::operator=(constString&other){ if((5)this==other){ return(6)*this; } (7)delete[]m_data; intlength=strlen((8)other); m_data=newchar[length+1]; (9)strcpy(m_data,) return(10)*this;}一个计算到指定年份有多少个
软通动力笔试(带参考答案) 来自淘豆网www.taodocs.com转载请标明出处.