最开始的两家公司笔试面试题目
一家公司是学校聘请研究教育方面VR课件的公司,面试没几天,就收到了面试通过的消息,后面因为通过了另一家游戏公司而拒绝了。
另一家公司是一家游戏外企,在春熙路,当时笔试还可以,面试被问及到很多图形学的知识,不行被刷
C#知识
1.值类型,引用类型;装箱和拆箱:2.接口和类的继承。
3.String , StringBuilder区别。
4.C#与C++结构体的区别
5.sealed,const 和onlyread的区别; ""与null的区别
6.委托,delate :三种泛型委托
7.协程和多线程的区别?结构体和类的区别?
8.命名空间?unity 的命名空间-unityEngne
9.实现计时器的方法? Time eltatine:协程
计算机图形学
1.期末成绩,学了什么。
2.光照模型有哪些,公式?兰伯特 半兰伯特等3.3维模型组成? Mesh
4.如向将文理贴在模型上? uv坐标
5. 图片向格式有那些?
数据结构
数据结构有哪些?最熟悉什么?
Unity
1.碰撞器,触发器的区别。物体发生碰撞的几个过程?
2.Mesh下面有哪些字段(熟悉组件不的字段)顶点坐标,法线,纹理坐标,三角形绘制序列等
3.如何实现资源复用? 对象池
4.U3D脚本的生命周期? Awake一Start—— Update- FixedUpdate一LateUpdate -0nGUI一Reset一OnDisable一OnDestoy
5.如何实现UI界面的层级?图集的创建?图集的作用?
6.坐标空间有哪些?顺序?世界坐标系一屏幕坐标系--- GUI界面一视口..
天府四街某科技有限公司
公司主要是做棋牌类的带有赌博性质的游戏,当时公司成立没多久,很幸运的进去了。
当时笔试主要是针对lua和shader方面,大概记得几个:
1.lua实现类的继承
2.lua遍历查找某个数
3.shader实现半透明效果
4.优化
反正全是编程题和简答题。当时优化写了有对象池,面试就被问到了对象池
簇桥附近某科技有限公司
一家修马路的公司,公司很大,环境很好。当时面试感觉还可以,就是很多优化方面的不太懂,所以没过。
1.向量的加减
2.ngui和ugui的区别
3.用过的数据结构有哪些,优缺点
4.优化
5.字典和List的区别
还有一些想不起来了。。。
东郊记忆附近某科技有限公司
这个公司主要是做休闲小游戏的,据说两三个星期就能完成一款小游戏。当时谈得挺好的,说后面联系我,就再也没有联系了。
1.当时主要问了下为什么想跳槽
2.在原来公司的主要工作
3.当一款游戏改动后,如何做升级工作,用什么方法。
高新附近某科技有限公司
目前有三个项目组,有一个是二次元偏女性的。
2.代码用的是什么框架?MVC
3.说说你在公司做的项目
4.代码:单链表的增删查
5.只需要说出思路: 有一条一次可跑6只小猪的赛道,现在有38只,用最少的次数测出跑得最快的前三只
6.申请内存的方式:new
7.canvas的作用:
环球中心某科技有限公司
这个公司主要是做格斗,RPG类型的游戏,地点在环球中心,地理位置是真的不错,高大上,环境也很好。去应聘的时候公司正在招H5微信小游戏的。当时端午快到了,看到公司每个人都发了一盒粽子,一桶菜籽油,一袋米,恩,感觉福利不错,上班时间9:30-18:30.
基础
缺点:性能低,类调用时需要实例化,开销比较大,比较消耗资源。
前序遍历:根左右6423517
中序遍历:左根右3246157
后序遍历:左右根3241756
当时做题选择的是最简单的排序:冒泡法。还有更过的排序方法请见:十大经典排序算法
6.编写一个函数,当已知一个三角形边长a,b,c时,求其对应的三个夹角。
这个题应该算是很简单的,只要你了解三角形边与角之间的公式,直接变换公式就能写成程序。此题还需要调用反函数
C++部分
7.const *int a和const int *a,const int* const a有何区别?
后面那一块很懵逼,看不懂。C++里面的指针什么的真的很烦人,当时也没怎么学懂,需要了解的自己百度吧,推荐一个答案:const int *a与int *const a,const int *const a的区别
8.假设x=9999,以下函数的输出是多少?
1 int fun(int x)
2 { 3 int count=0; 4 while(x) 5 { 6 ++count; 7 x=x&(x-1); 8 } 9 }
恩,这个题也是醉了,没有输出语句,我怎么知道输出的是什么变量,恩,但是呢,又不能直接那样写,于是当时写的答案“输出语句呢,如果要输出count的值,输出结果应该是4”
9.编写一个函数模板,实现将输入的数组逆序,并存储到目标数组中,函数输入参数src,原函数组dst,目标数组int len数组长度。
大致说下思路:将原数组逆序取出,顺序存入目标数组
1 for(int i=len;i>=0;i--)
2 { 3 for (int j=0;j) 4 { 5 dst[j]=src[i]; 6 } 7 }
C#部分
10.ref和out有何区别?
(1)ref传进去的参数必须在调用前初始化,out不必,即:
1 int i;
2 SomeMethod( ref i );//语法错误 3 SomeMethod( out i );//通过
(2)ref传进去的参数在函数内部可以直接使用,而out不可:
1 public void SomeMethod(ref int i) 2 { 3 int j=i;//通过 4 //... 5 } 6 public void SomeMethod(out int i) 7 { 8 int j=i;//语法错误 9 }
(3)ref传进去的参数在函数内部可以不被修改,但out必须在离开函数体前进行赋值。
ref在参数传递之前必须初始化;而out则在传递前不必初始化,且在 ... 值类型与引用类型之间的转换过程称为装箱与拆箱。
11.阅读以下代码,程序输出是什么?
1 private class A
2 { 3 private int m_a; 4 public A(int _a) { m_a = _a;} 5 public virtual int GetA() 6 { 7 return m_a; 8 } 9 public int GetAA() 10 { 11 return m_a; 12 } 13 } 14 public class B : A 15 { 16 private int m_a; 17 public B(int _a) : base(_a) { m_a+=_a-1;} 18 public override int GetA() 19 { 20 return m_a; 21 } 22 } 23 var b = new B(12); 24 var a = b as A; 25 Console.WriteLine("GetA={0},GetAA={1}",b.GetAA(),a.GetA());
12.编写一个函数,输入指定长度,输出一个包含数字,大写字母,小写字母的随机字符串。要求:字符串的内容可选,即可以选择是否包含数字/大写字母/小写字母,且可选内容是否重复。
扩展
这两个扩展题,真的是,我的能力有限,没有思路。第一个题还能看懂题,后面一个题越看越懵逼,忘大佬解答。
13.选择你熟悉的一门语言,或者使用伪代码,实现以下功能:
一个矩形Rectangle包含左上角坐标(x1,y1),右下角坐标(x2,y2),width,height(宽,高)四个属性
bool intersect(Rectangle b) 判断是否与矩形B相交
bool contain(Rectangle b) 判断矩形b是否被包含在当前矩形中
可选:Rectangle Rotate(p,angle) 将矩形按照点p旋转angle角度,并返回旋转后的矩形。
14.假设现有M个人,分散在N各QQ群中,任何人可以属于一个或多个群,现在需要将M个人按照以下要求重新分成K个组:
重新分组后:
(1)每组成员是互斥的,即任意两个新组之间的交集是空的
(2)任意两组组成的冰机不是分组钱任意QQ群的子集。
(3)任意一组成员至少是1个分组的QQ群的子集。
(4)任意一组成员与任意其他QQ群的交集只能为空或等于该新分组自身。
选择你熟悉的一门语言或伪代码完成以上功能。
软件园E5某公司
1.怎样引用全局变量
2.局部静态变量和局部一般变量的区别
3.实现一个函数中的构造函数(有两个),析构函数,赋值函数等方法
4.#define A(x) x+x
b=5*A,问b的值
5.分别使用bool,int,float,指针与"零"做比较
6.写出下面程序的输出结果,并说出有什么问题
A(){ A(){ print("a"); } ~A(){ print("~a"); } } B():A{ B(){ print("b"); } ~B(){ print("~b"); } } main(){ A *pa=new B(); delete(*pa); }
7.矩阵运算
8.说你玩过的5个游戏及心得
9.说出你最熟悉的设计模式,并举例说明
10.写一个函数,实现在字符串n中查找子串M,并返回查找到的第一个下标
11.人,羊,菜,狼过河问题
12.写一个函数,查找任意一个数n,的连续几个数之和也为n.
笔试题暂时只记得这些了,下面说说面试吧
面试几乎全考的简历上的内容
1.说说你数学建模担任的角色,怎么建的模等
2.C++学了那些,针对你说的考
3.计算机图形学学了那些?,怎么画直线,裁剪算法有哪些,并说明怎么实现,渲染管道,矩阵的逆运算,在图形学中的意义
4.数据结构学了那些,队列和栈的区别,如何实现用两个栈实现队列的功能。
5.如何洗牌?
6.说说在原来公司的项目,好友列表怎么实现,无尽列表怎么实现?
7.编辑器扩展怎么实现?
8.lua怎么实现继承?
9.shader的光照模型知道那些
10.人工智能学过什么,说一说蚁群算法,蚁群算法怎么实现信息传递。蚁群算法在游戏中的应用:加入屏幕上有成千上万的子弹,如何判断子弹是否与玩家相撞(你不可能循环每个子弹判断)