技术面试题目及答案_第1页
技术面试题目及答案_第2页
技术面试题目及答案_第3页
技术面试题目及答案_第4页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、_时间有限公司技术部面试试题游戏开发类:编程题:1 请写代码打印100 之内的素数,讲求效率(请做你的解法的效率分析)2 求 m,n 的最大公约数3 输入 10 个字符串,打印出其中重复的字符串以及重复的次数4 请画图例( UML 最好),给出 windows 下的文件目录的设计模式5 用多种方法对数据进行排序。(选择排序、插入排序、冒泡排序、快速排序等)技术问答题:1 什么是单元测试?你用过哪些单元测试工具? 他们的区别和好处各有哪些? 你主要倾向于哪一种 ?2什么是编程规范?你倾向于什么样的规范?他的好处在哪 ?3什么是头文件依赖?你注意过这些问题吗?你注意过编译的时间吗?你怎么改进编译时

2、间 ?4什么是面向对象?你在哪些方面用过面向对象? 带来了什么好处?又有什么弊端 ?5 什么是设计模式?使用设计模式有什么好处?列举你使用过的设计模式知识。6 什么是“引用”?申明和使用“引用”要注意哪些问题 ?7 面向对象的三个基本特征,并简单叙述之?8 请尽可能举出你所知道的数据库备份与还原的方法9 中断是什么? CPU 在中断的时候做了些什么?精品资料_10 多任务系统里面,一个任务可以在占有资源的同时申请资源,这会导致什么情况?并简述发生这种情况的必要条件。数学题1 1-9 这 9 个数字中,选3 个出来,其和为奇数的组合有几个?2 请把 16 进制数 270F 转化为十进制数游戏策划

3、类:关于游戏的了解:1.您从什么时候开始接触游戏的(不论是街机或者是电视游戏,还是电脑游戏)?第一眼见到游戏的时候,您感觉如何?您觉得现在的游戏怎么样?2.游戏的哪些因素是您最关注的,画面、剧情、音乐、整体流畅感和平衡性?哪些类型的游戏您最喜欢玩?3.在您玩游戏的时候,突然游戏出现某个漏洞,您的感觉是?4.请问你使用过何种游戏修改工具,特别擅长哪种, 请就你熟悉的一款单机游戏把里面一段数据完整的分析出来5.请问您知道BUG 一次的含义吗?游戏中的致命BUG 一般频繁出现在什么地方?所谓致命 BUG :就是能让一款游戏玩家人数锐减的那种啦,如:游戏金钱方面的,游戏平衡方面的等等。精品资料_6.如

4、果您玩网络游戏的话,举几个你曾经在网络游戏中发现的BUG ,最好是你站在玩家的立场上看,觉得可利用价值最高的BUG ,然后简述一下当时发现的情景和过程。7.在熟悉或者通关游戏之后您会为您付出的这段游戏时间写点东西吗?或者会下其余时间研究研究您玩过的这款游戏?8.您关注游戏市场上的行情吗?请就你熟悉的游戏类型对现在的游戏市场简要说明一下。分为以下三方面:手机游戏市场,电视游戏和单机市场,网络游戏市场。Web 前端开发类 :1、 CSS+DIV开发 Web 页面的优势有哪些?2、两种跳转方式分别是什么?有什么区别 ? 有两种,分别为:<jsp:include page="inclu

5、ded.jsp" flush="true"><jsp:forward page= "nextpage.jsp”>3、搜索引擎如何抓取网页和如何索引网页4、简述列举文档对象模型DOM 里 document的常用的查找访问节点的方法5、在 IE 中, HTML 对象的 ID 可以作为document的下属对象变量名直接使用,在FF 中不能,此兼容性问题如何解决?6、引入样式表的方式有几种?7、 JavaScript是一门基于解释性的语言,它和java 语言的区别?8、 JS 中的三种弹出式消息提醒(警告窗口、确认窗口、信息输入窗口)的命令是

6、什么?精品资料_游戏美术类:考查对于 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)*sizeo

7、f(int);for(i=0;i<n-1;i+)sievei=i+2;iMax = (int)sqrt(n);while (iCounter<=iMax) for (i=2*iCounter-2; i<n-1; i+=iCounter)sievei = 0;iCounter+; for(i=0; i<n-1; i+)if (sievei!=0) printf(“%d ”,sievei);return 0;2、考察数据结构的知识点,求公约数的算法很多,可考虑效率较高的欧几里德递归算法,int gcd(int m,int n)int temp = 0;精品资料_if(m &

8、lt; n)temp = m;m = n;n = temp;if(n = 0)return m;elsereturn gcd1(n, m%n);3、考察C 容器的知识,这里考察的MAPint main()string str;map<string, int> content;for( int cnt = 0; cnt < 10; cnt+ )cin >> str;(content.insert(make_pair(str, 0).first)->second+;精品资料_map<string, int>:iterator it = content

9、.begin();for( ; it != content.end(); +it )cout << it->first <<”: ”<< it->second << endl;return 0;4、考察数据结构,文件目录是一个树5、考察基础编程能力#include<iostream>using namespace std;template <class T>void Swap(T *a, T *b)T temp; temp = *a; *a = *b; *b = temp;/*简单排序算法begin */*精品

10、资料_* 简单选择排序* A: 以数组存放的无数数* n: 数组 A 中从位置 0 到 n 排序 (从小到大 )*/template <class T>void SelectSort(T A, int n)int small;for( int i = 0; i < n - 1; i+) / 执行n-1趟small = i;/ 先假定待排序序列中第一个元素最小for( int j = i + 1; j < n; j+ ) / 每趟扫描待排序序列n-i-1 次if( Aj < Asmall ) / 如果扫描到一个比最小值元素还小的,则记下其下标small = j;Sw

11、ap(&Ai,&Asmall);/ 最小元素与待排序序列中第一个元素交换/*精品资料_* 直接插入排序* A: 以数组存放的无数数* n: 数组 A 中从位置 0 到 n 排序 (从小到大 )*/template <class T>void InsertSort(T A, int n)for(int i = 1; i < n; i+) / 执行n-1趟int j = i;T temp = Ai;/ 待插入元素存入临时变量while(j > 0 && temp < Aj-1) / 从后往前查找插入位置Aj = Aj-1;/ Aj-1

12、元素后移j-;/ j 指针前移Aj = temp;/ 待插入元素存入找到的插入位置/* 冒泡排序* A: 以数组存放的无数数* n: 数组 A 中从位置 0 到 n 排序 (从小到大 )精品资料_*/template <class T>void BubbleSort(T A, int n)int i,j,last;i = n - 1;while ( i > 0 ) / 最多进行n-1 躺last = 0;/ 将 last 赋值为 0for( j = 0; j < i; j+) / 从前往后进行相邻元素的两两比较if(Aj+1 < Aj) Swap(&Aj,

13、&Aj+1);/ 后者小,则交换last = j;/ 有交换, last 置为 ji = last;/ 如果一趟没有元素交换,则last为 0/*简单排序算法end */*快速排序begin */*精品资料_* 快速排序* A: 以数组存放的无数数* left 和 right: Aleft和 Aright之间的元素排序*/template <class T>void QuickSort(T A, int left, int right)int i,j;if(left < right) / 若待排序序列多于一个元素,则继续快速排序i = left;/ 游动指针i,jj

14、= right + 1;Swap(&Aleft,&A(left + right)/2);/ 避免最坏境况发生do / 开始一趟快速排序,Aleft 做为分割元素do i+; while(Ai < Aleft);/ i 指针从左往右找第一个大于等于分割元素的元素do j-; while(Aj > Aleft);/ j 指针从右往左找第一个小于等于分割元素的元素if( i < j ) Swap(&Ai,&Aj);/ 若 i < j, 则交换两个元素 while(i<j);/ 若 i < j, 则继续本趟排序Swap(&Al

15、eft,&Aj);/ 交换分割元素Aleft 和 Aj 的位置精品资料_QuickSort(A,left,j-1);/ 对低端序列快速排序QuickSort(A,j+1,right);/ 对高端序列快速排序/*快速排序end */*对上面的几种排序算法,进行简单的测试*/int main() int a5 = 2,1,6,8,3;/ SelectSort(a,5);/ InsertSort(a,5);/ BubbleSort(a,5);QuickSort(a,0,4);for(int i = 0; i < 5; i+) cout << ai << &quo

16、t; "cout << endl;return 0;精品资料_技术问答题:1 、单元测试(模块测试)是开发者编写的一小段代码,用于检验被测代码的一个很小的、很明确的功能是否正确。通常而言, 一个单元测试是用于判断某个特定条件(或者场景)下某个特定函数的行为。主要单元测试工具:QTP :quicktest Professional., C+ TEST2、 规范编程内容:标识符规则- 类,方法,变量,同时也是包名的规范由字母(汉语中的一个汉字是一个字母),数字,下划线和$ 组成,不能以数字开头。大小写敏感没有长度限制,不能有空格不能使用 Java 的关键字和保留字java 中

17、的关键字goto 和 const 在 java 中虽然不再使用但是还作为保留字存在java 中没有 sizeof 这个关键字了, java 中的 boolean 类型的值只能用true 和 false ,且这两个也是关键字enum枚举assert断言一个标识符尽量符合语义信息,提高程序可读性类名 :每个单词首字母大写,变量和方法:第一个单词小写,后边的每个单词首字母大写精品资料_包名 :全部小写常量 :全部大写以下划线分词局部变量:定义在方法中的变量( 1 )先赋值后使用( 2 )从定义变量的代码块开始到代码块结束( 3 )在同一范围内不允许两个局部变量发生命名冲突3、简单点说,对于一个vec

18、tor&lt;int&gt;的函数,比如size() ,如果在不同的cpp 中出现,在这些文件编译的时候都要把vector&lt;int&gt;:size()编译一遍。然后在链接的时候把重复的函数去掉。很显然增加了编译时间。模板的声明是不编译的,更没有空间,它根本不是实际的类型或函数,编译器根本不管它。只有实例化的时候,才生成真正的类型、函数,而实例化的地方不在一起,必然造成同一个类型、函数被编译了多次。反观类的编译,只在它的cpp 中编译一次,其他地方都使用它的头文件得到声明。4、面对对象就是:把数据及对数据的操作方法放在一起,作为一个相互依存的整体对象。对同

19、类对象抽象出其共性, 形成类。 类中的大多数数据,只能用本类的方法进行处理。类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。程序流程由用户在使用中决定。5 、设计模式(Designpattern )是一套被反复使用、多数人知晓的、经过分类编目的、代精品资料_码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。毫无疑问,设计模式于己于他人于系统都是多赢的;设计模式使代码编制真正工程化;设计模式是软件工程的基石脉络,如同大厦的结构一样。好处:(1) 、复用解决方案 通过复用已经公认的设计,能够在解决问题时取得先发优势,而且避免重蹈前人覆辙

20、。可以从学习他人的经验中获益,用不着为那些总是会重复出现的问题再次设计解决方案。(2) 、确立通用术语 开发中的交流和协作都需要共同的词汇基础和对问题的共识。设计模式在项目的分析和设计阶段提供了共同的基准点。(3) 、提高观察高度模式还提供了观察问题、设计过程和面向对象的更高层次的视角,这将可以从“过早处理细节”的桎梏中解放出来。(4) 、大多数设计模式还能使软件更容易修改和维护。其原因在于,它们都是久经考验的解决方案。 所以,它们的结构都是经过长期发展形成的,比新构思的解决方案更善于应对变化。而且,这些模式所用代码往往更易于理解 从而使代码更易维护。6、引用就是对某个变量其别名。对引用的操作

21、与对应变量的操作的效果完全一样。2. 申明一个引用的时候,切记要对其进行初始化。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名,不能再把该引用名作为其他变量名的别名。声明一个引用,不是新定义了一个变量,它只表示该引用名是目标变量名的一个别名,它本身不是一种数据类型,因此引用本身不占存储单元,系统也不给引用分配存储单元。3.不能建立数组的引用。/ 切记不能建立数组的引用精品资料_7、面向对象是一种程序设计的思想,简单的讲,就是封装,继承,多态;当然,也可以说抽象。封装这个概念简单的说,对于简单的数据类型,有它自己的封装类(通常我们说的打包);对于引用类型,类就是一个封装体的一

22、个表现.继承:子类继承父类 (也就是派生类继承基类),它具有可扩展性,便于程序代码的重用性。继承可以实现多态:通过重写(覆写 ), 通过对象上传可以实现多态:通过重写和重载实现抽象:面向接口编程8、( 1) .打开块检查 (block checking)( 2) .用 rman 备份时打开块跟踪 (10g 以上 )( 3) . 镜像日志组成员。( 4) . 备份时使用 check logical 选项这会让 rman 检查块中的逻辑损坏以及头尾校验,这是获得良好备份的最好方式。( 5) . 测试你的备份做任何操作都不如实际恢复一次数据库。( 6) . 每个数据文件在一个单独的备份片中做部分恢复

23、时rman必须读取整个备份片和必须的归档日志。( 7) . 维护rman的恢复目录和控制文件仔细选择你的保留政策。精品资料_( 8) . 预防控制文件丢失这将确保您始终具备最新controlfile的可用。( 9) . 测试你的恢复在恢复场合,会让你知道恢复将怎样执行。( 10 ) . 在备份归档时不要使用delete all input DELETE INPUT将从第一个归档位置删除日志。9 、 CPU 工作方法分为中断模式和查询模式.查询模式就是说CPU轮翻的对外设顺序访问,比方说它先看看键盘有没被按下有的话处理 ,没的话继续往下看鼠标有没有移动再看看打印机印的怎么样了, 再看 .等等 .

24、 显然查询方式的效率低 .但稳定可靠 .中断模式时就是说CPU 不主动访问这些设备,只管处理自己的任务,没任务就闲着 .也就是说在那等着 .如果有设备要与CPU 联系 ,或要 CPU 处理一些事情 ,他会给 CPU 发一个中断请求信号 .一种情况是这时CPU就会放下正在进行的工作而去处理这个外设的要求.这叫做响应中断 .处理完中断后,CPU 返回去继续执行中断以前的工作.还有一种情况如果CPU 这时正在做更重要的事情他就会让这个设备先在那等着.有空时响应他.如果同时有好几个设备都要 CPU 来处理 ,CPU 就会从按重要程度来逐个处理.这就是中断和中断的优先级10 、死锁( 1) 互斥条件:一

25、个资源每次只能被一个进程使用。( 2) 请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。( 3) 不剥夺条件 :进程已获得的资源,在末使用完之前,不能强行剥夺。精品资料_( 4) 循环等待条件 :若干进程之间形成一种头尾相接的循环等待资源关系。数学题:1 、采用分类讨论的方法,首先 ,要是三个数字的和是奇数.那么共有1 奇数 +奇数 +奇数 =奇数2 偶数 +偶数 +奇数 =奇数第一种情况是在5 个中取出3 个奇数 .共有 10 方法 .(这是一个组合)第二种情况是在这九个数字中取出两个偶数,即在 4 个偶数中取出2 个偶数 .共有 4 ×3/2!=6种方法 .忘

26、记了还有五个奇数中再选取一个.5×6=30所以一共有40 种方法 .2 、 9999Web 前端开发类 :1 、( 1)div+css ,这个网页设计模式中,div 承担了网页的内容,css 承担了网页的样式。这样就使网页的内容和样式的分离开来。有利于页面的维护升级。( 2)有助于提高搜索引擎亲和力(快速找到需要的数据,而不是像在table中一层层精品资料_的查找)( 3)有助于页面的重构(换皮肤如blog ,直接套用另外一套样式就可以实现,而不用改动网页脚本。 )2 、在 JSP 中,跳转页面有两种方式:1.forward跳转: <jsp:forwardpage="

27、 跳转页面地址 " />2.response 跳转: response.sendRedirect(" 跳转页面地址 ");两种跳转的区别如下:1.forward跳转: a. 服务器端跳转, 地址栏不改变; b.执行到跳转语句后马上无条件跳转,之后的代码不再执行(跳转之前一定要释放全部资源);c.request设置的属性在跳转后的页面仍可以使用;d. 使用 <jsp:paramname=" 参数名 "value=" 参数值 "/> 传递参数。2.response跳转: a.客户端跳转 ,地址栏改变; b.所有

28、代码执行完毕后跳转;c.跳转后的页面 不 能 使 用 上 一 个 页 面 的request属 性 ; d. 使 用 地 址 重 写 传 递 参 数( response.sendRedirect("URL? 参数名参数值 ") )。3 、每个独立的搜索引擎都有自己的网页抓取程序(spider )。Spider 顺着网页中的超链接,连续地抓取网页。被抓取的网页被称之为网页快照。由于互联网中超链接的应用很普遍,理论上,从一定范围的网页出发,就能搜集到绝大多数的网页。抓取网页信息需要有高性能的“网络蜘蛛”程序(Spider) 去自动地在互联网中搜索信息。一个典型的网络蜘蛛工作的方式

29、,是查看一个页面,并从中找到相关信息,然后它再从该页面的所有链接中出发,继续寻找相关的信息,以此类推, 直至穷尽。网络蜘蛛要求能够快精品资料_速、全面。网络蜘蛛为实现其快速地浏览整个互联网,通常在技术上采用抢先式多线程技术实现在网上聚集信息。通过抢先式多线程的使用,你能索引一个基于URL 链接的 Web页面, 启动一个新的线程跟随每个新的URL 链接,索引一个新的URL 起点。当然在服务器上所开的线程也不能无限膨胀,需要在服务器的正常运转和快速收集网页之间找一个平衡点。在算法上各个搜索引擎技术公司可能不尽相同,但目的都是快速浏览Web 页和后续过程相配合。 目前国内的搜索引擎技术公司中,比如百

30、度公司的网络蜘蛛采用了可定制、高扩展性的调度算法使得搜索器能在极短的时间内收集到最大数量的互联网信息,并把所获得的信息保存下来以备建立索引库和用户检索。4、 1.通过 ID, 使用 getElementById() 获得标签节点2.通过标签的名称 ,使用 getElementsByTagName()获得元素节点或标签节点注意:以上的查找方式都会忽略文档的结构3.通过使用一个元素节点的parentNode 、 firstChild以及 lastChild属性4. 节点名称 nodeName(a) 如果节点是标签, nodeName 是标签名称(b) 如果节点是属性, nodeName 是属性名称(c) 如果节点是文本节点, nodeName 是 #text(d) 如果节点是文档, nodeName 是#document5.节点值 nodeValue精品资料_6.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论