金山软件笔试题_金山软件笔试测试题目
【jianli.jxxyjl.com--笔试题目】
金山软件是许多计算机专业学生向往的企业,那么你知道金山软件的笔试题是怎样的吗?下面由小编为你提供的金山软件笔试测试题目,希望能帮到你。
金山软件笔试测试题目(一)
一:分别写出下面游戏的产商和运营商
1:穿越火线 2:魔兽世界 3:天龙八部 4 征途
二:1、 有一起谋杀案,发生在一个家庭中,父亲、母亲、儿子、女儿四个成员中,有凶手、目击者、同谋和被害者。已知条件如下:(1)最年轻者和被害者性别不同
(2)年龄最大的和目击者性别不同
(3)目击者和同谋性别不同
(4)凶手不是最年轻的
(5)父亲是年龄最长者
(6)被害者比同谋年轻
请问四个成员分别对应的身份?
写出推理过程:
三:写出4个你玩过的游戏,并写出特点和吸引你的地方(什么类型都可以)并写出你的游戏经历,比如玩到什么程度,游戏级别,花费时间等等
四:有一张表,里面列出了很多种情况,大致的说法如下:A论坛里有很多玩家说你设计的某个游戏里面哪个门派不够强,其中一个门派还集体说要提升其门派的实力,否则就集体退出游戏。
B你的朋友告诉你游戏还是不要改,参考XX世界,不然改了之后骂声更多。
C 客服人员反映说一个VIP玩家建议说有个门派的实力太弱了,要提升一下。
D 公司里资深的游戏设计人员告诉你说某个门派的实力太弱,需要加强,但是论坛里该门派并没有类似的反应。
E 公司总裁也是你的游戏玩家,他玩过之后说有个门派实力太弱,该提升。
F 很多玩家反映有一个门派的实力过强,而你恰恰是这个门派的长老,玩过很多时间,进行了一些改进,但是你自己却发觉甚至比以前打敌人更加吃力了。
G 数据显示一个门派的玩家流失率很大,但是却没有相关评价说该门派的实力太弱。
H 你提出的策划案没有得到大家认可,遭到拒绝。
要求对这些重视程度进行排序,然后在每一项后面写出排在该位置的理由,最后再写出你对待每一项的解决办法。
五:写出偷菜游戏火了的原因以及现在玩家流失的原因
六:手机电池不够用,开发新能源成本高,见效慢,提出3个建议解决问题
七:写出从游戏登陆界面开始到进入游戏所有可能发生的情况,最好画出流程图说明
八:如果游戏新推出一个主手法杖,如何设计可以最大的吸引RMB玩家的消费欲望(大概这个意思,也有可能是我理解出现偏差,那就悲剧了……)
九:很多游戏都有怪物类npc,对战会有音效,画面特效之类的,让你设计如何提高战斗打击感和玩家的爽快程度(差不多的意思)
十:专业词解释:附魔,MT,AOE,嘲讽,副本(还有几个记不清了,选4个即可)
金山软件笔试测试题目(二)
1、 (1) 写出C++的四种类型转换。
我的理解:
四种,答题的时候我忘了reinterpret_cast怎么拼写。要求写成示例代码, 不过我没写(没上下文环境,还得我自个去自定义类型,太费事了)。
(2)explicit关键字的作用。
我的理解:
去除隐式转换。
(3)虚析构函数。
我的理解:
在一个继承体系中,基类的析构函数必须设置为虚函数,不然可能存在析构不完整的危险。
2、 是一个改错题。大概考察的知识是:vector、多态、虚函数表指针。
我的理解:
(1)要实现多态,vector里边保存的必须是地址(指针),而不能是基类、引用。
(2)定义vector的const_iterator。
(3)派生类的构造函数是在派生类对象构造的最后阶段才被调用的,当调用构造函数的时候,对象的基类子对象、成员变量(对象)已经初始化完毕。所以派生类的构造函数不可以乱来。
3、容器的传参和erase操作
给出的是一个函数,其中关键的部分大概是这样:
for(vector::iterator iter = ivec.begin; iter != ivec.end; ++iter)
{
if (*iter == N)
ivec.erase(iter);
}
我的理解:
(1) 容器类对象传参的时候最好用引用。
(2) erase操作之后会导致迭代器失效。
(3) 可能会导致删除不彻底,因为erase之后iter指向了下一个元素,而for循环中又++iter,这样会跳过一个元素,而且可能跳到vector对象之外的地方,最后导致出错。(我只考虑到会跳过一个元素,没有想到如果最后一个被删元素刚好是vector对象的最后一个元素,那么会跳出对象之外的地方。其实这个问题几个星期前在csdn上回答过,不过我通过上机得出的答案一下子就被我抛到脑后)
4、 智能指针。
大概意思是:引用计数型的智能指针存在循环引用的缺陷,需要一个“弱引用”智能指针。大概是要求实现这两个智能指针。
我的理解:
很遗憾。我想题目是想答题者实现boost库里的shared_ptr和weak_ptr,我知道这两个指针的存在,但问题是我没考虑过它们是怎么实现的。主要是弱指针不知道该怎么做。引用计数型的智能指针凑合着写了出来,不过写得超乱,而且构造函数有错误。
一方面是很少用手写代码,一方面是几乎没有自己亲手写过智能指针,虽然分析学习了不少简单例子。虽然以前看书的时候看到“循环引用”这回事,只是当时不知道是什么,现在依然不知道,忘了问why。
算法考察的内容:
1、 有一个N位二进制数,找出其中没有相邻11的数的个数。例如:N=2时,00,01,10,11,其中没有相邻11的数的个数有3个。
我的理解:
求相邻11的数的个数。
N位数跟N-1位数有关系。如果一个数在N-1中是“相邻11”,那么在这个数前面添加上0或1它还是一个相邻11的数。这里边就至少有两倍的关系了。另外,如果N-1中有数是这样的:“10XXX”,那么在N位数中,在它前面添加上1这个数就是“相邻11”了。那么N-1位数中有多少个“10XXX”这样的数字呢?对于N-1位的数来说, 如果头一两位是“10”,后边就还有N-3位的二进制位,所以以“10”开头的数有2的(N-3)次方个。
列出如下:N就是在N-1的数前面加上1、0。
N=2
00 01 10 11
N=3
000 001 010 011
100 101 110 111
N=4
0000 0001 0010 0011
1000 1001 1010 1011
0100 0101 0110 0111
1100 1101 1110 1111
感觉这就是数字的组合的问题。另外,上边是我个人的理解,也不一定是对的。
(结果证明,我真的错了,唯一一道会写的算法题,泪奔……)
修正:非相邻11的数字的个数正如楼下所说是斐波那契序列。因为我一开始就没往“非相邻11”方向想,而是往“相邻11”方向考虑,所以没发觉另一个方向其实有捷径可通…….但我还是想把这条路走完,虽然走了弯路。
我的分析出差错的原因在这里:“所以以“10”开头的数有2的(N-3)次方个”,这句话没错,但是没考虑到这(N-3)个位里也有可能存在“相邻11”,导致了重复计算“相邻11”的数。必须减去才行。计算“相邻11”个数的函数如下:
int fun(int n)
{
[size=9pt]if (n return 0;
if (n == 2)
return 1;
if (n == 3)
return 3;
[size=9pt]return ((fun(n-1))*2 + (2}
以上方式实现比较垃圾。比较好的方式有(第二种更好一些,但第一种的思路很值得学习):
(1)
//实现:动态规划,递推算法
/*参考:
用动态规划的东西 "[j]保存i位长的二进制位,最后一位是j" 的时候的个数,那么
[0] = [i - 1][1] + [i - 1][0];
[1] = [i - 1][0];
*/
//20xx.9.19
#include
using namespace std;
int fun(int N);
int main
{
int N;
[size=9pt]cout cin >> N;
[size=9pt]cout return 0;
}
/////////////////////////////////////////////////////////////////////
int fun(int N)
{
//申请空间。时间换空间
int **p = new int*[N];
for (int i = 0; i != N; ++i)
{
p = new int[2];
}
//算法核心。递推。
p[0][0] = 1;
p[0][1] = 1;
[size=9pt]for (int i = 1; i {
//求i个二进制位以0结尾的非11相邻数:i-1个二进制位的非"11相邻"数,后边填加上一个0,必定也是非11相邻数
p[0] = p[i-1][0] + p[i-1][1];
//求i个二进制位以1结尾的非11相邻数:i-1个二进制位的非"11相邻"数必须以0结尾.
p[1] = p[i-1][0];
}
//保存返回值
int ret = p[N-1][0] + p[N-1][1];
//释放空间
for (int i = 0; i != N; ++i)
{
p;
}
p;
return ret;
}
(2)
//实现:斐波那契数列实现
/*参考:
通过列出非相邻11的数的个数,可以发现其实这个就是斐波那契数列。2,3,5,8,13,……
*/
//20xx.9.19
#include
using namespace std;
int fun(int n);
int main
{
int n;
[size=9pt]cout cin >> n;
[size=9pt]cout return 0;
}
int fun(int n)
{
if (n == 1)
return 2;
if (n == 2)
return 3;
int f1 = 2;
int f2 = 3;
int f3;
[size=9pt]for (int i = 2; i {
f3 = f1 + f2;
f1 = f2;
f2 = f3;
}
return f3;
}
2、 对一个服务器日志的分析。
日志里边记录了IP登录信息,信息内容有时间和IP地址。现在要统计
(1) 每一天登录次数最多的1000个IP。以登录次数为序,从高到低排序
(2) 每一周登录次数最多的1000个IP。以登录次数为序,从高到低排序
每一天大概有10亿条IP信息记录
-
【c语言经典笔试题】c经典笔试题详细阅读
C是高级语言:它把高级语言的基本结构和语句与低级语言的实用性结合起来。C 语言可以像汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元。下面就由小编为大家介绍一下c经典笔试题的文章,欢迎阅读。 c经典笔试题篇1 有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信...
-
【编程猫笔试题】C编程笔试题详细阅读
编程就是让计算机为解决某个问题而使用某种程序设计语言编写程序代码,并最终得到相应结果的过程。下面就由小编为大家介绍一下C++编程笔试题的文章,欢迎阅读。 C++编程笔试题篇1 一、请填写BOOL , float, 指针变量 与“零值”比较的 if 语句。(10分)...
-
excel笔试题及答案_关于EXCEL的笔试题目详细阅读
Excel中大量的公式函数可以应用选择,是现代很多工作岗位都要用到的。 下面由小编为你提供的关于EXCEL的笔试题目,希望能帮到你。 关于EXCEL的笔试题目(一) 1、在Excel中,下列输入数据属于字符型的是( )。 +A1+3 =SUM(A1:A2) =A1+3 SUM(A1,A2)...
-
东北大学自主招生试题|2021年东北大学自主招生笔试题详细阅读
东北大学始建于1920xx年4月。1920xx年8月至1937年1月,著名爱国将领张学良将军任校长。“九·一八”事变后,东北大学被迫迁徙北平、开封、西安、四川三台等地。下面是小编为你整理的20xx年东北大学自主招生笔试题,希望对你有所帮助! 6月10日,东...
-
[2021年山东省公务员遴选公告最新消息]2021年山东省公务员遴选笔试真题及参考答案详细阅读
虽然20xx年山东省公务员遴选笔试已经过去,但对于即将参加20xx年山东省公务员遴选笔试的小伙伴来说,去年的真题具有很大的参考价值。今天小编要与大家分享的是20xx年山东省公务员遴选笔试真题,希望对大家的学习有帮助!20xx年山东省公务员遴选笔试真题 一、简答(30分每题10分) 1、20x...
-
【c语言指针笔试题】c指针笔试题详细阅读
指针是一个特殊的变量,它里面存储的数值被解释成为内存里的一个地址。下面就由小编为大家介绍一下c指针笔试题的文章,欢迎阅读。 c指针笔试题篇1 1 变量的指针,其含义是指该变量的_________ a)值 b)地址 c)名 d)一个标志 2 若有语句int *point,a=4;和p...
-
西安交通大学自主招生测试指南|西安交通大学2021年自主招生测试题汇总详细阅读
西安交通大学为中国最早兴办的高等学府之一,肇始于1896年创建于上海的南洋公学,1920xx年改称交通大学(Chiao Tung University),1956年国务院决定交通大学内迁西安,为交通大学西安部分,1959年定名西安交通大学。下面是小编为你整理的西安交通大学20xx年自主招生测试题...
-
西南财经大学自主招生条件|2021年西南财经大学自主招生笔试题详细阅读
西南财经大学是教育部直属的国家“211工程”和“985工程”优势学科创新平台建设的全国重点大学,也是国家教育体制改革试点高校。下面是小编为你整理的20xx年西南财经大学自主招生笔试题,希望对你有所帮助! 20xx年西南财经大学自主招生笔试题 财经...
-
excel考试题目_EXCEL笔试题目详细阅读
Excel中大量的公式函数可以应用选择,使用Microsoft Excel可以执行计算,分析信息并管理电子表格或网页中的数据信息列表与数据资料图表制作,可以实现许多方便的功能,带给使用者方便。下面就由小编为大家介绍一下EXCEL笔试题目的文章,欢迎阅读。 EXCEL笔试题目篇1 1 Exc...
-
【java开发笔试题】关于JAVA的笔试题有哪些详细阅读
Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。下面是小编为你整理的JAVA笔试题150例,希望对你有所帮助! JAVA笔试题150例 一、Java基础方面 1、作用域public,private,protected,以及不写...