迅雷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分。

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



转载声明:


本文来自CSDN博客,转载请标明出处:

http://blog.csdn.net/morre/archive/2009/09/01/4509390.aspx