请大牛帮忙

rurulolih 2011-04-18 06:52:02
今天去面试一个软件外包的C++题目,结果被鄙视了:请各位帮忙解答下。

A:请问运行Test 函数会有什么样的结果?
void GetMemory(char *p)
{
p = (char *)malloc(100);
}
void Test(void)
{
char *str = NULL;
GetMemory(str);
strcpy(str, "hello world");
printf(str);
}
-----------------------------------------



B:已知strcpy 函数的原型是
char *strcpy(char *strDest, const char *strSrc);
其中strDest 是目的字符串,strSrc 是源字符串。
不调用C++/C 的字符串库函数,请编写函数 strcpy




----------------------------------------
C:交换两个int数,不用第三块儿内存:
...全文
55 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
rurulolih 2011-04-18
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tandyt 的回复:]

别去软件外包,累得不得了,且木有多大钱图啊。。。。。。

C/C++ code

A:请问运行Test 函数会有什么样的结果?
.....
-------------------------------------
/*
答:程序崩溃。
因为GetMemory 并不能传递动态内存,
Test 函数中的 str 一直都是 NULL。
strcpy(str, "hello world");将使……
[/Quote]

菜鸟,能去外包很不错了,哎,这世道
TandyT 2011-04-18
  • 打赏
  • 举报
回复
别去软件外包,累得不得了,且木有多大钱图啊。。。。。。


A:请问运行Test 函数会有什么样的结果?
.....
-------------------------------------
/*
答:程序崩溃。
因为GetMemory 并不能传递动态内存,
Test 函数中的 str 一直都是 NULL。
strcpy(str, "hello world");将使程序崩
溃。*/
--------------------------------------------------
//B:已知strcpy 函数的原型是
char *strcpy(char *strDest, const char *strSrc);
.......

//答:
char *strcpy(char *strDest, const char *strSrc);
{
assert((strDest!=NULL) && (strSrc !=NULL));
char *address = strDest;
while( (*strDest++ = * strSrc++) != ‘\0’ )
NULL ;
return address ;
}

--------------------------------------------------
//C:交换两个int数,不用第三块儿内存:
//答:
//方法1:
void swapvalue2(int &a,int &b)
{
//这种方法不好之处是有可能会导致加法或者减法运算结果溢出
a=a+b;
b=a-b;
a=a-b;
}

//方法2:
//用位操作实现:
void swapvalue(int &a,int &b)
{
a=a^b;
b=a^b;
a=a^b;

}

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧