好文档 - 专业文书写作范文服务资料分享网站

软通动力笔试(带参考答案)

天下 分享 时间: 加入收藏 我要投稿 点赞

答案仅供参考

一、改错题

1. 找出以下两处逻辑错误(非编程规范)并改正 char* getErrorString(int errcode) { char errorString[] = \

char errorString2[] = \ switch(errcode) { case 1:

return errorString; case 2:

return errorString2; default:

return NULL; } }

void printErrorString(int errcode) { char *errorString = getErrorString(errcode); printf(\ }

case1和case2返回了两个局部变量指针,而局部变量在函数结束后将自动释放。 改正:将字符数组改为指针

char *errorString= \

char *errorString2 = \

2. 以下是输出“welcome home”的程序,找出逻辑错误(非编程规范)并改正 const int MAX_STR_SIZE = 12; int main(int argc, char *argv[]) {

char str[MAX_STR_SIZE];

strcpy(str,\ printf(\ return 0; }

“welcome home”字符串应该是13个字节,而str字符数组只能存储12个字符 改正: const int MAX_STR_SIZE = 13; 二、程序填空题

1. 写出String类的构造函数,析构函数和赋值函数 class String

{ public:

String(const char *str = NULL);

精选文库

String(const String &other); ~String();

String& operator =(const String &other); private:

char *m_data;

};

String::~String() { (1)delete [] m_data;

}

String::String(const char *str) { if( (2)str==NULL ) { m_data = (3)new char; *m_data = 0; } else { int length = (4)strlen(str); m_data = new char[length+1]; strcpy(m_data, str); }

}

String& String::operator =(const String &other) { if( (5) this == other) { return (6)*this; }

(7) delete [] m_data;

int length = strlen( (8)other ); m_data = new char[length+1]; (9)strcpy(m_data,other.m_data) return (10)*this;

}

2. 一个计算到指定年份有多少个“黑色星期五”(当月的13号并且是星期五)的程序,具体忘了。

三、编程题

1. 实现以下函数,把给定string中的‘[’和‘]’替换成‘(’和‘)’

std::string replace(std::string &str) {

for(int i = 0; i < str.size();i++) — 2

{

if(str[i]=='[') {

str[i]='('; }

if(str[i]==']') {

str[i]=')'; } }

return str; }

2. 实现函数,使数字num按B进制输出

int main(int argc, char *argv[]) {

long num = 134; int B = 8; func(num, B); return 0; }

例如134按2进制输出10000110,按8进制输出206,按十六进制输出86

void func(long num,int B) {

int a[100] ={0};

int count=0; while(num>0) {

a[count++]=num%B; //保存余数 num=num/B; }

for(int i = count - 1; i >=0; i--) //逆序输出 {

if(a[i]>=10)//十六进制要特殊处理 {

printf(\ } else {

printf(\ } }

printf(\

}

— 精选文库

3

— 精选文库

4

软通动力笔试(带参考答案)

答案仅供参考一、改错题1.找出以下两处逻辑错误(非编程规范)并改正char*getErrorString(interrcode){charerrorString[]=\charerrorString2[]=\switch(errcode){case1:r
推荐度:
点击下载文档文档为doc格式
3uxig6y3303ibqw7s1xb7s7tu43ow500ts6
领取福利

微信扫码领取福利

微信扫码分享