题目转自:http://blog.csdn.net/morre/archive/2009/09/01/4509390.aspx

迅雷2010校园招聘吉林大学第二次笔试题

答题时间: 2小时,请将答案写在答题纸上
一. 有n个文件的长度记载在一个无符号64 位整数数组中unsigned __int64 file_length[n],把这n 个文件从逻辑上按序首尾拼接在一起形成一个逻辑上的大文件,然后以每块长度为unsigned block_length把这个逻辑上的大文件划分成大小相等的数据块(当然,最后一块有可能比block_length小),请定义和实现一个函数,把 边界块的序号集合返回给函数的调用者(第一个数据块序号为0)。
注:边界块指的是跨多个文件的数据块。(30分)

二. 请实现一个函数,把两个从大到小的有序链表合并成一个链表,新的链表是一个从小到大的有序链表。
struct list
{
int value;
list* next;
};
list * merge (list *list1_head, list *list2_head);
(30分)

三. 如果两个英文单词,组成它们的字符集合相同,而且相同字符出现的次数也相同,则称这两个词匹配:比如说:同”abbc”与词”babc”是匹配的。有一个 词典,存储在字符串数组const char* dictionary[n]中,数组的每一个元素是一个词。对于任意给出的句子。句子中的单词使用空格分割。请实现以下函数,判断句子中是否有词和词典中 的词匹配。
bool is_matching( const char* dictionary[], int n, const char* sentence);
(40分)

注意:这一题需要先描述思路,再写程序,没写思路扣10分。

=================================================================

1.实现memcpy(void* dest,const void*src,unsigned int count)
2.合并两个链表Lsit* merge(List *l1,List*l2),合成的新链表要以data从大到小有序
3.实现字符串转换"I love thisgame"转换成"game this love I",char* convert(char* s)
4.实现一个高效率的程序(包括所需程序代码),以尽量短的时间,将用户信息表中150张按照时间hash的表(每张表的数据量为100万,数据字段包含《最近修改时间戳/username/nickname/出生地/所在地/年龄/性别/自我介绍》),转换成按照username hash的100张表。转换过程方法和过程需要考虑:
a)尽可能短的时间中断用户服务;
b)尽可能少的使用机器内存。
要求先写编程思路,再写代码,还有适当的注释
除了第一题外,都是考数据结构的,自己也是偶尔在网上做了迅雷的在线题,通过后才会去做笔试(迅雷派人到武汉来了),不过感觉应该是大三的去比较合适,自己大二还不太适合,呵呵。
当时做的时候感觉做的不太好,用STL编程太入迷了,结果很多基础的东西都没处理好,不过通过这次笔试,发现基础真的很重要。
不明白为什么招C++工程师居然不考STL,难道STL有些公司不喜欢用,迅雷网上试题考C++的东西也很少,大部分是C语言的东西(不过基础一定要好)。
现在又发现了Boost,不知道自己学的有没有用,哎,郁闷啊,难道一定要去搞Java吗,下学期有Java 的课程,还要在语言上花很多时间啊....还有算法分析与设计的课程,觉得这才是重点与难点,要加油啊。

1、选择题30道
如char a=123;
a=a|057;
printf("%d%o/n",a,a);之类
2、简答
(1)  static的特点
(2)引用和指针的区别
(3)记不起来了
(4)如何使图像变得平滑
3、编程题
(1)内存复制
(2)有效管理类
(3)两数组的中位数,时间复杂度o(lg n)

附(1):

void   memcpy(void*   pvTo,  void*   pvFrom,   size_t   size) 
  { 
  void*   pbTo   =  (byte*)pvTo; 
  void*   pbFrom   =  (byte*)pvFrom; 
  ASSERT(pvTo   !=   NULL  &&   pvFrom   !=   NULL);   //检查输入指针的有效性 
  ASSERT(pbTo>=pbFrom+size   ||  pbFrom>=pbTo+size);//检查两个指针指向的内存是否重叠 
  while(size-->0) 
  *pbTo++   ==   *pbFrom++; 
  return(pvTo); 
  }

void   *  memcpy(void   *s,   const   void  *s0,   size_t   n) 
             { 
             if   (n   !=   0)   { 
           char   *s1   =   s; 
           const   char   *s2   =  s0; 
          
          do  { 
          *s1++  =   *s2++; 
          }  while   (--n   !=   0); 
           } 
           return   (s); 
           } 
各种情况包括:
1、参数是指针,检查指针是否有效
2、检查复制的源目标和目的地是否为同一个,若为同一个,则直接跳出
3、读写权限检查
4、安全检查,是否会溢出
memmove考虑重叠问题

1. 给你10台机器,每个机器2个cpu,2g内存,现在已知在10亿条记录的数据库里执行一次查询需要5秒,问用什么方法能让90%的查询能在100毫秒以内返回结果。

2. 一个长度为10000的字符串,写一个算法,找出最长的重复子串,如abczzacbca,结果是bc。

3. 一个保存有10000个URL的文本文件,删除其中相同的URL。

4. 连接两个单向链表,返回排序后的结果。

5. 将9个石子放在9x9的方格中,要求同行、同列、45度上无两个石子。

6. 有一幢100层高的大楼,给你两个完全相同的玻璃围棋子。假设从某一层开始,丢下玻璃棋子就会破碎。那么怎么利用手中的两颗棋子,用一种什么样的最优策略,知道这个临界的层高呢?

7. 用c++写一个函数,如Foo(const   char   *str),打印出str的全排列,如abc的全排列:abc, acb, bca, dac, cab,cba

8. 求出一字符串中最长的数字串。比如as123cdf1234f,返回1234,char* FindNumber(char * out,char *in)。

迅雷笔试题 /*定义循环左移函数(我没有用左移函数)*/
{
int i,j;
char temp=str[0];
for (i=0;i<m;i++) str=str[i+1];
str=temp;
}
void pai(char str[],int m,int n) /*定义全排列函数*/
{ int k;
void chang(char str[],int m);
if (m<n) /* 定 义 递 归 调 用 出 口 */
{
for (k=0;k<=m;k++)
{
pai(str,m+1,n); /*递归调用*/
chang(str,m); /*调用左移函数*/
}
}
else printf("%s/t",str);
}
1.
include "stdio.h"
main()
{char str[]="ABCD"; /*全排列字符,可以任意多个(相应的下面排列函数中参数"4"改成全排列字符的个数)*/ clrscr();pai(str,0,4); /*这里参数0(下标)表示从第一个元素开始,4表示元素个数(不是下标)*/ getch();
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
今天在家看碟,突然接到迅雷一个电话让我去笔试。遇到两个很有意思的题目,现有奖征集第一题的答案:B1套餐一份。

1.<征集答案>给你10台机器,每个机器2个cpu,2g内存,现在已知在10亿条记录的数据库里执行一次查询需要5秒,问用什么方法能让90%的查询能在100毫秒以内返回结果。

2.一个长度为10000的字符串,写一个算法,找出最长的重复子串,如abczzacbca,结果是bc。最后就做出这一道题目,时间复杂度为O(n!), 空间复杂度为O(n)。如果有更好的算法,还请指教。

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
凭印象了:

算法题:

1.连接两个单向链表,返回排序后的结果。

2.一个保存有10000个URL的文本文件,删除其中相同的URL。

思路1:使用bloom filter算法,有误判

思路2:hash_map

3.将9个石子放在9x9的方格中,要求同行、同列、45度上无两个石子。

智力题:

1.一笔画四条直线穿过3x3的9个点。

对于:
1 2 3
4 5 6
7 8 9
这样9个点。
那么
第一线:4-7并且出头一些
第二线:向右上方折回,经过8-6并且再出头一些,直到横向与最上面一行对齐
第三线:向左折回经过3、2,到达1
第四线:向右下划出连通1、5、9 

2.国王给三个囚犯每人戴了一顶帽子,帽子不是黑色就是白色,并且告诉囚犯们谁看到其它两个人都是白帽子或者知道自己戴的是黑帽子,谁就能被释放。囚犯们能看到其它的人帽子颜色,但是看不到自己的帽子颜色。过了一段时间,三个囚犯都没有说话,其中一个聪明的囚犯立刻肯定自己戴的是黑帽子,你知道为什么吗?

3.有16个硬币,A和B轮流拿,每次拿的个数只能是1,2,4之一,谁最后拿谁就输。问可以保证赢吗?

上机题:

nxn的方格,去掉一条对角线的两个对角,余下部分用面积为2的矩形覆盖,即1x2或2x1的矩形,结果是不可能完全覆盖,请编程枚举所有的覆盖情况

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
一个猴子,身带100个香蕉,他距离家50米.   这个猴子要带香蕉回去.但是他一次最多只能背50个香蕉.
而且,每走一米他就要吃掉一个香蕉(往回走也要吃香蕉).
问:这个猴子最后最多可以带多少个香蕉到家.
能不能推广到其他情况,例如500个香蕉100米?

、、、、、、、、、、、、、、、、、、、、、、、、、、、
3 人戴 5 个帽子,三蓝两红,自己看不到自己的帽子,只能看到别人的.提问时,前两个人都说不知道自己什么颜色,第三个人居然知道.
我没看到原题, 不过我觉得这道题应该有一个漏掉的说明: 每人只能戴1顶帽子. 否则,这道题目就挺繁琐了. 另外, 题目要问的可能是: 这三个人分别戴了什么颜色的帽子?
我的解(从第1个人到第3个人):
1. 蓝, 蓝, 蓝

2. 红, 红, 蓝

3. 蓝, 红, 蓝

4. 红, 蓝, 蓝

另外, 如果考虑每个人至少戴1顶帽子, 最多3顶帽子的话, 还要加上如下情况:
1. (红, 蓝), (红, 蓝), 蓝

2. (红, 蓝), 红, 蓝

3. (红, 蓝), 蓝, 蓝

4. 红, (红, 蓝), 蓝

5. 蓝, (红, 蓝), 蓝

一. 有n个文件的长度记载在一个无符号64位整数数组中unsigned__int64 file_length[n],把这n 个文件从逻辑上按序首尾拼接在一起形成一个逻辑上的大文件,然后以每块长度为unsigned block_length把这个逻辑上的大文件划分成大小相等的数据块(当然,最后一块有可能比block_length小),请定义和实现一个函数,把边界块的序号集合返回给函数的调用者(第一个数据块序号为0)。
注:边界块指的是跨多个文件的数据块。(30分)

二. 请实现一个函数,把两个从大到小的有序链表合并成一个链表,新的链表是一个从小到大的有序链表。
struct list
{
int value;
list* next;
};
list * merge (list *list1_head, list*list2_head);
(30分)

三. 如果两个英文单词,组成它们的字符集合相同,而且相同字符出现的次数也相同,则称这两个词匹配:比如说:同”abbc”与词 ”babc”是匹配的。有一个词典,存储在字符串数组const char* dictionary[n]中,数组的每一个元素是一个词。对于任意给出的句子。句子中的单词使用空格分割。请实现以下函数,判断句子中是否有词和词典中的词匹配。
bool is_matching( const char* dictionary[],int n, const char* sentence);
(40分)

迅雷2010校园招聘吉林大学第二次笔试题相关推荐

  1. TCL集团2013校园招聘C/C++方向笔试题

    TCL集团2013年校园招聘笔试题[C/C++方向] 提示:本测试题总分100分,请60分钟内完成测试. 一.判断题(正确的打√,错误的打×,每题1分,合计1x10=10分) 1. C语言中,0162 ...

  2. 网易游戏2016校园招聘数据挖掘研究员在线笔试题和答案

    刚做完网易在线笔试题,感触最深的地方是,虽然题目形式和ACM题目相似,但是内容更偏向于实际应用.总共有四个题目,第一个题目属于字符串匹配类型,难度较低,第二个题目是模拟SQL语句的输出,第三个题目是K ...

  3. 2015-8-29阿里校园招聘研发project师笔试题

    前言:原题来自于网络:http://www.cnblogs.com/nausicaa/p/3946694.html.本人依据自己理解对题目进行解答.因为水平有限.题目有不会做.做错的地方.欢迎大家留言 ...

  4. 阿里巴巴2015秋季校园招聘研发工程师在线笔试题

    1. 下列关键字序列为堆的是 . A. 100, 60, 70, 50, 32, 65 B. 60, 70, 65, 50, 32, 100 C. 65, 100, 70, 32, 50, 60 D. ...

  5. 阿里巴巴集团2014年校园招聘系统工程师北京笔试题

    第一部分 单选题(前10题,每题2分;后10题,每题3分;共50分.选对得满分,选错倒扣一分,不选得0分.) 1.字符串"alibaba"有 个不同的排列. A. 5040 B. ...

  6. 2015年阿里巴巴校园招聘研发岗在线笔试题(超全)

    笔试时间:2014-08-29 笔试方式:在线 笔试岗位:阿里巴巴研发岗位 选择题: 默认block  size情况下,Ext3文件系统支持的最大文件大小是 ______. 甲乙丙路发车间隔均为10分 ...

  7. 猎聘网2017年校园招聘研发类岗位笔试题

    (1) 判断两个字符串是否互为循环表示.如"abcd"和"dabc"是互为循环表示,"body"和"dybo"也是互为循 ...

  8. 360校园招聘2015届技术类笔试题

    1.上高中的小明暗恋女神三年,高考结束后,小明决定向女神表白.这天,小明来到女神楼下等待女神的出现,时间一分一秒的流逝,两个多小时过去了,女神还没有出现,小明看了下表,时针和分针的位置正好跟开始等的时 ...

  9. 360校园招聘2015届技术类笔试题(一)

    1.上高中的小明暗恋女神3年.高考结束后,小明决定向女神表白.这天,小明来到女神楼下等待女神的出现,时间一分一秒的流逝,两个多小时过去了.女神还没有出现,小明看了一下表,时针和分针的位置正好跟开始等的 ...

最新文章

  1. R语言使用dplyr聚合统计分组数据、ggplot2可视化分组线图、使用geom_line函数自定义设置线条类型、粗细、颜色(Change line types + colors by groups)
  2. WPF 仿IPhone滑块开关 样式 - CheckBox
  3. 关于C++全局变量和静态变量初始化的一些总结
  4. php漏洞黑掉数据库,WDCPnbsp;add_user.php任意数据库添加任意用户漏洞分析
  5. jQuery标题文字淡入淡出显示效果
  6. 数据库设计精选视频_11种精选工具和服务,可改善您的设计工作
  7. 如何在对话框程序中让对话框捕获WM_KEYDOWN消息
  8. Docker安装MySQL 8 for Mac(图文详解)
  9. Auto CAD:CAD软件之上菜单栏(CAD选项设置、常用工具(样条曲线/多段线/倒角/移动/镜像/偏移/修剪工具/延伸/阵列)、修改工具(拉长/编辑多段线/对齐命令、注释/标注)简介之详细攻略
  10. ps怎么去掉框框不伤字体_PS如何去掉和替换图片中的文字? 照着学就行了
  11. OneApiConnect通讯demo,fins欧姆龙协议实现
  12. 如何才能找到影音文件的真实下载地址
  13. 02-AD软件基本使用第二讲(器件介绍)
  14. ssm毕设项目高校学生社团管理系统n4pcu(java+VUE+Mybatis+Maven+Mysql+sprnig)
  15. 互联网日报 | 7月13日 星期二 | 张近东辞任苏宁易购董事长;斗鱼虎牙宣布终止合并;联想集团二季度蝉联全球PC销量冠军...
  16. 正则表达式“\\s+“ 匹配任意空白字符
  17. 使用STC-ISP软件生成定时器初始化函数遇到的问题
  18. Fegin远程调用示例实战
  19. CentOS 安装 rar、zip 解压缩
  20. 【获奖公布】 |新年新目标,立Flag的时候又到了

热门文章

  1. NSString NSArray NSDictionary NSSet 中的部分方法
  2. 前端面试题之【CSS】
  3. 【方向盘】jdbc使用到了哪些设计模式
  4. 百度java面试题(一)2020整理
  5. 音频文件如何转成mp3格式
  6. 【源码阅读】SIR-GN: A Fast Structural Iterative Representation Learning Approach For Graph Nodes
  7. 未连接到互联网错误的解决方案
  8. 微信打开页面,下载东西时调用其他浏览器下载
  9. 超分文章记录 SRCNN-FSRCNN-ESPCN-VDCN-DRCN-RDN-LapSRN-SRDenseNet-SRGAN
  10. go使用交叉编译时,二进制文件运行不了,出现line 1: syntax error: unexpected newline