技术面试题目及答案
玉兰花是什么颜色-
时间有限公司技术部面试试题
游戏开发类:
编程题:
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
的下属对象变量名直接使用,在
不能,此兼容性问题如何解决?
6
、引入样式表的方式有几种?
7
、
JavaScript
是一门基于解释性的语言,它和
java
语言的区别?
8
、
JS
中的三种弹出式消息提醒
(
警告窗口、确认窗口、信息输入窗口
)
的命令是什么?
精品资料
中
FF
游戏美术类:
考查对于
PS
,
3DsMax
(或
MAYA
)
,
AE
等软件的熟悉程度
答
案
:
编程题:
1
考察数据结构的知识点,这里可使用筛选法,该方法是大部分数据结构书籍都有讲解的
算法,当然还有时间复杂度更低的算法(空间复杂度)
,但是因为求值范围为
1
-
故综合来看,筛选法的效率是最高的。
int main()
精品资料
,
100
{
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
sieve[i]=i+2;
iMax = (int)sqrt(n);
while (iCounter<=iMax) {
for (i=2*iCounter-2; i
sieve[i] = 0;
iCounter++; }
for(i=0;
i
if (sieve[i]!=0) printf(
“
%d
”
,sieve[i]);
return 0;
}
p>
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
++容器的知识,这里考察的
int
main()
{
MAP
string str;
map
for( int cnt = 0; cnt < 10;
cnt++ ){ cin >> str;
((make_pair(str, 0)).first)->second++;
}
精品资料
map
for( it != (); ++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
排序
(
从小到大
)
*/
template
void
SelectSort(T A[], int n)
{
int small;
for( int i = 0; i < n - 1; i++) {
small = i;
素最小
for( int j = i
+ 1; j < n; j++ ) {
if( A[j] < A[small] ) {
则记下其下标
small = j;
}
}
Swap(&A[i],&A[small]);
元素交换
}
}
/*
//
执行
n-1
趟
//
先假定待排序序列中第一个元
//
每趟扫描待排序序列
n-i-1
次
//
如果扫描到一个比最小值元素还小的,
//
最小元素与待排序序列中第一个
精品资料
*
直接插入排序
* A:
以数组存放的无数数
* n:
数
组
A
中
从
位置
0
到
n
排序
(
从小到大
)
*/
template
void
InsertSort(T A[], int n)
{
for(int i = 1; i < n; i++) {
int j = i;
T temp = A[i];
while(j > 0 && temp < A[j-1]) {
A[j] = A[j-1];
j--;
}
A[j] = temp;
置
}
}
/*
*
冒泡排序
* A:
以数组存放的无数数
* n:
数
组
A
中
从
位置
0
到
n
排序
(
从小到大
)
//
执行
精品资料
n-1
趟
//
待插入元素存入临时变量
//
从后往前查找插入位置
//
A[j-1]
元素后移
// j
指针前移
//
待插入元素存入找到的插入位
*/
template
void BubbleSort(T A[], int
n)
{
int i,j,last;
i = n - 1;
while ( i > 0 )
{
//
最多进行
n-1
躺
last = 0;
//
将
last
赋
值
为
0
for( j = 0; j < i; j++) {
//
从前往后进行相邻元素的两两比较
if(A[j+1] < A[j]) {
Swap(&A[j],&A[j+1]);
//
后者小,则交换
last = j;
//
有交换,
last
置为
j
}
}
i
= last;
//
如果一趟没有元素交换,则
为
0
}
}
<
/p>
/***************************************
*
简单排序算法
end
****************************************/
/**
**************************************
快速排序
begin
****************************************/
/*
精品资料
last
*
快速排序
* A:
以数组存放的无数数
* left
和
right: A[left]
和
A[right]
之间的元素排序
*/
template
void QuickSort(T A[], int
left, int right)
{
int i,j;
if(left < right) {
快速排序
i = left;
j = right + 1;
Swap(&A[left],&A[(left + right)/2]);
do {
为分割元素
do i++; while(A[i] < A[left]);
元素的元素
do j--; while(A[j] >
A[left]);
元素的元素
if( i < j )
Swap(&A[i],&A[j]);
}
while(i
Swap(&A[left],&A[j]);
//
若待排序序列多于一个元素,
则继续
//
游动指针
i,j
//
避免最坏境况发生
//
开始一趟快速排序
,A[left]
做
// i
指针从左往右找第一个
大于等于
分割
// j
指针从右往左找第一个
小于等于
分割
//
若
i < j,
则交换两个元素
//
若
i < j,
则继续本趟排序
//
交换分割元素
A[left]
和
A[j]
的位置
精品资料
QuickSort(A,left,j-1);
//
对低端序列快速排序
QuickSort(A,j+1,right);
//
对高端序列快速排序
}
}
/**************
**************************
快速排序
end
****************************************/
/*<
/p>
对上面的几种排序算法,进行简单的测试
*/
int main() {
int a[5] = {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 << a[i] <<
}
cout << endl;
return 0;
}
精品资料
玉兰花是什么颜色-
玉兰花是什么颜色-
玉兰花是什么颜色-
玉兰花是什么颜色-
玉兰花是什么颜色-
玉兰花是什么颜色-