最近打算换工作,于是投了几份简历
有些面试题,写出来供其他朋友看看。其实很多面试题都是重复过的,面试前多看看,会有帮助的,其实我也比较喜欢投机取巧,呵呵。
其中记忆深点的写下,基础知识考试就不写了。
题目1 某人上台阶,一次上2格,最后剩1个;一次上3格,最后剩2个;一次上4格,最后剩3格;一次上5格,最后剩4格;一次上6格,最后剩5格;一次上7格,刚好上完。问此楼梯最少多少格?
题外话:一次上6格,以为是超人呀。我最开始是从7的倍数试起,后来又想想,终于看出了一些好的方法。
解答:
x % 2 = 1;
x % 3 = 2;
x % 4 = 3;
x % 5 = 4;
x % 6 = 5;
由上可以看出,(1) 此数为 2,3,4,5,6的公倍数减1. 即使 n*60 - 1, (2) 此数为 7的倍数。
结果测试 n = 2时,x = 119 符合要求。
题目2 写出 char* strcpy( char* strDest, const char* strSource );
别说,我以前还真没有写过,练练手也好。
char* strcpy( char* strDest, const char* strSource )
{
// 无效指针,直接返回 NULL
if( NULL==strDest || NULL==strSource )
return NULL;
// 保存返回结果
char* strResult = strDest;
//
// 复制操作
//
while( *strSource != 0 )
{
*strDest++ = *strSource++;
}
*strDest = 0; // 字符串以 '/0' 结尾
return strResult;
}
题目 3 关于sizeof操作的。只写其中一个比较具有欺骗性的。
void fun( char a[100] )
{
unsigned short i = sizeof(a);
}
i = 4;
表面上看是个数组,其实传递过来的是个指针。
题目4 关于倒置一个单向链表的( 另外一家公司的 )。
用到递归调用,在所做的项目中,很少有此应用的,居然搞了半个小时,才搞定。
题目5 分金条:
一根7节的金条,只能被切断2次,一个员工,要求每天都要给一节作为报酬,一周7天,怎么分?
这种题目都做滥了,没有新意。分成 1,2,4,具体怎么组合看看二进制怎么组合成对应的数就可以了。