C/C++面试题大汇总

2010年05月20日 11:27    发布者:诸葛孔明
内容预览:


1. 用预处理指令#define 声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL
我在这想看到几件事情:
1). #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)
2). 懂得预处理器将为你计算常数表达式的值,因此,直接写出你是如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。
3). 意识到这个表达式将使一个16位机的整型数溢出-因此要用到长整型符号L,告诉编译器这个常数是的长整型数。
4). 如果你在你的表达式中用到UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。

2. 写一个“标准”宏MIN,这个宏输入两个参数并返回较小的一个。
#define MIN(A,B) ((A) <= (B) (A) : ))
C\C++试题集 C\C++ Development 这个测试是为下面的目的而设的:

1). 标识#define在宏中应用的基本知识。这是很重要的,因为直到嵌入(inline)操作符变为标准C的一部分,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。
2). 三重条件操作符的知识。这个操作符存在C语言中的原因是它使得编译器能产生比if-then-else更优化的代码,了解这个用法是很重要的。
3). 懂得在宏中小心地把参数用括号括起来
4). 我也用这个问题开始讨论宏的副作用,例如:当你写下面的代码时会发生什么事?
least = MIN(*p++, b);

3. 预处理器标识#error的目的是什么?
...

下载:15763
该文章有附件资料,如需下载请访问 电脑版

网友评论

amingor168 2010年05月28日
:P功德無量:loveliness:
hkhxj 2010年05月29日
下来看看!
hkhxj 2010年05月29日
怎么出错了:(
hkhxj 2010年05月29日
还是不行:dizzy:
ccd306 2010年05月30日
这个值得收藏 面试用处很大
moqing2008 2010年05月30日
好东西,收了,谢谢!!
meter8888 2010年05月31日
看看
xiepeilin 2010年05月31日
下了看看怎么样
xiepeilin 2010年05月31日
谢谢呵呵!
ckman68 2010年06月02日
好像其他网上也有。
z_afei 2010年06月03日
好东西!
wxsfchy 2010年06月05日
好好好
benfulay 2010年06月23日
支持下!
长话短说 2010年07月16日
谢谢!
wangjun796 2010年08月04日
谢谢呵呵!
红豆 2010年11月20日
及时雨!谢谢
1640190015 2010年12月01日
好呀!
slds 2010年12月03日
挺好的
DANGOUDI 2010年12月04日
很不错的东西啊
maliang 2011年01月11日
留下了,谢谢分享!
bestlong 2011年09月19日
万分感谢楼主分享
!!!
fengfeng823 2013年07月28日
不错