招聘笔试题

北京中软常见笔试题和面试题答案

1.不许用中间变量,把String ABCDE 倒转

2.10000个数求第2大的数,不许用排序算法.

3.排序算法的测试用例

我的答案:

1.

1. include "stdafx.h"

1. include

1. include

using namespace std;

int _tmain(int argc, _TCHAR argv[])

{

char ps = new char[15];

strcpy_s(ps,15,"I am yuchifang");

cout<<"before reverse:"<

cout<

int i = 0;

int j = 13;

while(i

{

ps[i] = ps[i]+ps[j];

ps[j] = ps[i]-ps[j];

ps[i] = ps[i]-ps[j];

i++;

j--;

}

cout<<"after reverse"<

cout<

return 0;

}

这是我在中软国际面试的一些题目,看你会吗?

1、Java中的属性和字段有什么区别? --这个是当时考我的一道题,我不会啊!!!!!!!!!

2、C/C++你更熟悉那个?C++中的虚函数用在什么地方?JAVA中的虚函数呢?(我没记得Java中还有这个)

3、你对数据库中存储过程了解多少?说说。

4、假如微软给你500万美元项目经费,你怎么利用它?

5、你对考研是什么态度?

6、你对加班是什么态度? 这个答案项目经理说出来后我感觉太现实了,你猜他怎么说的?和IT人有关的

7、Why do you …… ICS&S? (我忘具体怎么说的了,大意就是问你为何要来中软国际?人家可是用全英语问的,说的挺快的,幸好我听懂一点)

问题太多了,大多是技术问题,不过都和知识要点有关,不考太难的太复杂的,不过我还是大部分不会啊!!!英语会让你就自己喜欢的方向作简介呢。难,要我说就完了。

先想出这多了,下次再写,技术问题好多,有空把笔试题给大家看看,唉!

、、、、、、、、、、、、、、、、、、、、、、

题目为写算法生成随机4位数,要求每位数字不同.

Solution:

有个隐含条件,即第一个数字不能为0.  以下是我初步的javascript解法:

function rand4(){

var arr = new Array();

var index = 0;

var tempNum;

while(index<4){

tempNum = Math.round(Math.random()9);

if(!(index==0 && tempNum==0)){

//hold point

if(arr[tempNum]== null){

arr[tempNum] = tempNum;

++index;

}

}

}

var ret = 0;

for(var i in arr){

if (ret != 0){

ret = 10;

}

ret += parseInt(i);

} alert(ret);

return ret;

}

我相信会编程的人都会写出这个算法. 基本上是很普通的.这个算法有个不愉快的地方就是hold point那块,成功率为100%(第一次),90%(第二次),80%(第三次),70%(第四次),越来越低,不过只要不低于50%,程序效率还不会打折扣.

以下是我的第二种写法,用空间换了点时间,用C++语言写的:

1. include

1. include

using namespace std;

class Rand4{

private:

int a[10];

int getNum(int index){

while(a[index]==-1){

++index;

index %= 10;

}

int ret = a[index];

a[index] = -1;

return ret;

};

void init(){

for(int i=0;i<10;++i){

a[i] = i;

}

};

public:

int Next(){

init();

int ret = (rand()%10) 1000;

int index = 100;

int time = 3;

while(time>0){

ret += getNum((rand()%10))index;

index /= 10;

--time;

}

return ret;

};

};

int main(int argc, char argv[])

{

Rand4 r4;

cout<

cout<

cout<

system("PAUSE");

return 0;

}

此法的时间复杂度为正宗的O(n),空间开销(不包含调用库函数的)就比前一个例子多了些.

此法在n取m的随机计算中,m从0一直到趋近于n, 效率都是不变的.

其他的高效方法暂时还没有想出.

大家都在看