首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

请问三道面试题,求高手解答

2012-04-02 
请教三道面试题,求高手解答!本人完全新手,请高手给解答下1、程序排错简单讲一下如何在开发中防止或处理以下

请教三道面试题,求高手解答!
本人完全新手,请高手给解答下
1、程序排错
简单讲一下如何在开发中防止或处理以下错误:
空指针调用,字符串长度超出数组长度,内存忘记释放,用户输入不合理,Windows API调用失败
2、程序逻辑
完成函数void swall(char* str)实现功能,将字符串的前半截和后半截交错排列(假定str长度为偶数)。例如调用前str=”abcdABCD”,则调用后str=”aAbBcCdD”。
3、用C++编写一个类,模仿一个自动售货机。顾客可以选择:购买可乐(3元)、雪碧(2元)或橙汁(4元),结账(输出找零或者不够的差额)。再写一个测试这个类的函数。可以从下面这个类派生。
class IsaleMachine{
public:
virtual bool buyKele()=0;
virtual bool buyXuebi()=0;
virtual bool buyChengzhi()=0;
virtual int pay(int money)=0;
};

[解决办法]

C/C++ code
//str=”abcdABCD”,则调用后str=”aAbBcCdD”void swall(char* str){    int length = strlen(str);    char* temp = new char[length+1];    strcpy(temp, str);    temp[length] = '\0';    for (int i=0; i<length; i++)    {        if (i%2==0)        {            str[i] = temp[i/2];        }        else            str[i] = temp[length/2+i/2];    }    delete[] temp;}
[解决办法]
空指针调用,字符串长度超出数组长度,内存忘记释放,用户输入不合理,Windows API调用失败

先判断指针是否为空,判断字符串的长度是否超过规定长度, 有new不要忘记delete。有if就要else。
[解决办法]
完成函数void swall(char* str)实现功能,将字符串的前半截和后半截交错排列(假定str长度为偶数)。例如调用前str=”abcdABCD”,则调用后str=”aAbBcCdD”。

这个就简单了吧,

热点排行