范文无忧网面试笔试笔试回答

网游公司的笔试题大集合

11月22日 编辑 fanwen51.com

[面试试题大集合]1、 我们为什么要雇请你呢? 有的面试只有这么一个问题。话虽简单,可是难度颇高。主要是测试你的沉静与自信。给一个简短、有礼貌的回答:我能做好我要做得事情,我相信自己,我想得...+阅读

1 上海乐升笔试:

冯诺依曼机的体系结构

各种RAM的名词解释

递归求5!

C程序优化

翻译有关windows资源处理的文章

上机:

写api 进行分数的四则运算

写api 针对2个8位的数的四则运算 该平台不支持16位

写api 对一个10个元素的数组排序 并且支持检索

卢老师教过的放10个球到盒子问题

2 扬讯科技(手机)写个MIN(a, b)的宏

函数指针

指针数组等

游戏程序的特点

游戏程序的结构

链表的插入 索引

typedef 和 &emspdefine 的优点和缺点

你最熟悉的游戏算法

3 巨人网络

1.class String

{

public:

String(const char *cp = NULL);

String(const String cp);

String();

String operator = (const String cp);

operator const char *() const;

private:

char *m_data;

}

1) 完成类的方法;

String::String(const char *str)

{

if ( str == NULL ) strlen在参数为NULL时会抛异常才会有这步判断

{

m_data = new char[1] ;

m_data[0] = ;

}

else

{

m_data = new char[strlen(str) + 1];

strcpy(m_data,

String::String(const String another)

{

m_data = new char[strlen(another.m_data) + 1];

strcpy(m_data,other.m_data);

}

String String:perator =(const String rhs)

{

if ( this == rhs)

return *this ;

delete []m_data; 删除原来的数据,新开一块内存

m_data = new char[strlen(rhs.m_data) + 1];

strcpy(m_data,rhs.m_data);

return *this ;

}

String::

String()

{

delete []m_data ;

}

operator const char *() const

{

return str;

}

2) operator const char *() const 后面的const的作用.

2.new/delete和malloc/free的区别,什么时候需要建立自己的内存分配机制。

3.static和volatile的用途。

static:

4.什么是深拷贝?什么是浅拷贝?举例说明。

&emspinclude string.h

&emspinclude stdio.h

class Base

{

private:

char * name;

public:

Base(char * className)

{

name = new char[strlen(className)+1];

strcpy(name, className);

}

Base()

{

delete name;

}

char *copyName()

{

char newname[256];

strcpy(newname, name);

return newname;

}

char *getName()

{

return name;

}

static void print (Base base)

{

printf(name: %sn,base.name);

}

};

class Subclass : public Base

{

public:

Subclass(char * className) : Base(className)

{

}

};

int main()

{

Base *pBase = new Subclass(test);

Base::print(*pBase); 用后会被释放掉,下面的指向将为空指针,应改为引用

printf(name: %sn, pBase-getName());

printf(new name: %sn, temp);

return 0;

}

对上面程序进行编译不报错,但是程序不能执行.

下面是改正后的:

&emspinclude string.h

&emspinclude stdio.h

class Base

{

private:

char * name;

public:

Base(char * className)

{

name = new char[strlen(className)+1];

strcpy(name, className);

}

Base()

{

delete name;

}

char *copyName()

{

char *newname = new char[strlen(name)+1];

strcpy(newname, name);

return newname;

}

char *getName()

{

return name;

}

static void print (Base base)

{

base.name = base.copyName(); 深度拷贝

printf(name: %sn,base.name);

}

};

class Subclass : public Base

{

public:

Subclass(char * className) : Base(className)

{

}

};

int main()

{

Base *pBase = new Subclass(test);

Base::print(*pBase); 用后会被释放掉,下面的指向将为空指针,应改为引用

printf(name: %sn, pBase-getName());

char *temp = pBase-copyName();

printf(new name: %sn, temp);

delete temp;

return 0;

}

5.一个自定义类String的改错题。

6.void GetMemory(char *p)

{

p = (char *)malloc(100);

}

void Test(void)

{

char *str = NULL;

GetMemory(str);

strcpy(str, hello world);

printf(str);

}

请问运行Test函数会有什么样的结果?

如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么?

void GetMemory(char *p, int num)

{

p = (char *)malloc(sizeof(char) * num);

}

void Test(void)

{

char *str = NULL;

GetMemory(str, 100); str 仍然为 NULL

strcpy(str, hello); 运行错误

}

示例7-4-1 试图用指针参数申请动态内存

毛病出在函数GetMemory中。编译器总是要为函数的每个参数制作临时副本,指针参数p的副本是 _p,编译器使 _p = p。如果函数体内的程序修改了_p的内容,就导致参数p的内容作相应的修改。这就是指针可以用作输出参数的原因。在本例中,_p申请了新的内存,只是把_p所指的内存地址改变了,但是p丝毫未变。所以函数GetMemory并不能输出任何东西。事实上,每执行一次GetMemory就会泄露一块内存,因为没有用free释放内存。

如果非得要用指针参数去申请内存,那么应该改用指向指针的指针,见示例7-4-2。

void GetMemory2(char **p, int num)

{

*p = (char *)malloc(sizeof(char) * num);

}

void Test2(void)

{

char *str = NULL;

GetMemory2(str, 100); 注意参数是 str,而不是str

strcpy(str, hello);

cout str endl;

free(str);

}

7.int i;

std::list list1;

for(i = 0; i 8; i++)

list1.push_back(i);

for(std::list::iterator = list1.begin(); iterator != list1.end(); iterator++)

if (*iterator % 2)

list1.erase(iterator);

这段代码在运行时会产生什么错误,怎么改正。

erase之后iterator失效

就加一个 int就完了。

&emspinclude list

int main()

{

std::listint list1;

for(int i=0;i 8;i++)

list1.push_back(i);

for(std::listint::iterator it=list1.begin();it!=list1.end();++it)

{

if(*it%2 == 0)

{

it = list1.erase(it);

it --;

}

}

return 0;

}

8.对Gcc编译选项做些介绍。

9.Gdb中如何设置中断点,逐步调试程序。

10.游戏编程中如何对显存进行管理。 这是唯一的一道和游戏直接有关题目。

11.windows中的内存分配方式有哪些,他们的优缺点是什么。

延伸阅读:

面试问题大集影响他人的能力 如果你是某事的负责人的话,你很容易让他人听你的;但是,当你不是负责人时,让别人听自己的话是非常难的事。想要培养自己影响他人的能力的话,得通过与他人的共同的...

夸客户的英语大集Mature,dynamic and honest. 思想成熟、精明能干、为人诚实。 Excellent ability of systematical management. 有极强的系统管理能力。 Ability to work independent1y,matur...

网游“分级制度”英语怎么说受文化部委托、由北京大学文化创意产业研究院与华中师范大学共同进行的网络游戏分级标准,1月10日在第七届文化创业产业论坛上公布。该分级标准将网络游戏分为适合全年龄段、1...

大集团公司英文助理简历模板Rm. 2, 4F, Sun Tong Plaza, 1368 Huanhai Rd (W) Email: OBJECTIVE English assistant position at a multinational pany in Shanghai. EXPERIENCE X X X Co., Ltd., Shan...

“出双入对”的英语俚语大集在英语当中两个近义和相对的词用and或or连接构成成对的英语短语,它们经常出现在一起,因此它们的位置固定下来,有些同汉语的位置相同,有些同汉语不同,意义上有的和汉语相同,少量的...

公务员面试题大集公务员面试题大集锦 1、作为副职,在和主要领导研究问题时,你认为自己的意见正确,提出后却不被采纳,面对这种情况,你如何处理? 你在思考时,应明确以下思路:一要处以公心,冷静对待;二要...

夸奖客户英语大集Mature,dynamic and honest.思想成熟、精明能干、为人诚实。Excellentability of systematical management.有极强的系统管理能力。Ability to work independent1y,mature and...

大集团笔试经历笔试 投简历当天晚上接到电话通知,说第二天穿好正装,带上笔去E阶梯课室参加笔试。 本来以为投了都有笔试机会的,去到笔试现场,人不多。出来的时候看了贴在墙上的面试分组才知道,6...

推荐阅读
图文推荐
栏目列表