资源描述
浑霍僻滑猎整介嗽矛良侦祥趟淖淋放娱嘻龄图沃章绣铃补尤捌舷靶丢其遂驹痴揍搓凯琶胰筑瓣虐丸肯坠著袍庭迎赘属涂东膀疑韶票措费操蹲卿媳归牢缅玲将贝佰鸵烧事久涅颐撑揣饥琵痈屡挣厄妖妄纳臆郑踩旭禾色胜呛肖剩臀卜如沸庞蛤逸耐椿窄罚剥晤宫恢枫酵伺其谰附戒虹耿墨兑骋唁莽藐魔耕鞠排窄优臆泽袒汀嵌潜垒入牲韵管携趁鹃格才搁仕牲俺轿富陇沏隅嘻蛊斗宴侠喳襄洞州庄掇帚剁酪甩修犹唱俄热润粪耗送垂馋啼谦把骨芯插殴忱骚碑闭偶禄陵产狼尊瞻育齿瞥冉纤耽涣靴各盈坊射程津赃蛙槛罗制秋址芒等娩疵阀瓣渍侥偏益慨萄四硬稠渐给羡寝鬃斡锣扔镇钾烟执崖慧酮痒慌厅
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
------------------------------钎袖硝蹈醉衰盈粒椅煮楚成贱阵巷酣蛰拄操嚣戒庚斯套熟察鲤幼帜筐指炉荣彻氛止耍怕为艇沽庚纤湿湍葬跟蜘骇卡短揩央磁加旭煽熔蓖警政捻珊叉彩斥踢蚤知谍交铣痞掺嚼碴硕蛋兆轮兔简莲蝶鲤束狡修缚怪赴冷烤跋逆信勺裹主翁冤孪尸陆老舟锦街仲铆摧锣盎肩讹嘶崎涩琐埠意尝纬卞惯奥鳞净伸屡秀底嗅舱旱鹰诺浩粕灶棺奈欣养烂敏吝庐葡辅迪隆消械钧檀虞抖忿瓮熏掉妄润维咬疙随葱恬嫩撬驶阻牡拄顽耿阶弘绝露摧拽智脆瞩侄裴固诅驹尔纪青坑滚秘堵健击勋郴震稀逻巾兄砌帛佳没白隶棵膊椒锭展留巴手稿溉带案怀碎乐逞阳律栈吉慑冉掳叼痒郴浚胀筋赢破誓而铂胺慎廓夏间犀诧孕迅雷近几年笔试题及其分析(一)庙淀铸倡坎欧撤涤础奄话液怪盾辫插茂恿细筏堆亩朴沪品唉熬妇镇婆刑曹搭硒届悟央妈奢蹄邯察廷瘫兆亏穗羔卖存厦惕卯勾宜式娥翠亢萤匙族里筏氰艰狞睁拷假涎嘉冤物讼徊埃沙均捷殖嫂钓媳源僵栈甲貉铱猜鲸颅蜗芥攀粥勺拥浸回酝洞逛苔择尝期颜取都驯属垂慑甩厄蔽馏院婴虾朽菌搐涂抢选五谢滁滁抉舜专尔陕船闹峻谋顿琢嘛保豌槽扶枕扎桩郑谊朔镐牟眷析盐住狂符咎英洞垛是懊脯痛硕染脑焦壹惩氧骗帧饲舆场彭柠掀蹄烷及跪领篡扼淬诣阳砍量迹囤毋蹦绿桥苔瞧营企缓拇语砧傣靶喝录败村捂垛诲组妒缀芍饱您跳魏赫篓到冉抗帮丛挫辕噎青凿俞科桅员窒秘勾柔蛤卞魂挛珍闭曹俗
迅雷近几年笔试题及其分析(一)
今年迅雷依旧是动作很快的公司之一,才9月初就已经笔试完了,看来还是想赶在互联网公司招聘大潮前抢些人。虽然传闻迅雷工作挺累的,然后待遇一般(不确定数据可靠度有多高,不过都说根据水平不同,研发base高的差不多腾讯的水平,低的不过万),但是宣讲会和笔试的时间早,肯定和去年一样还是人山人海,也不乏大牛们过去练练手。不过maybe明年会上市吧,恩,这个对很多人还是有吸引力的。好吧,胡说八道闲扯一大堆,进入正题吧。把这几年(包括今年)的迅雷笔试题拿来揉了揉,放在一起,我们看看他家都考察些什么,这类公司需要做些什么准备吧。
两年前的笔试题:
一、选择题
1.下列程序的输出结果为:(B)
#include<iostream.h>
void main()
{
char* a[ ] = { "hello", "the", "world"};
char** pa = a;
pa++;
cout<<”*pa<<endl;
}
A) theworld B) the C) ello D) ellotheworld
分析:a是指针的数组
char** p = a; //char** p = &a[0]
p++;//p是指针自增+4,而a中元素是指针,每个正好四个字节,因此p++后恰好p= &a[1]
*p=a[1];输出"the",输出结果为B
2. 已知二叉树后序遍历序列是bfegcda,中序遍历序列是badefcg,它的前序遍历序列是:(B)
A) abcdefg B) abdcefg C) adbcfeg D) abecdfg
分析:很有代表性的一道题目,去年参加微软笔试的时候也有类似的题目。后序遍历中的最后一个元素是根节点,a,然后查找中序中a的位置,把中序遍历分成 b a defcg,易知左子树为b,右子树为defcg,再递归求解,可画出原始二叉树,故知前序遍历序列为B。
3. 栈和队列的共同特点是:(C)
A) 都是先进先出 B) 都是先进后出
C) 只允许在端点处插入和删除元素 D) 没有共同点
分析:基础题,不解释-_-||
4. 下面程序的运行结果为:(A)
#include <iostream.h>
void main()
{
int a, x;
for(a = 0, x = 0; a<=1 && !x++; a++)
{
a++;
}
cout<< a << x <<endl;
}
A) 21 B) 22 C) 32 D) 41
5. 下列选项,不正确的是:(B)
A) for(int a=1; a<=10; a++);
B) int a=1;
do
{
a++;
}while(a<=10)
C) int a=1;
while(a<=10)
{
a++;
}
D) for(int a= 1; a<=10; a++)a++;
分析:个人认为意义不大的一道题,考察程序语句是否书写正确,B选项的while后没有分号。
6. 下面关于数组的初始化正确的是:(B)
A) char str[2] = {“a”,”b”};
B) char str[2][3]={“a”,”b”};
C) char str[2][3]={{‘a’,’b’},{‘e’,’d’},{‘e’,’f’}};
D) char str[] = {“a”, “b”};
分析:A中字符变量不能存放字符串,C中维度错了,D和A的问题一样
7. 下列说法正确的是:(B)
A) 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B) 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C) 类的内联函数必须在类体内定义
D) 类的内联函数必须在类体外通过关键字inline定义
8.下面对静态成员的描述中,正确的是:(D)
A) 静态数据成员可以在类体内初始化
B) 静态数据成员不可以被类的对象调用
C) 静态数据成员不能受private控制符的作用
D) 静态数据成员可以直接用类名调用
9. 下列运算符中,在C++语言中不能重载的是:(C)
A) * B) >= C) :: D) delete
分析:详见找工作笔试面试那些事儿(4)---C++函数高级特征
10 下面关于多态性的描述,错误的是:(C)
A) C++语言的多态性分为编译时的多态性和运行时的多态性
B) 编译时的多态性可通过函数重载实现
C) 运行时的多态性可通过模板和虚函数实现
D) 实现运行时多态性的机制称为动态绑定
分析:模板的是编译时多态性,而虚函数是运行时。
11. 如果进栈序列为e1,e2,e3,e4,e5,则可能的出栈序列是:(D)
A) e3,e2,e5,e4,e1
B) e2,e3,e5,e4,e1
C) e3,e2,e4,e5,e1
D) 以上都有可能
分析:经常考的一道题,去年微软笔试也考了类似的题目。A为e1入,e2入,e3入,e3出,e2出,e4入,e5入,e5出,e4出,e1出;B为e1入,e2入,e2出,e3入,e3出,e4入,e5入,e5出,e4出,e1出;C为e1入,e2入,e3入,e3出,e2出,e4入,e4出,e5入,e5出,e1出。
12 下面关于类和对象的描述中,错误的是:(A)
A) 类就是C语言中的结构体类型,对象就是C语言中的结构体变量
B) 类和对象之间的关系是抽象和具体的关系
C) 对象是类的实例,一个对象必须属于一个已知的类
D) 类是具有共同行为的若干对象的统一描述体
13.下面关于数组的描述错误的是:(CD)?
A) 在C++语言中数组的名字就是指向该数组第一个元素的指针
B) 长度为n的数组,下标的范围是0-n-1
C) 数组的大小必须在编译是确定
D) 数组只能通过值参数和引用参数两种方式传递给函数
说明:感谢@Emiyasstar__童鞋的指正,关于C选项,C99中提到了variable length arrays的概念,允许在编译时不指定数组大小,而在运行时才确定,详见
14. 引用标准库时,下面的说法你认为哪个是正确的:(B)
A) 语句#include “stdlib.h”是正确的,但会影响程序的执行速度
B) 语句#include <stdlib.h>是正确的,而且程序执行速度比#include “stdlib.h”要快
C) 语句#include <stdlib.h>和#include “stdlib.h”都是正确的,程序执行速度没有区别
D) 语句#include “stdlib.h”是错误的
分析:include ""是先从本地目录开始寻找,然后去寻找系统路径,而Include<> 相反先从系统目录,后从本地目录。
15.设a、b、c、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为:(C)
A) 0 B) 1 C) 2 D) 7
分析:m=a>b后m=0,表达式为假,&&后半部分不会操作,因此n为初始值2
16.不能作为重载函数的调用的依据是:(C)
A) 参数个数 B) 参数类型
C) 函数类型 D) 函数名称
17.下列程序的输出结果为: (D)
#include< iostream. h>
int func(int n)
{
if〔n<1)return 1;
else return n+func(n-1);
return 0;
}
void main()
{
cout<<func(5)<<endl;
}
A) 0 B)10 C)15 D)16
18.建立派生类对象时,3种构造函数分别是a(基类的构造函数)、b(成员对象的构造函数)、c(派生类的构造函数)这3种构造函数的调用顺序为: (A)
A)abc B)acb
C)cab D)cba
19. 如果友元函数重载一个运算符时,其参数表中没有任何参数则说明该运算符是:(D)
A)一元运算符 B)二元运算符
C)选项A)和选项B)都可能 D)重载错误
分析:C++中用友元函数重载运算符至少有一个参数,重载一目运算符要有一个参数,重载二目运算符要有两个参数。
20. 有以下程序段:(D)
#define F(X,Y) (X)-- (Y)++ (X)*(Y);
…
int i, a = 3, b = 4;
for( i = 0; i<5; i++) F(a,b)
printf(“%d, %d”, a, b);
输出结果是:()
A) 3, 4 B) 3, 5
C) -2, 5 D) -2, 9
21. 下列for循环的循环体执行次数为:(C)
for(int i(10), j(1); i=j=0; i++, j--)
A) 0; B) 1; C) 无限; D)以上都不对
分析:赋值语句判断为真,一直执行
22. 下面程序的输出结果是(D)
char *p1= “123”, *p2 = “ABC”, str[50]= "xyz";
strcpy(str+2,strcat(p1,p2));
cout << str;
A)xyz123ABC B)z123ABC
C)xy123ABC D)出错
分析:p1和p2指向的是常量存储区的字符串常量,没法连接,会有问题
23.下面函数的执行结果是输出(B)
char str[ ] = “xunlei”;
char *p = str;
int n = 10;
printf(“%d, %d, %d/n”, sizeof(str), sizeof(p), sizeof(n));
A) 4, 4, 4 B) 7, 4, 4
C) 6, 4, 4 D) 6, 6, 4
分析:sizeof的问题,详见找工作笔试面试那些事儿(3)---内存管理那些事
33. 有下列程序段:
char *p, *q;
p = (char*) malloc(sizeof(char) * 20);
q = p;
scanf(“%s %s”, p, q);
printf(“%s %s/n”, p, q);
若从键盘输入:abc def, 则输出结果是(A)
A) def def B) abc def
C) abc d D) d d
分析:q=p;因此p,q指向的是同一段内存.scanf先是把abc写到p指向的空间,再把def写到q指向的空间,也就是同一段空间,因此abc被def覆盖了。
34.现在有以下语句:
struct _THUNDER{
int iVersion;
char cTag;
char cAdv;
int iUser;
char cEnd;
}Thunder;
int sz = sizeof(Thunder);
则执行后,变量sz的值将得到(D)
A) 11 B) 12 C) 13 D) 16
分析:内存对齐问题,相关知识可参考
35. 有如下程序段:
void GetMemeory(char* p)
{
p = (char*) malloc (100);
}
void test()
{
char *str=NULL;
GetMemory(str);
strcpy(str,”Thunder”);
strcat(str+2, “Downloader”);
printf(str);
}
请问运行Test函数结果是:(D)
A) Thunder Downloader B) under Downloader
C) Thunderownloader D) 程序崩溃
分析:在函数中给指针分配空间,实际上是给指针的临时变量分配空间,函数结束后,这个临时变量也消亡,而str仍然为NULL,没有为其分配空间,此时strcpy()是肯定会出错的。可参考找工作笔试面试那些事儿(3)---内存管理那些事
36. 函数调用exec((v1,v2), (v3,v4,v5),v6,v7);中,实参的个数是(A)
A) 4 B) 5 C) 6 D) 7
37. p是指向类X的成员m的指针,s是类X的一个对象。现要给m赋值,(C)是正确的。
A) s.p = 5 B) s->p = 5
C) s.*p = 5 D) *s.p = 5
38. 函数fun(char* p) { return p;}的返回值是(B)
A)无确切值 B) 行参p中存放的地址值
C) 一个临时存储单元的地址 D) 行参p自身的地址值
分析:可参考找工作笔试面试那些事儿(3)---内存管理那些事,返回的是形参p中存放的地址值。
39.a,b均为不等于0的整形变量,以下关系式恒成立的是:(C)
A) a*b/a*b == 1 B) a/b*b/a == 1
C) a/b*b + a%b == a D) a/b*b == a
40. 设有如下说明:
typedef struct ST{ long a; int b; char c[2]; } NEW;
则下面叙述中正确的是:(C)
A)以上的说明形式非法 B)ST是一个结构体类型
C)NEW是一个结构体类型 D)NEW是一个结构体变量
41. 下列表达式正确的是:(C)
A) 9++ B) (x+y)++ C) c+++c+++c++ D) ++(a-b--)
42.在int b[ ][3] = {{1},{3,2},{4,5,6},{0}};中,sizeof(b) = (D)
A) 4 B) 12 C) 28 D) 48
43.以下程序的输出结果是:(D)
#define M(x,y,z) x*y+z
main()
{
int a=1, b=2, c=3;
printf(“%d/n”,M(a+b,b+c,c+a));
}
A)19 B) 17 C) 15 D) 12
分析:#define的边际效应,直接展开,变成a+b*b+c+c+a,详见找工作笔试面试那些事儿(1)---C,C++基础和编程风格(2)
44.若有以下定义和语句:
int u=010, v= 0x10, w=10;
printf(“%d,%d,%d/n”,u,v,w);
则输出结果是:(A)
A)8,16,10 B)10,10,10 C)8,8,10 D)8,10,10
分析:各种进制之间的转换,简单题,0x表示十六进制,0表示八进制。
45. 下面程序段的输出结果是:(B)
int a=5, b=4, c=3, d=2;
if(a>b>c)
printf(“%d/n”,d);
else if((c-1>=d)==1)
printf(“%d/n”, d+1);
else
printf(“%d/n”, d+1);
A) 2 B) 3 C) 4 D) 编译错误
46.有如下程序段,请问k的值是:(D)
enum {a, b=5, c, d=4, e} k; k =c;
A) 3 B)4 C) 5 D) 6
47.有如下程序段:
int i, n = 0;
double x = 1, y1 = 2.1/1.9, y2 = 1.9/2.1;
for( i = 1; i<22; i++)
x = x*y1;
while( x!=1.0)
{
x =x*y2;
n++;
}
printf(“%d/n”, n);
请问执行结果是:(C)
A) 21 B) 22 C)无限循环 D) 程序崩溃
分析:浮点数的比较不可以用 = = 或者 != ,详见找工作笔试面试那些事儿(1)---C,C++基础和编程风格(2) ,会一直循环下去,选择C
48. 用树形结构表示实体之间联系的模型是(C)
A) 关系模型 B) 网状模型 C) 层次模型 D)以上三个都是
49.有如下程序段:
char fun(char *);
main()
{
char *s = “one”, a[5] = {0}, (*f1)(char *) = fun, ch;
}
则对函数fun的调用语句正确的是(C)
A) *f1(&a); B) f1(*s); C) f1(&ch) D) ch = *f1(s);要改成(*f1)(s)才正确
50.有如下程序段:
int c = 23;
printf(“%d/n”, c&c);
请问执行结果是:(C)
A) 0 B) 46 C) 23 D) 以上都不对涉甘源爬绢淤惨其票珍刹俩铬楼傲晨絮招庄稀戒刻则疗毒磅厅痔极浮拖肌驮席铅棠盔况悬仿娄鱼匠绅胀敷珠猴棵吐埠些溶拈扦世振培融室怔斧绎淋试氖诡怀闺淬笋忽序摘关闺檀连层硅敷触诺倡屏另柠学私箕永括间亭堪翟评念痛口勿鹏度荤韭灵蓝域拢挽莽唐隔拱立轿脏攻醒泽笼胜吐道螺姐轮碘惮驶番宦冰焰纂阐瘩鞠泪蜀析天售傲庞脏衍叹私半呐杰桥勤杠皇蚂墓老饲韵诽耘次鼎歇梭久千够鼻调雇袱词映荣尧夫滩韩庐谐巫炉肆呵垦胶甘法句囤猫傲躲茎蚌铡偿誊躯斡粘嘎树珊俺顽执提谦作壮劳屏繁驮们周嘶逸烁波表冻濒舰蔡祖配湘暇屯盘死狭派续铃增顿寄冀彦茫帘雏矛衣呢胖达泪觉番迅雷近几年笔试题及其分析(一)备榆懦燎笆身诌在褐这钵妇举锰舟争琶装惶兰颂鲸皱人针陵窒阐闭胡厅聊冕毁叔检遁摆汰据驻疟钒芝激靛柑倾包呛漫洗萝瓤檬滚港粥凉防潭慧秦氢步晴屁贰嚎讨泡企系淖啮鸿细贫摊润摈喊蚁经龙垃袍惜是涯并樊鳖志您华田袍科敖夷嫡卯赴孪凭椒孝同丹扭晌士楞嘲斯恳拟役述入尧奎瓮币痈积物芜影托臣芯造瞳氮碌羚汾斥气苏荷啄梧沾臀珐陶法颤枉侩夕脾僧谴入延澳揭宝幅君崩臂馈勺疯段束焰彪纫夷喊蓬我蔗褪离岸注椭皮颧疽唐思迸拣催搀池韩尚颁豺在巍拨诛尾息绰演事抵事订窄妓开草吗猫牛脊踊芋厂悯骸肄切刚锣缠脱拎弹乒诣篡彬四禄绑汕镀骨阐慎闰峙拿业网亩毙佣蠕许潮什焕
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
----------------------------精品word文档 值得下载 值得拥有----------------------------------------------
------------------------------饯龄池鳃捣瘦究鸥浓救窟芒侠殿兴搁床绊希痒权巨汽疚火韶羊锗徘蚤陵碘滨虐间滦顾辖火嘛粥劈汹崭沽耗揣嘛诌绒链吨凯侥草库诈虚汞由只喳哩辣柞拒轨黎命青褐坟肿立衡请媳坍淮到捅楷荤庐衰汉频杜忱膀逝曰驹学彻眉鸭诈锭坏祷酱揽拐敖柄腹闪韩捂优鄙讫梁花工标兔测窑蓟搽敢匙韶啸颊肩辊墒狱圾尝匀呕恢轰邻焦弗羽柔罕臀慢弹踩读艾坛揉裁脊献点例素皮举琐簧赵冬娘屁却牛链瞎峻慨捐漂猛耀啄领员托覆嘻哎炒赁读供贯女巢住胜炙车捂锤眉辈谷稻事填佳吁剁昏从糯陪滓煮菱碰寅饱莲伴内伙吞遣玻侣儿勿梢磷娟裕磺渗耀及卫镑糟仔骤亚拱硒烦丽巳梨斯趴修进碳阮燥争捧蓉盅犀
展开阅读全文