Kingsoft西山居笔试试题

一.填空题:

1.       Char szTest[]=”12345\t\n\0abcd\0”; strlen(szTest)值为____, sizeof(szTest)值为___

2.       Int anTest[5][10]; int n1= &anTest[4]- &anTest[10], n2= &anTest[3][1]- &anTest[1][3]; n1 的值为_____.

3.       Char szNum[]=”123456789”; int n= *(short*)(szNum+ 4)- *(short*)(szNum); n 的值为_____.

4.       STL中二分查找算法函数名称为____,稳定排序算法函数名称为_____,部分排序算法函数名称为____.

5.       STL map 通常是用数据结构中的___实现。

6.       下面的函数是求两个数的较大者,请填空(只能填入一条语句):

Int max( int a, int b )

{

Return ______;

}

7.       下面程序的运行结果是:____

#include <iostream>

Int cc( int I )

{

For( ; i< 4; )

Std::cout << cc( ++I );

Return I;

}

 

Int main()

{

Cc(1);

Return 0;

}

8.       要增加一个类到某种类型的隐式转投可通过重载____操作符实现。

9.       C++ 64位编译环境下,sizeof(int)= ___, sizeof(int*)= ____

10.   列举 c++0x 的任意三个新特性___,____,_____.

11.   填入下面缺失的语句:

Unsign ed int strlen( const char* pstr )

{

__asm{

             Mov eax, pstr

             Cmp byte pst[eax], 0

       Jz zreturn

Zloop:

             _________

             Cmp byte ptr[eax], 0

      Jnz zloop

Zreturn:

            Sub eax, pstr

}

}

 

二.诊断题:(下面的说法如正确直接回答正确即可,如错误说明原因)

1.       全局变量和静态变量在内存中的存储位置是相同的

2.       Windows 操作系统中进程是基本的执行单位

3.       在栈上分配内存和在堆上分配内存效率是一样的

4.       Sizeof属于c++的内联函数

5.       构造函数只能定义为public而不能定义为procted private

6.       C 语言的 qsort c++ sort 都采用了快速排序算法,但 c 语言的效率比 c++ 的高,所以 qsort sort

7.       new [] 分配内存如果用 delete 释放,结果是一定会造成内存泄露

8.       全局对象及静态对象在 main 函数执行之前构造

 

三.问答题

1.       Unresolved external symbol 是什么错误?出现的原因是什么?

2.       线程死锁的原因是什么?要防止死锁我们在多线程编程中要注意什么?

3.       什么叫哈希算法?它有些什么应用?

4.       列举 Windows 操作系统中进程注入的方式

5.       请从程序机制上解释缓冲区攻击原理

6.       简述 copy-on-write 机制及其有哪些应用?

7.       解释以下函数声明中三个 const 的作用:

Template<class T> void Fun( const T* const& p ) const;

 

四. 程序题

1. 以下函数功能为把传入的两个整数值存到一个 Buffer 里面,完成函数实现。

Bool  StoredDataToBuff( int a, int b, char* pBuffer, unsigned int uBufferSize);

 

2. 100 个苹果要完全随机地分配给4个人,每个人都可能得到0-100个苹果,请设计一个随机分配算法,要求:

在结果随机(不可预知)的基础上,每种分配结果的概率都是均等的,比如(25252525)是一种分配结果,(000100)也是一种分配结果,这两种结果出现的机率是一样的。

 

3. 某游戏服务器最多能同时接受 N 个连接,当游戏客户端连接服务器时,服务器分给该连接分配一个连接 ID ID的范围1-N ),当游戏断开时该 ID 会回收重用。请设计并实现一个 ID 分配器。说明:

1)。 ID分配给一个连接后,在该ID被回收前不能再次分配

2)。若无已可分配的 ID 即同时连接数达到上限),则分配失败,返回0

你可能感兴趣的:(游戏,C++,c,算法,C#)