技术面试题目及答案

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

时间有限公司技术部面试试题游戏开发类:编程题:1请写代码打印100之内的素数,讲求效率(请做你的解法的效率分析)2求m,n的最大公约数3输入10个字符串,打印出其中重复的字符串以及重复的次数4请画图例(UML最好),给出windows下的文件目录的设计模式5用多种方法对数据进行排序。(选择排序、插入排序、冒泡排序、快速排序等)技术问答题:1什么是单元测试?你用过哪些单元测试工具?他们的区别和好处各有哪些?你主要倾向于哪一种?2什么是编程规范?你倾向于什么样的规范?他的好处在哪?3什么是头文件依赖?你注意过这些问题吗?你注意过编译的时间吗?你怎么改进编译时间?4什么是面向对象?你在哪些方面用过面向对象?带来了什么好处?又有什么弊端?5什么是设计模式?使用设计模式有什么好处?列举你使用过的设计模式知识。6什么是“引用”?申明和使用“引用”要注意哪些问题?7面向对象的三个基本特征,并简单叙述之?8请尽可能举出你所知道的数据库备份与还原的方法9中断是什么?CPU在中断的时候做了些什么?10多任务系统里面,一个任务可以在占有资源的同时申请资源,这会导致什么情况?并简述发生这种情况的必要条件。数学题11-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、两种跳转方式分别是什么?有什么区别?有两种,分别为:jsp:includepage=included.jspflush=truejsp:forwardpage=nextpage.jsp”3、搜索引擎如何抓取网页和如何索引网页4、简述列举文档对象模型DOM里document的常用的查找访问节点的方法5、在IE中,HTML对象的ID可以作为document的下属对象变量名直接使用,在FF中不能,此兼容性问题如何解决?6、引入样式表的方式有几种?7、JavaScript是一门基于解释性的语言,它和java语言的区别?8、JS中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是什么?游戏美术类:考查对于PS,3DsMax(或MAYA),AE等软件的熟悉程度答案:编程题:1考察数据结构的知识点,这里可使用筛选法,该方法是大部分数据结构书籍都有讲解的算法,当然还有时间复杂度更低的算法(空间复杂度),但是因为求值范围为1-100,故综合来看,筛选法的效率是最高的。intmain(){int*sieve;intn;intiCounter=2,iMax,i;printf(“Pleaseinputmaxnumber:”);scanf(“%d”,&n);sieve=(int*)malloc((n-1)*sizeof(int));for(i=0;in-1;i++)sieve[i]=i+2;iMax=(int)sqrt(n);while(iCounter=iMax){for(i=2*iCounter-2;in-1;i+=iCounter)sieve[i]=0;iCounter++;}for(i=0;in-1;i++)if(sieve[i]!=0)printf(“%d”,sieve[i]);return0;}2、考察数据结构的知识点,求公约数的算法很多,可考虑效率较高的欧几里德递归算法,intgcd(intm,intn){inttemp=0;if(mn){temp=m;m=n;n=temp;}if(n==0)returnm;elsereturngcd1(n,m%n);}3、考察C++容器的知识,这里考察的MAPintmain(){stringstr;mapstring,intcontent;for(intcnt=0;cnt10;cnt++){cinstr;(content.insert(make_pair(str,0)).first)-second++;}mapstring,int::iteratorit=content.begin();for(;it!=content.end();++it)coutit-first”:”it-secondendl;return0;}4、考察数据结构,文件目录是一个树5、考察基础编程能力#includeiostreamusingnamespacestd;templateclassTvoidSwap(T*a,T*b){Ttemp;temp=*a;*a=*b;*b=temp;}/****************************************简单排序算法begin****************************************//**简单选择排序*A:以数组存放的无数数*n:数组A中从位置0到n排序(从小到大)*/templateclassTvoidSelectSort(TA[],intn){intsmall;for(inti=0;in-1;i++){//执行n-1趟small=i;//先假定待排序序列中第一个元素最小for(intj=i+1;jn;j++){//每趟扫描待排序序列n-i-1次if(A[j]A[small]){//如果扫描到一个比最小值元素还小的,则记下其下标small=j;}}Swap(&A[i],&A[small]);//最小元素与待排序序列中第一个元素交换}}/**直接插入排序*A:以数组存放的无数数*n:数组A中从位置0到n排序(从小到大)*/templateclassTvoidInsertSort(TA[],intn){for(inti=1;in;i++){//执行n-1趟intj=i;Ttemp=A[i];//待插入元素存入临时变量while(j0&&tempA[j-1]){//从后往前查找插入位置A[j]=A[j-1];//A[j-1]元素后移j--;//j指针前移}A[j]=temp;//待插入元素存入找到的插入位置}}/**冒泡排序*A:以数组存放的无数数*n:数组A中从位置0到n排序(从小到大)*/templateclassTvoidBubbleSort(TA[],intn){inti,j,last;i=n-1;while(i0){//最多进行n-1躺last=0;//将last赋值为0for(j=0;ji;j++){//从前往后进行相邻元素的两两比较if(A[j+1]A[j]){Swap(&A[j],&A[j+1]);//后者小,则交换last=j;//有交换,last置为j}}i=last;//如果一趟没有元素交换,则last为0}}/****************************************简单排序算法end****************************************//****************************************快速排序begin****************************************//**快速排序*A:以数组存放的无数数*left和right:A[left]和A[right]之间的元素排序*/templateclassTvoidQuickSort(TA[],intleft,intright){inti,j;if(leftright){//若待排序序列多于一个元素,则继续快速排序i=left;//游动指针i,jj=right+1;Swap(&A[left],&A[(left+right)/2]);//避免最坏境况发生do{//开始一趟快速排序,A[left]做为分割元素doi++;while(A[i]A[left]);//i指针从左往右找第一个大于等于分割元素的元素doj--;while(A[j]A[left]);//j指针从右往左找第一个小于等于分割元素的元素if(ij)Swap(&A[i],&A[j]);//若ij,则交换两个元素}while(ij);//若ij,则继续本趟排序Swap(&A[left],&A[j]);//交换分割元素A[left]和A[j]的位置QuickSort(A,left,j-1);//对低端序列快速排序QuickSort(A,j+1,right);//对高端序列快速排序}}/****************************************快速排序end****************************************//*对上面的几种排序算法,进行简单的测试*/intmain(){inta[5]={2,1,6,8,3};//SelectSort(a,5);//InsertSort(a,5);//BubbleSort(a,5);QuickSort(a,0,4);for(inti=0;i5;i++){couta[i];}coutendl;return0;}技术问答题:1、单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言,一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。主要单元测试工具:QTP:quicktestProfessional.,C++TEST2、规范编程内容:标识符规则---类,方法,变量,同时也是包名的规范由字母(汉语中的一个汉字是一个字母),数字,下划线和$组成,不能以数字开头。大小写敏感没有长度限制,不能有空格不能使用Java的关键字和保留字java中的关键字goto和const在java中虽然不再使用但是还作为保留字存在java中没有sizeof这个关键字了,java中的boolean类型的值只能用true和false,且这两个也是关键字enum枚举assert断言一个标识符尽量符合语义信息,提高程序可读性类名:每个单词首字母大写,变量和方法:第一个单词小写,后边的每个单词首字母大写包名:全部小写常量:全部大写以下划线分词局部变量:定义在方法中的变量(1)先赋值后使用(2)从定义变量的代码块开始到代码块结束(3)在同一范围内不允许两个局部变量发生命名冲突3、简单点说,对于一个vector<int>的函数,比如size(),如果在不同的cpp中出现,在这些文件编译的时候都要把vector<int>::size()编译一遍。然后在链接的时候把重复的函数去掉。很显然增加了编译时间。模板的声明是不编译的,更没有空间,它根本不是实际的类型或函数,编译器根本不管它。只有实例化的时候,才生成真正的类型、函数,而实例化的地方不在一起,必然造成同一个类型、函数被编译了多次。反观类的编译,只在它的cpp中编译一次,其他地方都使用它的

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功