技术面试题目及答案

时间有限公司技术部面试试题

游戏开发类:

编程题:

1 请写代码打印100之内的素数,讲求效率(请做你的解法的效率分析) 2 求m,n的最大公约数

3 输入10个字符串,打印出其中重复的字符串以及重复的次数 4 请画图例(UML最好),给出windows下的文件目录的设计模式 5用多种方法对数据进行排序。(选择排序、插入排序、冒泡排序、快速排序等) 技术问答题:

1 什么是单元测试你用过哪些单元测试工具他们的区别和好处各有哪些你主要倾向于哪一种 2 什么是编程规范你倾向于什么样的规范他的好处在哪

3 什么是头文件依赖你注意过这些问题吗你注意过编译的时间吗你怎么改进编译时间 4 什么是面向对象你在哪些方面用过面向对象带来了什么好处又有什么弊端 5 什么是设计模式使用设计模式有什么好处列举你使用过的设计模式知识。 6 什么是“引用”申明和使用“引用”要注意哪些问题 7 面向对象的三个基本特征,并简单叙述之

8 请尽可能举出你所知道的数据库备份与还原的方法 9 中断是什么?CPU在中断的时候做了些什么?

10 多任务系统里面,一个任务可以在占有资源的同时申请资源,这会导致什么情况?并简述发生这种情况的必要条件。 数学题

1 1-9这9个数字中,选3个出来,其和为奇数的组合有几个? 2 请把16进制数270F转化为十进制数

游戏策划类:

关于游戏的了解:

1.您从什么时候开始接触游戏的(不论是街机或者是电视游戏,还是电脑游戏)?第一眼见到游戏的时候,您感觉如何?您觉得现在的游戏怎么样?

2.游戏的哪些因素是您最关注的,画面、剧情、音乐、整体流畅感和平衡性?哪些类型的游戏您最喜欢玩?

3.在您玩游戏的时候,突然游戏出现某个漏洞,您的感觉是?

4.请问你使用过何种游戏修改工具,特别擅长哪种,请就你熟悉的一款单机游戏把里面一段数据完整的分析出来

5.请问您知道BUG一次的含义吗?游戏中的致命BUG一般频繁出现在什么地方?所谓致命BUG:就是能让一款游戏玩家人数锐减的那种啦,如:游戏金钱方面的,游戏平衡方面的等等。 6.如果您玩网络游戏的话,举几个你曾经在网络游戏中发现的BUG,最好是你站在玩家的立场上看,觉得可利用价值最高的BUG,然后简述一下当时发现的情景和过程。

7.在熟悉或者通关游戏之后您会为您付出的这段游戏时间写点东西吗?或者会下其余时间研究研究您玩过的这款游戏?

8.您关注游戏市场上的行情吗?请就你熟悉的游戏类型对现在的游戏市场简要说明一下。分为以下三方面:手机游戏市场,电视游戏和单机市场,网络游戏市场。

Web前端开发类:

1、CSS+DIV开发Web页面的优势有哪些?

2、两种跳转方式分别是什么有什么区别 有两种,分别为:

3、搜索引擎如何抓取网页和如何索引网页

4、简述列举文档对象模型DOM里document的常用的查找访问节点的方法

5、在IE中,HTML对象的ID 可以作为document 的下属对象变量名直接使用,在FF中不能,此兼容性问题如何解决?

6、引入样式表的方式有几种?

7、JavaScript是一门基于解释性的语言,它和java语言的区别?

8、JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?

游戏美术类:

考查对于PS,3DsMax(或MAYA),AE等软件的熟悉程度

答案: 编程题:

1 考察数据结构的知识点,这里可使用筛选法,该方法是大部分数据结构书籍都有讲解的算法,当然还有时间复杂度更低的算法(空间复杂度),但是因为求值范围为 1 - 100 ,故综合来看,筛选法的效率是最高的。 int main() {

int *sieve; int n;

int iCounter=2, iMax, i;

printf(“Please input max number:”); scanf(“%d”, &n);

sieve=(int*)malloc((n-1)*sizeof(int)); for(i=0;i

iMax = (int)sqrt(n);

while (iCounter<=iMax) {

for (i=2*iCounter-2; i

if (sieve[i]!=0) printf(“%d ”,sieve[i]); return 0; }

2、考察数据结构的知识点,求公约数的算法很多,可考虑效率较高的欧几里德递归算法 ,

int gcd(int m,int n){ int temp = 0; if(m < n){ temp = m; m = n; n = temp; }

if(n == 0) return m; else

return gcd1(n, m%n); }

3、考察 C ++容器的知识,这里考察的 MAP int main() {

string str;

map content;

for( int cnt = 0; cnt < 10; cnt++ ){ cin >> str;

(content.insert(make_pair(str, 0)).first)->second++; }

map::iterator it = content.begin(); for( ; it != content.end(); ++it )

cout << it->first << ”: ” << it->second << endl; return 0; }

4、考察数据结构,文件目录是一个树 5、考察基础编程能力

#include using namespace std; template void Swap(T *a, T *b) { T temp; temp = *a; *a = *b; *b = temp; }

/**************************************** 简单排序算法 begin ****************************************/ /*

* 简单选择排序

* A: 以数组存放的无数数

* n: 数组A中从位置0到n排序(从小到大) */

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4