| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 624 人关注过本帖
标题:华为考试题
只看楼主 加入收藏
wsj3000
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:78
专家分:161
注 册:2009-8-4
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:8 
华为考试题
哈哈,同事去华为应聘(软件测试部门),给了一个考试题。简单但是很有深度,有兴趣的同学,试试:

把整数值转换为字符串,给定函数声明:
char * itoa(int a);


----------------------------------------------
大家凑凑,过几天我贴出自己的程序,比我优秀的话,就给分喽。

-----------------------------------------------
我的程序在9楼,这个程序需要注意几个问题:
(1)静态变量的大小。
(2)如果有负号怎么办。
(3)输出的顺序不能错。

[ 本帖最后由 wsj3000 于 2014-3-27 16:53 编辑 ]
搜索更多相关主题的帖子: 考试题 字符串 华为 
2014-03-27 11:04
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:5 
char * itoa(int a);
就这函数原型来说,这家公司别去了。你如何设计才能同时保证
a. 由资源申请者释放资源
b. 线程安全
2014-03-27 11:54
fragileeye
Rank: 5Rank: 5
等 级:职业侠客
威 望:2
帖 子:107
专家分:387
注 册:2011-5-21
收藏
得分:5 
线程安全不谈了,就ls所说的a,这是做不到的。
2014-03-27 12:02
韶志
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:斗气大陆
等 级:贵宾
威 望:44
帖 子:2223
专家分:13592
注 册:2013-3-22
收藏
得分:5 
带不带用sprintf   

算了   当我没说

三十年河东,三十年河西,莫欺少年穷!
2014-03-27 12:06
wsj3000
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:78
专家分:161
注 册:2009-8-4
收藏
得分:0 
当然不带sprintf。。。
2014-03-27 12:56
wsj3000
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:78
专家分:161
注 册:2009-8-4
收藏
得分:0 
回复 2楼 rjsp
整型转成字符串。。。。。。这个只是测试部门的考试题,测试编程基本功,编程思维的。
--------------------
的确不是线程安全的,不可避免用到静态变量。

[ 本帖最后由 wsj3000 于 2014-3-27 13:05 编辑 ]
2014-03-27 12:58
蚕头燕尾
Rank: 10Rank: 10Rank: 10
来 自:Gryffindo
等 级:贵宾
威 望:12
帖 子:734
专家分:1546
注 册:2013-3-24
收藏
得分:5 
先留个名,改天来看楼主公布的代码。


学习编程,为的是表达自己的思想,而不是被别人的思想所禁锢。要先明白自己想干嘛,而不要先问别人让你干嘛。               

                                                                                                                    Black Cat      Hello Tomorrow~
2014-03-27 14:38
wsj3000
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:78
专家分:161
注 册:2009-8-4
收藏
得分:0 
。。。。。。写的差不多了。。
2014-03-27 15:58
wsj3000
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:78
专家分:161
注 册:2009-8-4
收藏
得分:0 
程序代码:
char * itoa(int a)
{
    static char str[sizeof(int)*3+2]; //1 for negative token, 1 for string end token.
    int i = 0;
    int negative=0;
    int len = sizeof(str);
    
    //check if negative
    if(a<0)
    {
        negative = 1;
        a = -a;
    }
    
    str[len-1]='\0';
    for(i=len-2; i>0 && a != 0; i--)
    {
        str[i] = (char)(a%10+'0');
        a /= 10;
    }
    
    if(negative != 0)
        str[i]='-';
    else
        i++;
    
    return &str[i];
}

2014-03-27 16:50
快速回复:华为考试题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023431 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved