|
|
发表于 2006-11-15 21:37:00
|
显示全部楼层
Re:程序面试试题(节选)
新手一个试着来回答一下 楼主看对不?大家也给打个分,不及格再重新修炼
1.#define为编译器预处理,define的东西在程序中无法获得类型检查,这是它的缺点,优点就是用在头文件的定义里面,可以解决重复定义的问题。const就是可以用来类型检查,减少出错的机会。
2.strlen函数从来没有用过=.=。看名字应该是得到一个字串的长度。实现么,who知道它高效不高效。我来实现的话就while( *p++ != '\0' ) i++;
3.匈牙利命名法优点,看见变量名就可以知道这个名字的类型。缺点,在强类型的语言里面作用不大,类型会检查,而这个名字还有可能把程序弄的混乱
4.assert和防错代码的区别还真不太清除。就知道assert是断言,记得是debug版里面会起作用,而且直接退出能给编程序的提个醒。防错代码不知道你是什么意思?指C++的异常么?我
看应该是对一种小错误的自我恢复功能。
5.工厂模式(用分类的法子建立对象)和好莱坞模式(你别呼我,需要的时候我会呼你),还知道一个(?),就是使用return (*this),意为无论它是什么,给我来一个一样的。
6.真讨厌手工写代码呃,没有vs2005我怕把成员名给记错呃,这个应该不用注释了吧。变量命名按照习惯、时间复杂度(虾米意思?)、空间复杂度(这个更加是虾米意思?)
list<?>::const_iterator p = list.rbegin();
int i=0;
while(p!=list.rend())
{
p++;
i++;
if(i==M) break;
}
欢迎大家打分,别乱打呃~_~ |
|