金山软件笔试题目

合集下载

金山校园招聘Java笔试题

金山校园招聘Java笔试题

金山校园招聘Java笔试题金山校园招聘Java笔试题第一题:栈内存与堆内存的特点与区别,java中是怎样分配的?栈内存中用来存放基本数据类型(8种基本类型)和对象的引用变量,存取速度比堆快,栈中的数据可以被共享使用,堆内存中用来存放new创建的对象和数组对象,。

第二题:对象序列化,作用,那些不能序列化?对象序列化是为了能够让对象像其他变量数据一样能够长久的'保存下来,其实质是把对象在内存中的数据按照一定的规则,变成一系列的字节数据,然后写入到流中。

没有实现java.io.Seralizabled接口的类不能实例化。

第三题线程的p、v操作线程对于程序员而言,是比较重要的一块知识,不会线程编程,就算不上一个合格的程序员。

因此,线程也是各个公司笔试面试必考的内容之一。

PV操作本是操作系统中相关的内容,简单来说,P操作是申请资源,V操作是释放资源。

本题最好可以用生产者/消费者来实现PV操作最为合适,同时也考虑到了多线程同步的问题。

举例说明:package common;import org.junit.Test;/*** PV操作示例* @author xcbeyond** 2012-10-2下午08:05:09*/public class PVOperator {public static void main(String [] args){Store s = new Store(5);Produce pro1 = new Produce(s);Produce pro2 = new Produce(s); Consumer con1 = new Consumer(s); Consumer con2 = new Consumer(s); pro1.start();con1.start();pro2.start();con2.start();}}/*** 仓库类:临界资源**/class Store{private final int maxSize; //最大容量private int count;public Store(int size){maxSize = size;count = 0;}/*** 添加资源*/public synchronized void add(){ while(count >=maxSize){ System.out.println("----仓库满了!----"); try {wait();} catch (InterruptedException e) {e.printStackTrace();}}count++;System.out.println(Thread.currentThread().toString()+ "put" +count);notifyAll();}public synchronized void remove() {while(count <= 0) {System.out.println("----仓库空了!----");try {wait();} catch (InterruptedException e) {e.printStackTrace();}}System.out.println(Thread.currentThread().toString()+ "get"+count);count--;notify();}}/*** 生产者:P操作*/class Produce extends Thread {private Store s;public Produce(Store s) {this.s = s;}@Overridepublic void run() {while(true){s.add();try {Thread.sleep(1000);//只是为了利于查看线程间的同步,所以延迟1s} catch (InterruptedException e) {e.printStackTrace();}}}}/*** 消费者:V操作*/class Consumer extends Thread {private Store s;public Consumer(Store s) {this.s = s;}@Overridepublic void run() {while(true) {s.remove();try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}} } }。

百一测评—— 金山WPS暑期实习招聘笔试题2013-7-28

百一测评—— 金山WPS暑期实习招聘笔试题2013-7-28

职业技能题库&在线云笔试平台试卷名称:金山WPS暑期实习招聘笔试题2013-7-28——C++试卷B卷试卷描述:在线考试、招聘笔试、微信考试试卷链接:/paperDetail?paperId=40577试卷限时:50分钟一.单项选择题每题分值:2分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中1.[单选]你觉得你的能力特点是:_____A.注重团队交流B.注重细节、追求完美C.擅长钻研D.重视知识积累E.做事仔细,思维慎密答案:D2.[单选]你觉得你的思维特点:_____A.创造力B.想象力职业技能题库&在线云笔试平台C.把握复杂问题D.洞察细节答案:C3.[单选]你最喜欢的做事方式:_____A.用妥当的方式处理问题B.用快速的方式处理问题C.用直观的方式处理问题答案:A4.[单选]对你的合作伙伴你最不能接受的缺点是:_____A.浮夸B.粗心大意C.墨守成规D.不求上进答案:B5.[单选]int x = 18 / 7 * 3; x变量的数值为:_____A.6B.7C.8D.9职业技能题库&在线云笔试平台 答案:A6.[单选]c++是否是大小写敏感的:_____A.是B.不是答案:A7.[单选]以下程序的输出结果是:_____std::cout << "0" << std::endl;A.0B."0"C.48答案:A8.[单选]以下哪个不是c++关键字:_____A. classB. intC. structD. printf答案:D9.[单选]int * p = new int[10];和上述语句匹配的释放语句是:_____A.free(p)职业技能题库&在线云笔试平台B.delete p;C.delete [] p;D.delete p [];答案:C10.[单选]int * p = new int;以下那行语句是合法的:_____A.*p = 3;B.p = *3;C.&p = 3;D.p = &3;答案:A11.[单选]const int x = 0x20;printf("%d", x);以上代码片段的输出是:_____A.20B.%dC.32答案:C12.[单选]char x[] = "hello"sizeof(x)的结果为:A.4B.5职业技能题库&在线云笔试平台 C.6答案:C13.[单选]printf("5432" + 1);上述代码的输出结果是:_____A.432B.5433C.54321D.编译不通过答案:A14.[单选]std::vector<T> x;x.resize(10);sizeof(x)的结果为:_____A.0B.4C.10D.不确定答案:D二.编程题每题分值:10分是否题目乱序:是是否选项乱序:是是否可回溯:是难度:中职业技能题库&在线云笔试平台15.[编程]请实现这么一个函数:传入一个int值,在屏幕输出类似LED显示屏效果的字母拼图,例如:输入1234567890,输出:提示:请注意每个字符的固定宽度和高度,两个数字间保留一个空格。

金山笔试题

金山笔试题

一.填空题:1. Char szTest[]=”12345\t\n\0abcd\0”; 则strlen(szTest)值为____, sizeof(szTest)值为___2. Int anTest[5][10]; int n1= &anTest[4]- &anTest[10], n2= &anTest[3][1]- &anTest[1][3]; 则n1 的值为_____.3. Char szNum[]=”12 3456789”; int n= *(short*)(szNum+ 4)- *(short*)(szNum); 则n 的值为_____.4. STL中二分查找算法函数名称为binary_search,稳定排序算法函数名称为stable_sort,部分排序算法函数名称为partial_sort5. STL 中map 通常是用数据结构中的___实现。

6. 下面的函数是求两个数的较大者,请填空(只能填入一条语句):Int max( int a, int b ){Return __a>b?a:b____;}7. 下面程序的运行结果是:2 3 4#include <iostream>Int cc( int I ){For( ; i< 4; )Std::cout << cc( ++I );Return I;}Int main(){Cc(1);Return 0;}8. 要增加一个类到某种类型的隐式转投可通过重载_Operator___操作符实现。

9. C++ 64位编译环境下,sizeof(int)= _4__, sizeof(int*)= 8____10. 列举c++0x 的任意三个新特性___,____,_____.11. 填入下面缺失的语句:Unsign ed int strlen( const char* pstr ){__asm{Mov eax, pstrCmp byte pst[eax], 0Jz zreturnZloop:_________Cmp byte ptr[eax], 0Jnz zloopZreturn:Sub eax, pstr}}二.诊断题:(下面的说法如正确直接回答正确即可,如错误说明原因)1. 全局变量和静态变量在内存中的存储位置是相同的2. Windows 操作系统中进程是基本的执行单位3. 在栈上分配内存和在堆上分配内存效率是一样的4. Sizeof属于c++的内联函数5. 构造函数只能定义为public而不能定义为procted 或private6. C 语言的qsort 与c++ 的sort 都采用了快速排序算法,但c 语言的效率比c++的高,所以qsort 比sort 快7. 用new [] 分配内存如果用delete 释放,结果是一定会造成内存泄露8. 全局对象及静态对象在main 函数执行之前构造三.问答题1. Unresolved external symbol 是什么错误?出现的原因是什么?2. 线程死锁的原因是什么?要防止死锁我们在多线程编程中要注意什么?3. 什么叫哈希算法?它有些什么应用?4. 列举Windows 操作系统中进程注入的方式5. 请从程序机制上解释缓冲区攻击原理6. 简述copy-on-write 机制及其有哪些应用?7. 解释以下函数声明中三个const 的作用:Template<class T> void Fun( const T* const& p ) const;四.程序题1. 以下函数功能为把传入的两个整数值存到一个Buffer 里面,完成函数实现。

办公软件笔试题及答案

办公软件笔试题及答案

办公软件笔试题及答案1. 题目:请列出Microsoft Office套件中包含的三个主要应用程序。

答案:Microsoft Office套件中包含的三个主要应用程序包括Word、Excel和PowerPoint。

2. 题目:在Excel中,如何快速填充一系列连续的数字?答案:在Excel中,要快速填充一系列连续的数字,首先输入起始数字,然后选中该单元格,将鼠标指针移动到单元格右下角,当指针变成一个黑色的十字时,双击或拖动以自动填充连续的数字。

3. 题目:在Word文档中,如何插入页眉和页脚?答案:在Word文档中插入页眉和页脚的步骤如下:a. 打开Word文档。

b. 点击页面布局选项卡。

c. 在页面设置组中,点击页眉和页脚按钮。

d. 选择所需的页眉或页脚样式,或者选择“编辑页眉”或“编辑页脚”进行自定义。

4. 题目:在PowerPoint中,如何将一张幻灯片复制到另一张幻灯片?答案:在PowerPoint中,复制一张幻灯片到另一张幻灯片的步骤如下:a. 打开PowerPoint并选择要复制的幻灯片。

b. 右键点击幻灯片,选择“复制幻灯片”。

c. 导航到目标幻灯片的位置。

d. 右键点击目标幻灯片,选择“粘贴幻灯片”。

5. 题目:在Outlook中,如何设置邮件规则以自动将特定发件人的邮件标记为高优先级?答案:在Outlook中设置邮件规则以自动将特定发件人的邮件标记为高优先级的步骤如下:a. 打开Outlook并进入规则和警报设置。

b. 点击“新建规则”。

c. 选择“从空白规则开始”。

d. 选择“从发件人”并输入特定发件人的邮箱地址。

e. 设置条件为“邮件到达时”。

f. 在“执行以下操作”部分,选择“标记为”并设置优先级为高。

g. 点击“完成”保存规则。

6. 题目:在Access数据库中,如何创建一个新的表?答案:在Access数据库中创建一个新的表的步骤如下:a. 打开Access数据库。

b. 在“创建”选项卡中,点击“表”。

金山软件笔试测试题目

金山软件笔试测试题目

金山软件笔试测试题目金山软件笔试测试题目【题目一:编程题】编写一个程序,实现一个简单的计算器,能够完成加、减、乘、除的基本运算。

示例输入:8 + 3示例输出:11示例输入:12 - 5示例输出:7示例输入:6 * 4示例输出:24示例输入:16 / 4示例输出:4【题目二:算法题】给定一个字符串,其中只包含大小写字母和空格,请将每个单词的首字母变为大写字母,并将单词与单词之间用一个空格分隔开。

示例输入:"hello world"示例输出:"Hello World"示例输入:"i am a student"示例输出:"I Am A Student"【题目三:编程题】编写一个程序,实现一个简单的素数判断函数,判断一个给定的正整数是否为素数。

示例输入:13示例输出:示例输入:16示例输出:不是素数示例输入:29示例输出:是素数【题目四:算法题】给定一个由数字组成的字符串,计算出字符串表示的数字的值,并返回结果。

示例输入:"123"示例输出:123示例输入:"456789"示例输出:示例输入:"789456"示例输出:789456【题目五:算法题】给定两个有序整数数组nums1和nums2,请计算两个数组的交集,并将结果按升序排列。

示例输入:nums1 = [1, 2, 3, 4, 5]nums2 = [4, 5, 6, 7, 8]示例输出:[4, 5]示例输入:nums1 = [3, 5, 7, 9, 11]nums2 = [2, 4, 6, 8, 10]示例输出:[]【题目六:编程题】编写一个程序,输出1到100之间的所有整数,如果这个整数是3的倍数,则输出Fizz;如果这个整数是5的倍数,则输出Buzz;如果这个整数既是3的倍数又是5的倍数,则输出FizzBuzz。

金山wps2017 校招笔试(前端A卷)

金山wps2017 校招笔试(前端A卷)

5. 去重。数组[1,2,3,1,'1','2',2]去重后应为[1,2,3,'1','2']。
答案相信很容易就能得到,代码不贴出。
6. 有两个小写出 s2 中增加的字符,算法时间复杂度最好接近 O(n) (如 s1 是'abc',s2 是'cbad',那么增加的字符为‘d’)。
3. 第三题忘了,想到再补充,总之不难
4. 以下代码输出结果为
var a = {}; b = { key: 'b'
}, c = { key: 'c' };
a[b] = 123; a[c] = 456;
console.log(a[b]);
// 456
答案虽然写对了,但是不太肯定,个人认为是 a[b]这样调用的时候,b 会 调用 toString 方法,b、c 调用此方法时,都会返回‘[object Object]’ (经 Chrome 测试得到),所以 a[b] === a[c],有不同意见者欢迎提出。
这是最后一道题,我不敢保证写对,所以代码也不贴出。
2. 使用 for 循环从 i=0 遍历到 i=9,每隔一秒输出 i(题目大意,具体不记 得)
var i; for (i = 0; i < 10; i++) { (function(j) { setTimeout(function() { console.log(j); }, 1000 * j); })(i); }
// undefined
var setA = function() { a = 2; }
// 相当于改变 setA 指向的函数

金山笔试

金山笔试

一、简答题1、简述在什么情况下使用数据结构中数组、链表和哈希表2、简述java中提供了哪些线程同步的方法1 wait方法2 notify方法3 synchronized3、请例举android中常用布局对象,并简述其用法在Android中,共有五种布局方式,分别是:FrameLayout(框架布局),LinearLayout (线性布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

4、android中哪些创建自定义UI组建的方法,请分别简述其实现原理android提供了精巧和有力的组件化模型构建用户的UI部分。

主要是基于布局类:View和ViewGroup。

在此基础上,android平台提供了大量的预制的View 和ViewGroup子类,即布局(layout)和窗口小部件(widget)。

可以用它们构建自己的UI。

5、android中提供了哪些异步处理任务的方法,并简述其用法AsyncTask的执行分为四个步骤,每一步都对应一个回调方法,这些方法不应该由应用程序调用,开发者需要做的就是实现这些方法。

使用Handler的大致流程:1) 首先创建一个Handler对象,可以直接使用Handler无参构造函数创建Handler对象,也可以继承Handler类,重写handleMessage方法来创建Handler对象。

2) 在监听器中,调用Handler的post方法,将要执行的线程对象添加到线程队列当中。

此时将会把该线程对象添加到handler对象的线程队列中。

3) 将要执行的操作写在线程对象的run方法中,一般是一个Runnable对象,复写其中的run方法就可以了。

6、android中提供了哪些存储数据的方法,并简述其用法(1)使用SharedPreferences存储数据;它是Android提供的用来存储一些简单配置信息的一种机制,采用了XML格式将数据存储到设备中。

金山软件笔试题

金山软件笔试题
懂得预处理器将为你计算常数表达式的值因此直接写出你是如何计算一年中有多少秒而不是计算出实际的值是更清晰而没有代价的
金山软件笔试题
第一题是如何测试一个安装程序,选用什么工具,什么方法;
用虚拟机测试安装程序,在虚拟机上运行安装程序。
主要测试安装时的安装目录、环境变量、硬件环境以及卸载过程等。
第二题是软件测试前需做哪些准备工作;
①明确测试对象,了解测试内容;
②根据相关文档(需求文档和设计文档)编写软件测试计划,如测试策略、测试方法;
③设计测试用例;
④搭建测试环境;
最后是执行测试。
(提交测试报告)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

曾庆伟,您好!
这是金山办公软件有限公司(WPS)的网上招聘邮件,您应聘的岗位是“开发工程师(C++)”。

以下是试题,请将内容复制到本地进行答题:
第一部分
1、请描述C++ 的如下语法特性和常用场景,并给出代码实例:
●带参数的构造函数
●关键字mutable
●操作符重载
2、改错
请阅读以下代码,并指出以下代码中存在的问题或隐患。

提示:程序可能有编译错误。

class Shape
{
public:
virtual void Draw() = 0;
};
class Circle: public Shape
{
int m_x, m_y, m_r;
public:
Circle() { memset(this, 0, sizeof(*this)); }
void SetCenter(int x, int y) { m_x = x; m_y = y; }
void SetRadius(int r) { m_r = r; }
void Draw(bool bFill = false) { ... /* 代码略 */ } };
... // 其他的一些 Shape 派生类
void wmain()
{
vector<Shape> shapes;
... // 从文件中读入 Shape 数据,并写入 shapes
for (shapes::const_iterator it = shapes.begin();
it != shapes.end(); ++it)
it->Draw();
}
3、STL应用
请参考下面程序,说明当使用vector容器时,需要注意哪些类似的问题
std::vector<std::string> array;
...
for(std::vector<std::string>::size_type i=array.size()-1; i>=0;
--i)
{
printf("Hello, %s!\n", array[i]);
}
4、智能指针
在COM规范中,接口采用引用计数(Reference counter)来维护对象的生命周期。

在书写代码时,要小心维护引用计数,例如:
IMy* pMy = NULL;
hr = pUnk->QueryInterface(IID_IMy, (void**)&pMy);
<< 实际的功能代码 >>
pUnk->Release();
pMy->Release();
问题1:请讲述这样的代码在书写时,比较容易带来什么问题。

问题2:智能指针可以简化维护此类代码的工作量,请给出一个智能指针实现和使用的例子。

第二部分
1、二进制数模式
考虑n位二进制数,有多少个数中不存在两个相邻的1。

例如,3位数中有5个数符合这一要求:000、001、010、100、101。

1、试找出其中的规律
2、请给出完整代码实现(参数输入代码可略)
3、试证明你找到的规律是正确的
2、对象速查表
假设需要实现一个对象速查表,具体的要求如下:
1.该表中将保存大量(几千万个)对象地址(指针),以下称为记录
2.支持频繁查询一个指针是否记录在表中
3.支持频繁添加和删除记录
请尝试给出几种可能的实现方式,并对其运行效率作出比较。

对你认为最优的方案给出主要部分伪代码。

3、迷宫
给定一个迷宫,它除了墙之外,还有门和钥匙。

其中,钥匙和门放在不同的地方,并为双射关系(一扇门只对应一把钥匙,反之亦同)。

1、给定一个没有门的迷宫,以及起点和终点,请给出最短路径;
2、给定有门和钥匙的迷宫、起点和终点,请给出一条路径;
3、给定有门和钥匙的迷宫、起点和终点,请给出最短路径;
请给出上述算法思路,和主要部分伪代码。

第三部分
1、软件设计
请从以下几个命题中任选一个,以自己熟悉的方式给出该软件的尽可能详细的设计:
●类似Winzip的压缩软件(压缩算法不需要设计)
●一个简单的绘图程序(类似Windows画笔)
●一个多线程下载客户端(协议可以使用HTTP/FTP或自拟)
●即时通信软件(类似Live Messenger、QQ)
●一个在线图片分享服务(支持评论,要说明表结构)
●一个分布式大批量文件压缩服务(将大量文件分布到多台服务器上计算以提高整体吞吐
率)
答卷时间为3小时,以服务器时间为准;答题完毕之后,请直接回复此邮件。

注意:回复邮件时,请在邮件标题上加上您的姓名、邮箱地址及应聘岗位名称。

有关笔试考试结果:笔试考试结果会在国庆前统一邮件通知。

笔试通过的学生将约现场面试,面试时间及地点以短信或电话通知为准。

加盟金山,成就梦想。

预祝您考出好成绩!
金山WPS人力资源部
联系人:孙小姐。

相关文档
最新文档