1、解释下面函数所要实现的功能
const char * func( const char *a1, const char *a2 )
{
while( *a1 )
{
int j;
for( j = 0; a1[j] && a2[j]; ++j )
{
if( a1[j] != a2[j] )
{
}
++a1;
break;
}
if( !a2[j] )
return a1;
if( !a1[j] )
return nullptr;
}
return nullptr;
}
2、什么是类,什么是对象,二者有什么区别?
3、说说你对重载、继承、重写、多态的理解
4、public、protected、private 在 C++/C#中有什么作用?
5、C++/C#中如何防止一个类被实例化?
6、下面代码有什么问题,为什么?
class A
{
};
class B : public A
{
};
A* pa = new A();
B* pb = new B();
A* a = pb;
B* b = pa;
7、new 和 malloc、delete 和 free 的区别
8、不用中间变量,将 a,b 交换
9、x & (x + 1 ) == 0 x 满足什么条件使这条表达式结果为 true
10、假设每份考卷都有一个 8 位二进制序列号。当且仅当一个序列号含有
偶数个 1 时,它才是有效的。例如,00000000、01010011 都是有效的序列
号,而 11111110 不是。那么,有效的序列号共有() 个
11、说一下线程和进程有什么区别,线程之间,进程之间分别是如何通信的。
12、描述一下 TCP 的 3 次握手,和 UDP 有什么差别?举几个你知道的基于 TCP
或者 UDP 的通信协议
13、说一说堆和栈的区别,C++/C#语言中哪些内存会分配在栈上,哪些分配在
堆上?
14、用你熟悉的任意语言输出以下内容
public void Input()
{
}
for(int i = 1; i < 10; ++i)
{
}
for(int j = 1; j < 10; ++j)
{
}
Debug.Log(string.Format("{0}*{1}={2}",i,j,i*j));
15、什么是向量?什么是向量的点乘、叉乘,写出数学公式,并说明其几何意
义
16、如下图,已知 L 向量和法线 N,求 P 向量
17、说明以下几个 Unity 事件函数的执行顺序:
Start、Update、OnEnable、OnDisable、OnDestroy、FixedUpdate、LateUpdate 、
Awake
18、Unity 资源加载方式有几种,分别是什么?
19、Unity 中如何开启一个协程,有什么条件?简单说明一下你对协程工作原理
的理解。
20、Unity 中的一个对象如果想要被碰撞检测到,需要具备什么条件?
21、简单说明一下值类型和引用类型的区别
22、ArrayList 和 List 之间的主要区别是什么?