免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 23482 | 回复: 60
打印 上一主题 下一主题

今天去华为的一道面试题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-09-24 17:33 |只看该作者 |倒序浏览
int getmemory(char **p, int num)
{
    if (NULL == p)
        {
                assert(0);
            return -1;
        }

        *p = (char *)malloc(num);
        return 1;
}


void main()
{
    char *str = NULL;
       
        if (1 == getmemory(&str, 100))
        {
            scanf("%s", str); //假定不会超出分配的内存空间
                printf(str);
                free(str);
        }
    return;
}

今天在华为的一道面试题,要求找出不能输出所输入字符串的原因。

我实在是没想到有什么问题,结果我就空在那里了,晕,但是面试官说我面试通过了,操他妈的,什么玩意儿。
我回来在vc++6.0上面编译运行,没问题啊,太奇怪了,难道是忽悠?

请各位大侠指教。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
2 [报告]
发表于 2010-09-24 17:43 |只看该作者
sb 出的个面试题目,

根据我以前的经验, 华为大招聘会上的面试题目 出的质量还可以。

遇到 某个组 临时叫你到他们地下食堂去面试,  出的题狗屁不通的多的是。

论坛徽章:
0
3 [报告]
发表于 2010-09-24 17:43 |只看该作者
自己顶,希望有高人来看看。

论坛徽章:
0
4 [报告]
发表于 2010-09-24 17:48 |只看该作者
回复 2# goldenfort


    看来你说的有道理。多交流

论坛徽章:
0
5 [报告]
发表于 2010-09-24 17:52 |只看该作者
LZ贴出的是一道常见的面试题的标准答案。不知道华为是什么用心?


//原题
int getmemory(char *p, int num)
{
    if (NULL == p)
        {
                assert(0);
            return -1;
        }

        p = (char *)malloc(num);
        return 1;
}


void main()
{
    char *str = NULL;
        
        if (1 == getmemory(str, 100))
        {
            scanf("%s", str); //假定不会超出分配的内存空间
                printf(str);
                free(str);
        }
    return;
}

这是原题代码,问:为什么上面代码不能输出输入字符串的值?


不能输出的原因大家都清楚。


修正后的代码就是LZ贴出来的代码了

论坛徽章:
0
6 [报告]
发表于 2010-09-24 18:08 |只看该作者
原题还稍微有点点出入,原题把几个常数定义成宏了,我这里懒得写宏了。
题目是想将输入的字符串输出,让我找错误,而且只有一个,基本上忽略编码规范等漏洞
我觉得没错嘛,是不是这个题目本来就是没问题的,考对方的心理呢?

论坛徽章:
0
7 [报告]
发表于 2010-09-24 18:13 |只看该作者
回复 5# shexinwei

你贴的这段代码,错误很明显,我知道问题所在
但是我仔细的看过了题目,题目就是传的二级指针。我觉得没什么问题,最后我题目空着,他们也没说我,靠

论坛徽章:
0
8 [报告]
发表于 2010-09-24 18:32 |只看该作者
华为威武,呵呵

论坛徽章:
2
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:56:11
9 [报告]
发表于 2010-09-24 19:13 |只看该作者
难道问题就是printf的著名的%格式符不能输出。缺少参数(错误参数)

论坛徽章:
0
10 [报告]
发表于 2010-09-24 19:25 |只看该作者
{:3_183:}
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP