文档库 最新最全的文档下载
当前位置:文档库 › 阿里巴巴2017实习生笔试题(含答案)

阿里巴巴2017实习生笔试题(含答案)

阿里巴巴2017实习生笔试题(含答案)
阿里巴巴2017实习生笔试题(含答案)

答案:D

内联函数:

Tip:只有当函数只有 10 行甚至更少时才将其定义为内联函数.

定义: 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按通常的函数调用机制进行调用.

优点: 当函数体比较小的时候, 内联该函数可以令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联.

缺点: 滥用内联将导致程序变慢. 内联可能使目标代码量或增或减, 这取决于内联函数的大小. 内联非常短小的存取函数通常会减少代码大小, 但内联一个相当大的函数将戏剧性的增加代码大小. 现代处理器由于更好的利用了指令缓存, 小巧的代码往往执行更快。

结论: 一个较为合理的经验准则是, 不要内联超过 10 行的函数. 谨慎对待析构函数, 析构函数往往比其表面看起来要更长, 因为有隐含的成员和基类析构函数被调用!

另一个实用的经验准则: 内联那些包含循环或 switch 语句的函数常常是得不偿失 (除非在大多数情况下, 这些循环或 switch 语句从不被执行).

注意:有些函数即使声明为内联的也不一定会被编译器内联, 这点很重要; 比如虚函数和递归函数就不会被正常内联. 通常, 递归函数不应该声明成内联函数.(递归调用堆栈的展开并不像循环那么简单, 比如递归层数在编译时可能是未知的, 大多数编译器都不支持内联递归函数). 虚函数内联的主要原因则是想把它的函数体放在类定义内, 为了图个方便, 抑或是当作文档描述其行为, 比如精短的存取函数.

-inl.h文件:

Tip:复杂的内联函数的定义, 应放在后缀名为 -inl.h 的头文件中.

内联函数的定义必须放在头文件中, 编译器才能在调用点内联展开定义. 然而, 实现代码理论上应该放在 .cc 文件中, 我们不希望 .h 文件中有太多实现代码, 除非在可读性和性能上有明显优势.

如果内联函数的定义比较短小, 逻辑比较简单, 实现代码放在 .h 文件里没有任何问题. 比如, 存取函数的实现理所当然都应该放在类定义内. 出于编写者和调用者的方便, 较复

杂的内联函数也可以放到 .h 文件中, 如果你觉得这样会使头文件显得笨重, 也可以把它萃取到单独的 -inl.h 中. 这样把实现和类定义分离开来, 当需要时包含对应的 -inl.h 即可。

A 项错误,因为使用inline 关键字的函数只是用户希望它成为内联函数,但编译器有

权忽略这个请求,比如:若此函数体太大,则不会把它作为内联函数展开的。

B 项错误,头文件中不仅要包含inline 函数的声明,而且必须包含定义,且在定义时

必须加上inline 。【关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用】

C 项错误,inline 函数可以定义在源文件中,但多个源文件中的同名inline 函数

的实现必须相同。一般把inline 函数的定义放在头文件中更加合适。

D 项正确,类内的成员函数,默认都是inline 的。【定义在类声明之中的成员函数将

自动地成为内联函数】

EF 项无意思,不管是class 声明中定义的inline 函数,还是class 实现中定义的inline 函数,不存在优先不优先的问题,因为class 的成员函数都

是inline 的,加了关键字inline 也没什么特殊的

答案:D 插入排序

改良的冒泡最优也是n

答案:A

答案:A

答案:B

答案:D

先序遍历中左右中序遍历左中右后序遍历左右中

答案:D

TCP建立连接时

首先客户端和服务器处于close状态。

然后客户端发送SYN同步位,此时客户端处于SYN-SEND状态,服务器处于lISTEN状态,当服务器收到SYN以后,向客户端发送同步位SYN和确认码ACK,

然后服务器变为SYN-RCVD,

客户端收到服务器发来的SYN和ACK后,客户端的状态变成ESTABLISHED(已建立连接),客户端再向服务器发送ACK确认码,

服务器接收到以后也变成ESTABLISHED

然后服务器客户端开始数据传输

答案:F

假设为n进值则 [2*(n^2)+4*(n^1)+0] * [1*n+2]=2*(n^3)+8*(n^2)+8*(n^1)

化简后居然为很等式,n为任意值

答案:B

用户空间与系统空间所在的内存区间不一样,同样,对于这两种区间,CPU的运行状态也不一样。在用户空间中,CPU处于"用户态";在系统空间中,CPU处于"系统态"。

答案:C

select

select能监控的描述符个数由内核中的FD_SETSIZE限制,仅为1024,这也是select最大的缺点,因为现在的服务器并发量远远不止1024。即使能重新编译内核改变FD_SETSIZE的值,但这并不能提高select的性能。

每次调用select都会线性扫描所有描述符的状态,在select结束后,用户也要线性扫描fd_set数组才知道哪些描述符准备就绪,等于说每次调用复杂度都是O(n)的,在并发量大的情况下,每次扫描都是相当耗时的,很有可能有未处理的连接等待超时。

每次调用select都要在用户空间和内核空间里进行内存复制fd描述符等信息。

poll

poll使用pollfd结构来存储fd,突破了select中描述符数目的限制。

与select的后两点类似,poll仍然需要将pollfd数组拷贝到内核空间,之后依次扫描fd 的状态,整体复杂度依然是O(n)的,在并发量大的情况下服务器性能会快速下降。

epoll

epoll维护的描述符数目不受到限制,而且性能不会随着描述符数目的增加而下降。

服务器的特点是经常维护着大量连接,但其中某一时刻读写的操作符数量却不多。epoll 先通过epoll_ctl注册一个描述符到内核中,并一直维护着而不像poll每次操作都将所有要监控的描述符传递给内核;在描述符读写就绪时,通过回掉函数将自己加入就绪队列中,之后epoll_wait返回该就绪队列。也就是说,epoll基本不做无用的操作,时间复杂度仅与活跃的客户端数有关,而不会随着描述符数目的增加而下降。

epoll在传递内核与用户空间的消息时使用了内存共享,而不是内存拷贝,这也使得epoll 的效率比poll和select更高。

答案:F

答案:4

答案:165

//在100-999这900个自然数中,若将组成这个数的三个数字认为是三条线段的长度,那么是三条线段组成一个等腰三角形(包括等边)的共有()个.

#include

usingnamespace std;

int main()

{

int a = 0;

int b = 0;

int c = 0;

int time= 0;

for(int i = 100; i <= 999;i++)

{

c = i % 10;

b = (i - c) / 10 % 10;

a = i / 100;

if(a==0||b==0||c==0)

{

continue;

}

if((a == b && (a + b>c)) || (b == c && (c + b>a)) || (c == a && (a + c>b)))

{

time++;

}

}

cout << time<< endl;

return0;

答案:关联数组

1.循环链表是另一种形式的链式存贮结构。特点是表中最后一个结点的指针域指向头结点,整个链表形成环。

(1)单循环链表——在单链表中,将终端结点的指针域NULL改为指向表头结点或开始结点即可。

(2)多重链的循环链表——将表中结点链在多个环上。

2 队列(Queue)是只允许在一端进行插入,而在另一端进行删除的运算受限的线性表;

3. 栈(stack)在计算机科学中是限定仅在栈顶进行插入或删除操作的线性表。

4. “关联数组”是一种具有特殊索引方式的数组。不仅可以通过整数来索引它,还可以使用字符串或者其他类型的值(除了NULL)来索引它。关联数组和数组类似,由以名称作为键的字段和方法组成。它包含标量数据,可用索引值来单独选择这些数据,和数组不同的是,关联数组的索引值不是非负的整数而是任意的标量。这些标量称为Keys,可以

在以后用于检索数组中的数值。关联数组的元素没有特定的顺序,你可以把它们想象为一组卡片。每张卡片上半部分是索引而下半部分是数值。

5.链表(Linked list)是一种常见的基础数据结构,是一种线性表,是一种物理存储单元上非连续、非顺序的存储结构。双向链表也叫双链表,是链表的一种,它的每个数据结点中都有两个指针,分别指向直接后继和直接前驱。所以,从双向链表中的任意一个结点开始,都可以很方便地访问它的前驱结点和后继结点。一般我们都构造双向循环链表。

答案:B

桶排序的平均时间复杂度为线性的O(N+C),其中C=N*(logN-logM)。如果相对于同样的N,桶数量M越大,其效率越高,最好的时间复杂度达到O(N)。当然桶排序的空间复杂度为O(N+M),如果输入数据非常庞大,而桶的数量也非常多,则空间代价无疑是昂贵的。此外,桶排序是稳定的。

答案:B

答案:F

选项AB是对称的,所以肯定正确,由AB可以看出题目的意图是,这次交换靠的是物品的相对价值相当(小张觉得橡皮比小刀更好,小王觉得小刀比橡皮更好),但明显最后一个选项等值指的是他们的绝对价值

答案:16

1.struct的对齐原则,注意不同的编译器有不同的效果。

2.不同的数据类型在32位和64位下所占字节的区别

32位编译器:

char :1个字节

char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器)

short int : 2个字节

int:4个字节

unsigned int : 4个字节

float: 4个字节

double: 8个字节

long: 4个字节

long long: 8个字节

unsigned long: 4个字节

64位编译器:

char :1个字节

char*(即指针变量): 8个字节

short int : 2个字节

int:4个字节

unsigned int : 4个字节

float: 4个字节

double: 8个字节

long: 8个字节

long long: 8个字节

unsigned long: 8个字节

此处指针先占用8字节。int占用4字节,满足要求不用补齐,char占用一个字节,同时总的字节数必须满足8的倍数即16

答案:100 300 300 500

vector::erase():从指定容器删除指定位置的元素或某段范围内的元素

vector::erase()方法有两种重载形式

如下:

iterator erase( iterator _Where);

iterator erase( iterator _First, iterator _Last);

如果是删除指定位置的元素时:

返回值是一个迭代器,指向删除元素下一个元素;

如果是删除某范围内的元素时:返回值也表示一个迭代器,指向最后一个删除元素的下一个元素;

本题中,当*itor==300成立时,删除第一个值为300的元素,同时itor指向下一个元素(即是第二个值为300的元素)

在for(;;itor++)执行itor,itor指向第三个值为300的元素,进入下一个循环

进入循环满足*itor==300,重复上面的过程,执行完循环,itor执行值为500的元素。所有整个过程中,只删除了2个值为300的元素。

答案:C 可以修改

类的静态成员属于整个类而不是某个对象,可以被类的所有方法访问,子类当然可以父类静

态成员;

静态方法属于整个类,在对象创建之前就已经分配空间,类的非静态成员要在对象创建后才有内存,所有静态方法只能访问静态成员,不能访问非静态成员;静态成员可以被任一对象修改,修改后的值可以被所有对象共享

答案:D

KMP算法:时间复杂度O(p+N)

答案:8

每套校服都包括短袖运动衫,长袖运动衫,厚外套,运动长裤和运动短裤组成.“每种运动服”有个备选方案。说明校服一共有2^5=32种选择方案。

任意3个学生都至少在一种运动服上选择互不相同,假设有老师邀请了n个学生参加挑选,说明C n2<32

答案:C

看第二次抽样即可,与第一次抽的是同一张牌的概率是1/4,不同张的概率是3/4,同一张的话肯定是一样,不同张的时候如果抽中一样的牌的概率是3/15,所以答案是1/4+3/4 * 3/15 = 2/5

阿里巴巴实习生笔试题含答案

阿里巴巴实习生笔试题含答案

答案:D 内联函数: Tip:只有当函数只有10 行甚至更少时才将其定义为内联函数. 定义: 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按一般的函数调用机制进行调用. 优点: 当函数体比较小的时候, 内联该函数能够令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联. 缺点: 滥用内联将导致程序变慢. 内联可能使目标代码量或增或减, 这取决于内联函数的大小. 内联非常短小的存取函数一般会减少代码大小, 但内联一个相当大的函数将戏剧性的增加代码

大小. 现代处理器由于更好的利用了指令缓存, 小巧的代码往往执行更快。 结论: 一个较为合理的经验准则是, 不要内联超过10 行的函数. 谨慎对待析构函数, 析构函数往往比其表面看起来要更长, 因为有隐含的成员和基类析构函数被调用! 另一个实用的经验准则: 内联那些包含循环或switch 语句的函数常常是得不偿失(除非在大多数情况下, 这些循环或switch 语句从不被执行). 注意:有些函数即使声明为内联的也不一定会被编译器内联, 这点很重要; 比如虚函数和递归函数就不会被正常内联. 一般, 递归函数不应该声明成内联函数.(递归调用堆栈的展开并不像循环那么简单, 比如递归层数在编译时可能是未知的, 大多数编译器都不支持内联递归函数). 虚函数内联的主要原因则是想把它的函数体放在类定义内, 为了图个方便, 抑或是当作文档描述其行为, 比如精短的存取函数. -inl.h文件: Tip:复杂的内联函数的定义, 应放在后缀名为-inl.h 的头文件中.

阿里巴巴_2014_用户体验研究专员_实习生_笔试题

加权算术平均数中权重(权数)的实质是? ?各组单位数之间的比值 ?各组的单位数 ?各组的单位数占总体单位数的比重 ?各组的单位数与指标值的乘积 非引导性的问题对访谈的成败起到重要作用,以下哪个选项跟“非引导性”无关? ?问题要关注直接体验 ?保持问题的封闭性 ?问题要客观 ?问题要关注单一主题 请问您以下对信度、效度相互关系的描述,哪个是正确的? ?信度高,效度也就高 ?效度高,信度也就高 ?信度低,效度也可能高 ?效度低,信度也就低 某地区到实体超市消费的人数呈下降趋势,2011年与2010年相比降低4%,2012年又比2011年降低6%,2013年是2012年的95%,则2013年与2010年相比,下降幅度为多少? ?12.0% ?85.7% ?14.3% ?88.0% ?以上都不是 在一次问卷调查中,我们对用户的网上购物态度进行了测量,测量使用了5分态度语句量表,事后我们希望根据用户的网上购物态度对用户进行分类,请问下列哪种统计分析方法是必须的? ?回归分析(Regression) ?相关分析(Correlation)

?聚类分析(Clustering) ?因子分析(Factor analysis) ?方差分析 在可用性测试过程中,请问以下哪些做法是正确的? ?在用户遇到障碍求助时,要积极回应用户的疑问 ?可以鼓励用户在测试过程中,说出自己的操作步骤及疑问 ?在用户遇到障碍时,就要第一时间追问,了解障碍产生的原因 ?要让用户自己确认任务是否完成,研究人员不能帮助用户下结论一个产品的用户流失调研中,它的样本取样可以包含哪些用户? ?产品的流失用户 ?产品的活跃用户 ?产品的潜在用户 ?产品的沉睡用户 关于问卷设计要注意的原则,下列哪些说法是错误的? ?选项之间要保持互斥 ?选项设计不必穷尽所有的可能性 ?问题顺序要先易后难 ?必要时个人信息(如年龄、性别、收入等)可以放在问卷开头询问 ?为了节约访问时间,可以将两个主题的题目合并成一个题目来问统计分析中的因子分析(Factors),如何确定因子的个数? ?根据研究假设 ?根据特征值 ?根据因子载荷的大小 ?根据碎石图 ?根据因子累积贡献率 ?样本折半因子对比 建构聚划算的人物角色(persona)时,以下哪些做法是正确的?

阿里巴巴笔试题(南京站,20011年9月)

阿里巴巴笔试题目(20011.9) 技术类笔试试题(卷一)卷一:Java开发、测试工程师(25题) 技术类笔试试题(卷二)卷二:搜索研发、 C++(25题) 1. 20个阿里巴巴B2B技术部的员工被安排为4排,每排5个人,我们 任意选其中4人送给他们一人一本《effective c++》,那么我们 选出的4人都在不同排的概率为: A.5^4*5!*15!/20! B. 4^5*5!*15!/20! C. 5^4*4!*16!/20! D. 4^5*4!*16!/20! 2. 若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为: A.f,c,b B.f,d,b C.g,c,b D.g,d,b 3. perl里面声明:open(FILE, mode,file); 操作的描述,下列哪项不正确? A. FILE可以用变量$file来代替 B. mode可以和file写在一起,例如:open(FILE, ‘>file’) C. mode为+<的时候,只可以读文件,不能写文件 D. mode可以省略不写 4. 有一虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页 A.7 B.8

C.9 D.10 5. 设有一个顺序栈S,元素s1,s2,s3,s4,s5, s6依次进栈,如果六个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为多少 A.2 B.3 C.4 D.5 6. 下列关于文件索引结构的叙述中,哪一个是错误的? A. 采用索引结构,逻辑上连续的文件存放在连续的物理块中 B. 系统为每个文件建立一张索引表 C. 索引结构的优点是访问速度快,文件长度可以动态变化 D. 索引结构的缺点是存储开销大 7. 在ASC算法team日常开发中,常常面临一些数据结构的抉择,令人纠结。目前大家在策划一个FBI项目(Fast Binary Indexing),其中用到的词汇有6200条,词汇长度在10-15之间,词汇字符是英文字母,区分大小写。请在下面几个数据结构中选择一个使检索速度最快的: A. 二叉搜索树,比较函数开销:1次运算/每字符 B. 哈希表,hash算法开销:10次运算/每字符 C. 链表,比较函数开销:1次运算/每字符 D. TRIE树,寻找子节点开销:1次运算/每字符 8. [0,2,1,4,3,9,5,8,6,7]是以数组形式存储的最小堆,删除堆顶元素0后的结果是: A. [2,1,4,3,9,5,8,6,7] B. [1,2,5,4,3,9,8,6,7] C. [2,3,1,4,7,9,5,8,6] D. [1,2,5,4,3,9,7,8,6] 9. 某页式存储管理系统中,地址寄存器长度为24位,其中页号为14位,则主存的分块大小是()字节。 A.10 B.2^10

阿里巴巴笔试题+解析(完整)

阿里巴巴面试题 1、 20个阿里巴巴B2B技术部的员工被安排为4排,每排5个人,我们任意选其中4人送给他们一人一本《effective c++》,那么我们选出的4人都在不同排的概率为: A、 5^4*5!*15!/20! B、 4^5*5!*15!/20! C、 5^4*4!*16!/20! D、 4^5*4!*16!/20! 2、若有序表的关键字序列为(b,c,d,e,f,g,q,r,s,t),则在二分查找关键字b的过程中,先后进行的关键字依次为: A、f,c,b B、f,d,b C、g,c,b D、g,d,b 3、 perl里面声明:open(FILE,mode,file); 操作的描述,下列哪项不正确? A、 FILE可以用变量$file来代替 B、 mode可以和file写在一起,例如:open(FILE, ‘>file’) C、 mode为+<的时候,只可以读文件,不能写文件(既可以读也可以写) D、 mode可以省略不写 4、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页? A、7 B、8 C、9 D、10 5、设有一个顺序栈S,元素s1、s2、s3、s4、s5、s6依次进栈,如果6个元素的出栈顺序为s2、s3、s4、s 6、s5、s1,则顺序栈的容量至少应为多少? A、2 B、3 C、4 D、5 6、下列关于文件索引结构的叙述中,哪一个是错误的? A、采用索引结构,逻辑上连续的文件存放在连续的物理块中 B、系统为每个文件建立一张索引表 C、索引结构的优点是访问速度快,文件长度可以动态变化 D、索引结构的缺点是存储开销大 7、在ASC算法team日常开发中,常常面临一些数据结构的抉择,令人纠结。目前大家在策划一个FBI项目(Fast Binary Indexing),其中用到的词汇有6200条,词汇长度在10-15之间,词汇字符是英文字母,区分大小写。请在下面几个数据结构中选择一个使检索速度最快的: A、二叉搜索树,比较函数开销:1次运算/每字符 B、哈希表,hash算法开销:10次运算/每字符 C、链表,比较函数开销:1次运算/每字符 D、 TRIE树,寻找子节点开销:1次运算/每字符 8、【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是() A、【2、1、4、3、9、5、8、6、7】 B、【1、2、5、4、3、9、8、6、7】

阿里巴巴笔试题答案

第一题选C,不解释吧,按位与就行 第二题选D,不解释,2*3*sizeof(int*)=48(64位机器上是8字节一个指针) 第三题选C,我不确定,不过,应该是的 第四题选D,明显考的是补码 第5题选D,果断访问错误(这是Java的代码) 第6题选B,大家都懂 第7题果断A啊 第8题果断是B,不解释,大家懂 第9题是B,’0’不是’\0’,这个要注意 第10题果断是Fibonacci,显然是C,前几个是0,1,2,3,5,8,13,21 第11题选B,计算量是2^35,现在计算机的主频是2^30,所以差不多是几秒的事 第12题是B,显然有n=4N1+3N3+2N2+N1+1=N4+n3+n2+n1,所以N0=82,不解释 第13题果断是D,这个老题目了,不解释 第14题是C,二分查找嘛,大家都会,不解释 第15题是Fulkerson算法,算出来是46,每一次选一个增广路径即可,直接选不出来为止 第16题选185,显然,它给了120块钱(楼主二了)和一个物品(值65元),所以亏损185 这个题目楼主是这样想的,结果二了 第17题是2,不解释Fermart小定理,2^6 mod 7= 1,所以2^100=2^4=16=2 mod 7 第18题,我觉得是B,不知道对不对,这个不会 第19题,算得不太精细,选了A,不确定。 第20题C,概率与级数运算,不解释 第21题,果断B,D,malloc,new申请到的是Virtual Memory,不过,windows里面还真可以申请到物理内存,用的是VirtualAllocEx API即可

第22题B,C肯定对,D不确定,感觉是对的,不过,没敢选 第23题,其实就是解n^14<10^16,解出n<= 13,所以选14,15(我是推出n<10^(8/7)然后算出n<=13 第24题,D,因为选出第一个是白的,所以位于A的概率是2/3 第25,不可能,需要2.8*10^8 bit,而蓝牙只能传2.4*10^7bit所以一帧需要0.2S 第26题(mnlogn)不解释,归并而已 第27题显然是17分钟 第28,错两个地方1,没考虑只有一个数,2,可能死循环(给你数组0,2,3让查找1)楼主两个都想到了,写的时候忘记了写1,悲剧 第29题,果断SkipList,地球人懂的O(PLogpN)

2020阿里巴巴校园招聘阿里云C++笔试试题

阿里云C++ 1、(2分)1)请列出两个线程(或进程)死锁的三个必要条件 2)当异常(Exception)发生的时候,智能指针(SmartPointer)的析构函数是被谁调用的? 3)一般的台式机硬盘一次随机读写大约需要多少毫秒(0.1ms、1ms、10ms、100ms)? 4)除了应用程序的系统调用之外,LinuxKernel中的代码在什么情况下还有机会运行? 2、(1分)求下面函数的返回值。输入x的值为2012。 int func(int x) { int countx=0; while(x) { ++countx; x=x&(x-1); } return countx; } 3、(1分)一进程在执行时,如果按下列页号访问:1、2、3、 4、2、1、 5、 6、2、1、2、3、 7、6、3。进程占用4页物理内存,采用FIFO淘汰算法和LRU淘汰算法时,各产生多 少次缺页中断?分别写出使用两种方法时,依次被淘汰的页面号以及最后内存空间中剩余的页面。 4、(1分)写出下列程序的输出结果: #include using name space std; int main() { char *a=”Aliyun”; char **b=&a; *b=”programming test”; char *c=++a; a=”talents.”; return printf(“%c\n,*++c); } 5、(1分)连接A、B两地的公路长240km,现各有一列汽车分别从两地出发相向而行,各自保持匀速50km/h和30km/h。有一鸟儿也和A地的汽车一起从A地出发,以65km/h的速度沿公路朝B地飞行;当它遇到B地的汽车的时候,折返往A飞;再遇到A地汽车的时候,折返往B飞;如此往返。请问当A、B两地出发的汽车相遇的时候,鸟儿飞行了多少km? 6、(1分)一个骰子有6个面,分别是1个1、2个2、3个3。请问平均需要抛多少次骰子才能使1、2、3这三面都至少出现一次。

2015校招-阿里巴巴在线笔试题目

1、某团队有 2/5的人会写Java程序,有3/4的人会写C++程序,这个团队里同时会写Java和C++的最少有______人。 3 4 5 8 15 20 2、下列结构中,______必须随机存取实现。 栈 队列 数组 单链表 二叉树 堆 3、在一个单链表中,q的前一个节点为p,删除q所指向节点,则执行______。delete q; q->next=p->next;delete p; p->next=q->next;delete p; p->next=q->next;delete q; delete p; q->next=p->next;delete q 4、带头结点的单链表head为空的判定条件是:______。 head==NULL head->next==NULL head->next==head head!=NULL *head==NULL *(head->next)==NULL 5、甲乙两路发车间隔均为10分钟的公交车发车时刻分钟数个位分别为1和9,那么对于一个随机到达的乘客,ta乘坐甲车的概率为: 0.1 0.2 0.3 0.4 0.5 0.9 6、硬币游戏:连续扔硬币,直到某一人获胜。A获胜条件是先正后反,B获胜是出现连续两次反面,问AB游戏时A获胜概率是______。 1/6 1/4

1/2 2/3 3/4 7、棋盘上共有2020个格子,从1开始顺序编号。棋子初始放在第1格,通过扔骰子决定前进格子数,扔出x点就前进x格。骰子有6面,分别对应1至6;质量均匀。当棋子到达2014或超过2014,游戏结束。那么,棋子刚好到达2014的概率与______最接近。 2/3 1/2 1/3 2/7 1/6 1/7 8、“秘密”是一款在朋友圈内匿名交流的SNS平台。假定每个人只能看到朋友发的帖子,却不知道具体是谁发的;并且朋友关系是对称的,即如果A是B的朋友,那么B也是A的朋友。某好事者希望知道一篇帖子具体是谁发的,他通过找几个好友看看他们是否是这个帖子楼主的朋友,从而求“交集”,推断楼主是谁。朋友圈是指彼此互为朋友的人群。什么样的楼主容易被发现真实身份? 朋友很多的楼主。 朋友很少的楼主。 发负能量帖子的楼主。 有很多个小朋友圈的楼主。 发正能量帖子的楼主。 只有一个大朋友圈的楼主。 9、H同学每天乘公交上学,早上睡过头或遇到堵车都会迟到;H早上睡过头概率为0.2,路上遇到堵车概率为0.5;若某天早上H迟到了,那么以下推测正确的有______。 今天H早上睡过头了 今天H早上睡过头的概率为0.2 今天H早上睡过头的概率大于0.2 今天H早上遇到堵车了 今天H早上遇到堵车的概率为0.5 今天H早上遇到堵车的概率小于0.5 10、一个合法的表达式由()包围,()可以嵌套和连接,如(())()也是合法表达式;现在有6对(),它们可以组成的合法表达式的个数为______。 15 30 64 132 256 360 11、下列结构中,______必须随机存取实现 栈 队列

阿里巴巴2014秋季校园招聘-软件研发工程师笔试题

阿里巴巴2014秋季校园招聘-软件研发工程师笔试题 2013-09-21 22:381089人阅读评论(4)收藏举报 校园招聘阿里巴巴软件研发算法百度 1. 单选题 1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数 A: h(K)=K/N; B: h(K)=1; C: h(K)=K mod N; D: h(K)=(K+rand(N)) mod N, rand(N)返回0到N-1的整数 答案:D 2. 下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是: A: 堆排序B:插入排序 C: 冒泡排序D:快速排序 答案:A(插入排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O (n^2) 冒泡排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O(n^2) 快速排序:最优时间复杂度O(nlogn)最差时间复杂度O(n^2)平均时间复杂度O(nlogn) 堆排序:最优时间复杂度O(nlogn)最差时间复杂度O(nlogn)平均时间复杂度O(nlogn)) 3. 下面说法错误的是: A: CISC计算机比RISC计算机指令多 B: 在指令格式中,采用扩展操作码设计方案的目的是为了保持指令字长不变而增

加寻址空间 C:增加流水线段数理论上可以提高CPU频率 D:冯诺依曼体系结构的主要特征是存储程序的工作方式 答案:B 4. 不属于冯诺依曼体系结构必要组成部分是: A:CPU B: Cache C:RAM D:ROM 答案:B 5. 一个栈的入栈序列式ABCDE则不可能的出栈序列是: A:DECBA B:DCEBA C:ECDBA D:ABCDE 答案:C 6.你认为可以完成编写一个C语言编译器的语言是: A:汇编B:C语言C:VB D:以上全可以 答案:D 7. 关于C++/JAVA类中的static成员和对象成员的说法正确的是:A:static成员变量在对象构造时候生成 B: static成员函数在对象成员函数中无法调用 C: 虚成员函数不可能是static成员函数 D: static成员函数不能访问static成员变量 答案:A 8:

阿里巴巴2012校园招聘笔试题

1、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页? A、7 B、8 C、9 D、10 2、设有一个顺序栈S,元素s1、s2、s 3、s 4、s 5、s6依次进栈,如果6个元素的出栈顺序为s2、s3、s4、s 6、s5、s1,则顺序栈的容量至少应为多少? A、2 B、3 C、4 D、5 3、下列关于文件索引结构的叙述中,哪一个是错误的? A、采用索引结构,逻辑上连续的文件存放在连续的物理块中 B、系统为每个文件建立一张索引表 C、索引结构的优点是访问速度快,文件长度可以动态变化 D、索引结构的缺点是存储开销大 4、【0、2、1、4、3、9、 5、8、 6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是() A、【2、1、4、3、9、5、8、6、7】 B、【1、2、5、4、3、9、8、6、7】 C、【2、3、1、4、7、9、5、8、6】 D、【1、2、5、4、3、9、7、8、6】 5、某页式存储管理系统中,地址寄存器长度为24位,其中页号占14位,则主存的分块大小是()字节。 A、10 B、2^10 C、2^14 D、2^24 6、在一个长为33厘米的光滑凹轨上,在第3厘米、第6厘米、第19厘米、第22厘米、第26厘米处各有一个钢珠,凹轨很细,不能同时通过两个钢珠,开始时,钢珠运动方向是任意的。两个钢珠相撞后,以相同速度反向运动。假设所有钢珠初始速度为每秒运动1厘米,那么所有钢珠离开凹轨的最长可能时间是() A、30 B、26 C、38 D、33 7、std::vector::iterator重载了下面哪些运算符? A、++ B、>> C、*(前置) D、== 8、下列运算符,在C++语言中不能重载的是() A、* B、?: C、:: D、delete 9、在排序方法中,元素比较次数与元素的初始排列无关的是() A、Shell 排序 B、归并排序 C、直接插入排序 D、选择排序 10、给定如下代码:int x[4]={0}; int y[4]={1}; 数组x和y的值为() A、{0,0,0,0},{1,1,1,1} B、{0,0,0,0},{1,0,0,0}

阿里巴巴校园招聘笔试题及参考答案

阿里巴巴的Oracle DBA笔试题及参考答案- 数据库基本概念类 1:pctused and pctfree 表示什么含义有什么作用 pctused与pctfree控制数据块是否出现在freelist中, pctfree控制数据块中保留用于update的空间,当数据块中的free space小于pctfree设置的空间时, 该数据块从freelist中去掉,当块由于dml操作free space大于pct_used设置的空间时,该数据库块将 被添加在freelist链表中。 2:简单描述table / segment / extent / block之间的关系 table创建时,默认创建了一个data segment, 每个data segment含有min extents指定的extents数, 每个extent据据表空间的存储参数分配一定数量的blocks 3:描述tablespace和datafile之间的关系 一个tablespace可以有一个或多个datafile,每个datafile只能在一个tablespace内, table中的数据,通过hash算法分布在tablespace中的各个datafile中, tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。 4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点 本地管理表空间(Locally Managed Tablespace简称LMT) 8i以后出现的一种新的表空间的管理模式,通过位图来管理表空间的空间使用。 字典管理表空间(Dictionary-Managed Tablespace简称DMT) 8i以前包括以后都还可以使用的一种表空间管理模式,通过数据字典管理表空间的空间使用。 动段空间管理(ASSM), 它首次出现在Oracle920里有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组, 能够迅速有效地管理存储扩展和剩余区块(free block),因此能够改善分段存储本质,ASSM表空间上创建的段还有另外一个称呼叫Bitmap Managed Segments(BMB 段)。 5:回滚段的作用是什么 事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存放在回滚段中, 当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到原来的值。 事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在undo表空间中,ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据。 读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。 当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性) 当ORACLE执行Select语句时,ORACLE依照当前的系统改变号(SYSTEM CHANGE NUMBER-SCN) 来保证任何前于当前SCN的未提交的改变不被该语句处理。可以想象:当一个长时间的查询正在执行时, 若其他会话改变了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来构造一个读一致性视图。 6:日志的作用是什么

2014年阿里巴巴数据分析师笔试题

2014年3月29日阿里巴巴数据分析师(北京) 一、10道填空,每题3分 1、小松鼠采到了100颗坚果要运回家。家离放坚果的地方有100米远。小松鼠每次最多运50颗。BUT!小松鼠很馋。。。每走2米就要吃一颗坚果。。。问小松鼠最多能运回家多少颗坚果? A 0 B 10 C 25 D50 答案:应该是25颗吧!(先运50颗50米,吃了25颗,返回去,回去的途中没吃的了,再运50颗到50米的地方,又吃了25颗,再把剩下的运回家,又吃25颗,还剩25颗。)吐槽一下,题目应该说明:小松鼠足够聪明,至少比参加考试的人聪明。。。 2、标号12345的5个球,一次取两个,和为3或者6的概率是多少? 答案:0.3。不解释。 3、考了LOGISTIC回归。 4、聚类分析法,k_means。 5、其他条件相同,置信水平越低,则置信区间上下限差值越() A.越大 B.越小 C.为0 D不确定 应该是B吧。 6、precision、ecall、ROC。 剩下的不记得了。 二、三道题,每题10分。 1、已知每10万人中有1人得艾滋病。现在有一种检查,如果被测者患病则一定能查出来。如果被测者没病,有1%的测试出错也显示阳性。现在一个人检查结果是阳性。问真正得病的概率? 答案:貌似所有的讲全概率公式的书上都有这道题。 2、SQL 两张表合并,主键是USER_ID,然后把深圳市、广州市,大于16岁的,发生在2013年12月的一项挑出来加起来。不会SQL的话就写思路。我就不会。。。。。。 3、层次分析法AHP的含义,具体步骤。并举一个适合用层次分析法的案例。 三、两道题,每题20分。 1、淘宝上有一些小众但是品位高的店铺,怎么把他们筛选出来捏? 2、双十一的时候,商家会发优惠券,从商家和平台两个角度设计评价指标,并分析指标不同结果应该对应怎样的措施。 资料:优惠券分两种:满200减50,满300减100. 发放日期:10月15-11月10 使用日期:11月11 希望对大家有所帮助!

阿里巴巴2017实习生笔试题(含答案)

答案:D 内联函数: Tip:只有当函数只有 10 行甚至更少时才将其定义为内联函数. 定义: 当函数被声明为内联函数之后, 编译器会将其内联展开, 而不是按通常的函数调用机制进行调用. 优点: 当函数体比较小的时候, 内联该函数可以令目标代码更加高效. 对于存取函数以及其它函数体比较短, 性能关键的函数, 鼓励使用内联. 缺点: 滥用内联将导致程序变慢. 内联可能使目标代码量或增或减, 这取决于内联函数的大小. 内联非常短小的存取函数通常会减少代码大小, 但内联一个相当大的函数将戏剧性的增加代码大小. 现代处理器由于更好的利用了指令缓存, 小巧的代码往往执行更快。 结论: 一个较为合理的经验准则是, 不要内联超过 10 行的函数. 谨慎对待析构函数, 析构函数往往比其表面看起来要更长, 因为有隐含的成员和基类析构函数被调用! 另一个实用的经验准则: 内联那些包含循环或switch 语句的函数常常是得不偿失 (除非在大多数情况下, 这些循环或 switch 语句从不被执行). 注意:有些函数即使声明为内联的也不一定会被编译器内联, 这点很重要; 比如虚函数和递归函数就不会被正常内联. 通常, 递归函数不应该声明成内联函数.(递归调用堆栈的展开并不像循环那么简单, 比如递归层数在编译时可能是未知的, 大多数编译器都不支持内联递归函数). 虚函数内联的主要原因则是想把它的函数体放在类定义内, 为了图个方便, 抑或是当作文档描述其行为, 比如精短的存取函数.

-inl.h文件: Tip:复杂的内联函数的定义, 应放在后缀名为 -inl.h 的头文件中. 内联函数的定义必须放在头文件中, 编译器才能在调用点内联展开定义. 然而, 实现代码理论上应该放在 .cc 文件中, 我们不希望 .h 文件中有太多实现代码, 除非在可读性和性能上有明显优势. 如果内联函数的定义比较短小, 逻辑比较简单, 实现代码放在 .h 文件里没有任何问题. 比如, 存取函数的实现理所当然都应该放在类定义内. 出于编写者和调用者的方便, 较复 杂的内联函数也可以放到 .h 文件中, 如果你觉得这样会使头文件显得笨重, 也可以把它萃取到单独的-inl.h 中. 这样把实现和类定义分离开来, 当需要时包含对应的 -inl.h 即可。 A 项错误,因为使用inline 关键字的函数只是用户希望它成为内联函数,但编译器有 权忽略这个请求,比如:若此函数体太大,则不会把它作为内联函数展开的。 B 项错误,头文件中不仅要包含inline 函数的声明,而且必须包含定义,且在定义时 必须加上inline 。【关键字inline 必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用】 C 项错误,inline 函数可以定义在源文件中,但多个源文件中的同名inline 函数 的实现必须相同。一般把inline 函数的定义放在头文件中更加合适。 D 项正确,类内的成员函数,默认都是inline 的。【定义在类声明之中的成员函数将

阿里巴巴集团笔试题目

阿里巴巴集团笔试题目 下面是由应届毕业生网分享的题目 第一题、5亿个不重复的商品的ID(每一个商品的ID是64位),现在有一个存放了10亿个商品ID(商品的ID会有重复)的日志文件,请设计一种方法找出5亿个商品中没有出现在日志文件中的商品。假设所能使用的内存为2G。 [html] view plaincopyprint? 01.2G的文件只能存放2.5亿的商品ID,因为5亿商品大小为5*10*8B=4G。可以考虑将5亿商品ID哈希到四个文件中A[4]。然后将10亿个商品哈希到另外四个文件中B[4]。每次读入一个A文

件读入一个B文件,将B文件哈希到A文件中,A文件中的值为0的键值就是没有被日志文件包含的。但是日志文件分成四个之后,每一个的大小事2G无法一次性的读入,可以一次读一半或者分成8个文件。以上为博主的思路,欢迎各位指正。 2G的文件只能存放2.5亿的商品ID,因为5亿商品大小为5*10*8B=4G。可以考虑将5亿商品ID哈希到四个文件中A[4]。然后将10亿个商品哈希到另外四个文件中B[4]。每次读入一个A文件读入一个B文件,将B文件哈希到A文件中,A文件中的值为0的键值就是没有被日志文件包含的。但是日志文件分成四个之后,每一个的大小事2G无法一次性的读入,可以一次读一半或者分成8个文件。以上为博主的思路,欢迎各位指正。[cpp] view plaincopyprint? 01. 第二题、有一个词组的列表,list string wordlist={ a boy , hello word , small cat ,.......};有一个字符串string stringlist={ a boy can catch small cats }.

阿里巴巴2014秋季校园招聘_软件研发工程师笔试题答案

2014研发1. 单选题 1. 假设把整数关键码K散列到N个槽列表,以下哪些散列函数是好的散列函数 A: h(K)=K/N; B: h(K)=1; C: h(K)=K mod N; D: h(K)=(K+rand(N)) mod N, rand(N)返回0到N-1的整数 答案:D 2. 下面排序算法中,初始数据集的排列顺序对算法的性能无影响的是: A: 堆排序 B:插入排序 C: 冒泡排序 D:快速排序 答案:A(插入排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O (n^2) 冒泡排序:最优时间复杂度O(n)最差时间复杂度O(n^2)平均时间复杂度O (n^2) 快速排序:最优时间复杂度O(nlogn)最差时间复杂度O(n^2)平均时间复杂度O(nlogn) 堆排序:最优时间复杂度O(nlogn)最差时间复杂度O(nlogn)平均时间复杂度O (nlogn)) 3. 下面说法错误的是: A: CISC计算机比RISC计算机指令多 B: 在指令格式中,采用扩展操作码设计方案的目的是为了保持指令字长不变而增加寻址空间 C:增加流水线段数理论上可以提高CPU频率 D:诺依曼体系结构的主要特征是存储程序的工作方式 答案:B 4. 不属于诺依曼体系结构必要组成部分是: A:CPU B: Cache C:RAM D:ROM

答案:B 5. 一个栈的入栈序列式ABCDE则不可能的出栈序列是: A:DECBA B:DCEBA C:ECDBA D:ABCDE 答案:C 6.你认为可以完成编写一个C语言编译器的语言是: A:汇编 B:C语言 C:VB D:以上全可以 答案:D 7. 关于C++/JAVA类中的static成员和对象成员的说确的是:A:static成员变量在对象构造时候生成 B: static成员函数在对象成员函数中无法调用 C: 虚成员函数不可能是static成员函数 D: static成员函数不能访问static成员变量 答案:A 8: 答案:C

阿里巴巴笔试题

1.自我介绍 2.介绍一个你所做过的测试项目 3.bug状态的转换,及各状态转换执行人是谁 4.介绍软件测试流程 5.如果你和开发人员出现分歧怎么办 6.如果第二天就到交付日了,回归测试还没有执行完毕,你该怎么办? 7.你有女/男朋友么?你未来如何打算? 8.你还有什么要问我的问题么? 9.我是做功能测试的,功能测试比较枯燥,你怎么认为? 、要对语句A>1 OR B <= 3 测试……(不记得了)100%覆盖,至少要多少测试用例 2、典型的针对系统漏洞的Dos攻击? 3、4,2,2,3,6,15,(?)A,20 B,24 C,25 D,45 4、3升,5升,7升量筒,已知3、5量筒装满水,7量筒为空,问至少要倒多少次才能使其中一个量筒的水为4升 5、太长了 6、太长了 7、保护邮件安全的软件? 8、普通用户执行超级用户文件的指令 9、软件测试对象 10、软件缺陷生命期 11、OPENAPI平台 12、超长字符串攻击属于? 13、项目的最重要的是()和() 14、可能引起Cross Site Scripting攻击的是? 15、马可夫模型(HMM)的三个基础?(非选择) 16、有序集合a, b,求交集(非选择) 转载请注明出自应届生求职招聘论坛https://www.wendangku.net/doc/c313987373.html,/,本贴地址:https://www.wendangku.net/doc/c313987373.html,/thread-33014-1-1.html DBA笔试题 一:SQL tuning 类 1 列举几种表连接方式 等连接、非等连接、自连接、外连接(左、右、全)

2 不借助第三方工具,怎样查看sql的执行计划 I) 使用Explain Plan,查询PLAN_TABLE; EXPLAIN PLAN SET STA TEMENT_ID='QUERY1' FOR SELECT * FROM a WHERE aa=1; SELECT operation, options, object_name, object_type, ID, parent_id FROM plan_table WHERE STA TEMENT_ID = 'QUERY1' ORDER BY ID; II)SQLPLUS中的SET TRACE 即可看到Execution Plan Statistics SET AUTOTRACE ON; 3:如何使用CBO,CBO与RULE的区别 IF 初始化参数OPTIMIZER_MODE = CHOOSE THEN --(8I DEFAULT) IF 做过表分析 THEN 优化器Optimizer=CBO(COST); /*高效*/ ELSE 优化器Optimizer=RBO(RULE); /*高效*/ END IF; END IF; 区别: RBO根据规则选择最佳执行路径来运行查询。 CBO根据表统计找到最低成本的访问数据的方法确定执行计划。 使用CBO需要注意: I) 需要经常对表进行ANALYZE命令进行分析统计; II) 需要稳定执行计划; III)需要使用提示(Hint); 使用RULE需要注意: I) 选择最有效率的表名顺序 II) 优化SQL的写法; 4 如何定位重要(消耗资源多)的SQL 使用CPU多的用户session SELECT a.SID, spid, status, SUBSTR (a.program, 1, 40) prog, a.terminal,a.SQL_TEXT, osuser, V ALUE / 60 / 100 V ALUE FROM v$session a, v$process b, v$sesstat c WHERE c.statistic# = 12 AND c.SID = a.SID AND a.paddr = b.addr ORDER BY V ALUE DESC; 5 如何跟踪某个session的SQL 利用TRACE 跟踪 ALTER SESSION SET SQLTRACE ON; COLUMN SQL format a200; SELECT machine, sql_text SQL

阿里巴巴Oracle-DBA笔试题及答案

一:SQL tuning 类 1:列举几种表连接方式 hash join/merge join/nest loop(cluster join)/index join 2:不借助第三方工具,怎样查看sql的执行计划 set autot on explain plan set statement_id = &item_id for &sql; select * from table(dbms_xplan.display); https://www.wendangku.net/doc/c313987373.html,/docs/cd/B14117_01/server.101/b10752/ex_plan.htm 3:如何使用CBO,CBO与RULE的区别 在optimizer_mode=choose时,如果表有统计信息(分区表外),优化器将选择CBO,否则选RBO。 RBO遵循简单的分级方法学,使用15种级别要点,当接收到查询,优化器将评估使用到的要点数目, 然后选择最佳级别(最少的数量)的执行路径来运行查询。 CBO尝试找到最低成本的访问数据的方法,为了最大的吞吐量或最快的初始响应时间,计算 使用不同 的执行计划的成本,并选择成本最低的一个,关于表的数据内容的统计被用于确定执行计划。 4:如何定位重要(消耗资源多)的SQL select sql_text from v$sql where disk_reads > 1000 or (executions > 0 and buffer_gets/executions > 30000); 5:如何跟踪某个session的SQL exec dbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace); select sid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1); exec dbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,''); 6:SQL调整最关注的是什么 查看该SQL的response time(db block gets/consistent gets/physical reads/sorts (disk)) 7:说说你对索引的认识(索引的结构、对dml影响、为什么提高查询性能) b-tree index/bitmap index/function index/patitional index(local/global) 索引通常能提高select/update/delete的性能,会降低insert的速度, 8:使用索引查询一定能提高查询的性能吗?为什么 索引就是为了提高查询性能而存在的,

2014阿里巴巴笔试题

2014年阿里巴巴秋季校园招聘 系统工程师笔试卷 第一部分单选题(前10题,每题2分;后10题,每题3分;共50分。选对得满分,选错倒扣一分,不选得0分。) 1.字符串“alibaba”有个不同的排列。 A. 5040 B. 840 C. 14 D.420 2.下列一段C++代码的输出是 A 。 class Base { public: int Bar(char x) {return (int)(x);} virtual int Bar(int x) {return(2*x);} }; class Derived :public Base { public: int Bar(char x) {return(int)(-x);} int Bar(int x) {return (x/2);} }; void main(void) { Derived Obj; Base*pObj=&Obj; printf("%d,",pObj->Bar((char)(100))); printf("%d,",pObj->Bar(100)); } A. 100,50 B. -100,200 C. -100,50 D. 100,200 3.有一个二维数组A[10][5],每个数据元素占1个字节,且A[0][0]的存储地址是1000,则A[i][j]的地址是。 A. 1000+10i+j B. 1000+i+j C. 1000+5i+j D. 1000+10i+5j 4.下列不是线性表? A. 队列 B. 栈 C. 关联数组 D. 链表

5. 下列有关在一个处理器(processor)上跑两个线程(thread)的说法中,正确的是。 A. 一个线程可以改变另一个线程的程序计数器(program counter) B. 一个线程既不能读也不能写另一个线程的栈(stack) C. 一个线程可以读写另一个线程的寄存器(register) D. 以上都不对 6.关于双链表的搜索给定元素操作的说法正确的是。 A. 从两个方向搜索双链表,比从一个方向搜索双链表的速度慢 B. 从两个方向搜索双链表,比从一个方向搜索双链表的方差要小 C. 从两个方向搜索双链表,比从一个方向搜索双链表速度要快 D. 以上说法都不正确 7.对n个数字进行排序,期中两两不同的数字的个数为k,n远远大于k,而n的取值区间长度超过了内存的大小,时间复杂度最小可以是。 A. O(nlogk) B. O(nk) C. O(n) D. O(nlogn) 8.一台指针式钟表的时钟和分钟的指向重合的时间间隔是 B 。 A. 720/13分钟 B. 720/11分钟 C. 60分钟 D. 以上都不正确 9.两个大小不同的杯子R和S,R中装着一定量的小米,S中装着一定量的沙子。一名儿童用勺子从S中取出一勺沙子放入R,与小米混合之后,再从R中取出等体积的一勺混合物放入S。假定两勺物品的体积相等,且R和S都没有发生溢出。则以下说法中正确的是。 A. R中的沙子和S中的小米一样多 B. R中的沙子比S中的小米少 C. R中的沙子比S中的小米多 D. 无法判断 10.假定抛出的硬币落地之后正反两面出现的概率分别是1/2。那么抛10次和100次硬币(分别称为T10和T100)相比,以下说法正确的是。 A. T100出现一半的正面比T10出现一半正面的概率更大 B. T100前3次都是正面的概率比T10前3次都是正面的可能性大 C. T100正面次数的方差小于T10出现正面次数的方差 D. T100出现正面的比例比T10出现正面的比例在(0.45,0.55)区间中的可能性更大。 11.某福彩机构推出了一款简单的猜谜游戏:游戏玩家只需交纳n元,赌红或者黑。如果开奖结果与游戏玩家所赌的颜色相同,则玩家除得到交纳的n元赌资外,还可以获得n元作为奖励;否则该玩家失去交纳的n元赌资。为了游戏公平,开奖是红或者黑的概率均为1/2。某游戏玩家想出了一个玩法:开始出100元参与赌博,然后按照如下规则进行游戏,如果输掉,并且赌资充足,就把已经输了的总钱数翻倍作为赌资进行赌博;否则,就停止该游戏。假定该机构赌资无限,而玩家的赌资比较有限,以下关于该玩家退出游戏时的情形的评论中合理的是:。 A. 该玩家的策略可以保证游戏结束时赢钱数的期望为正数 B. 该福彩机构长期会赔钱 C. 该玩家会有一定概率在游戏结束时输钱,但输得不多

相关文档
相关文档 最新文档