看似简单,但是经常出错的微软面试题(C/C++)1

本文介绍了微软一道看似简单的面试题——将字符串转换为整数,但实际涉及到空指针、正负号、前导零、错误输入、数值范围和溢出等边界及错误处理问题。提供了一个较为完整的C/C++实现,通过实例展示了解决这些问题的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在面试过程中,不少人有这样的经历。笔试题感觉做的很好,但是没有应聘上。为啥?看似简单的问题,面试官的要求就越高,这时候需要考虑的问题的方方面面,一不小心,就大意失荆州。

下面看一个简单的微软面试题:把一个字符串转换成整数。大多数人,一看到这个标题,大多数人觉得“小意思”,我不到三分钟就搞定它。

你会不会,微软的人太弱智了吧。不好意思,你被拒绝了。

对于简单的程序,除了完成基本的功能外,还要考虑边界处理,错误处理等等。对于这道题,完成转换时基本的要求。

完整的程序你需要考虑的问题有:

1:指针处理,比如空指针

2:正负号处理,比如 str="-123456";

3:字符前的 0 字符问题,比如 str="00000123456";

4:错误的输入,比如 str="123abc456";

5:最大正整数和最小正整数

6:溢出

下面为一个比较完整的程序:

Ubuntu10.4 结果:

val = -2147483648

 

注释在程序中。各位,觉得这个程序不简单了吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值