当前位置:文档之家› 2015校招-阿里巴巴在线笔试题目

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

1、某团队有 2/5的人会写Java程序,有3/4的人会写C++程序,这个团队里同时会写Java和C++的最少有______人。

345815202、下列结构中,______必须随机存取实现。

栈队列数组单链表二叉树堆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 q4、带头结点的单链表head为空的判定条件是:______。

head==NULLhead->next==NULLhead->next==headhead!=NULL*head==NULL*(head->next)==NULL5、甲乙两路发车间隔均为10分钟的公交车发车时刻分钟数个位分别为1和9,那么对于一个随机到达的乘客,ta乘坐甲车的概率为:0.10.20.30.40.50.96、硬币游戏:连续扔硬币,直到某一人获胜。

A获胜条件是先正后反,B获胜是出现连续两次反面,问AB游戏时A获胜概率是______。

1/61/41/22/33/47、棋盘上共有2020个格子,从1开始顺序编号。

棋子初始放在第1格,通过扔骰子决定前进格子数,扔出x点就前进x格。

骰子有6面,分别对应1至6;质量均匀。

当棋子到达2014或超过2014,游戏结束。

那么,棋子刚好到达2014的概率与______最接近。

2/31/21/32/71/61/78、“秘密”是一款在朋友圈内匿名交流的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.510、一个合法的表达式由()包围,()可以嵌套和连接,如(())()也是合法表达式;现在有6对(),它们可以组成的合法表达式的个数为______。

15306413225636011、下列结构中,______必须随机存取实现栈队列单链表二叉树堆12、C++内存分配中说法错误的是:______。

对于栈来讲,生长方向是向上的,也就是向着内存地址增加的方向对于堆,大量的new/delete操作会造成内存空间的不连续堆容易产生memory leak D、堆的效率比栈要低得多堆的效率比栈要低得多栈变量引用容易逃逸以上都对13、假设某段通信电文仅由6个字母ABCDEF组成,字母在电文中出现的频率分别为2,3,7,15,4,6。

根据这些频率作为权值构造哈夫曼编码,最终构造出的哈弗曼树带权路径长度与字母B的哈夫曼编码分别为______。

86,101170,100086,000170, 001092,100092,010014、监狱人脸识别准入系统用来识别待进入人员的身份,此系统一共包括识别4种不同的人员:狱警、小偷、送餐员、其它。

下面哪种学习方法最适合此种应用需求:______。

二分类问题多分类问题层次聚类问题K-中心点聚类问题回归问题结构分析问题15、已知一个二叉树的前序遍历结果是(ACDEFHGB),中序遍历结果是(DECAHFBG),请问后序遍历结果是______。

HGFEDCBAEDCHBGFABGFHEDCAEDCBGHFABEGHDFCABGHFEDCA16、已知某二叉树的前序为(1-2-3-4-5-6-7-8-9),中序为(2-3-1-6-7-8-5-9-4),则它的后续为___WenXJ 2014/8/29 19:28:553-2-8-7-6-9-5-4-11-2-6-5-4-3-8-7-95-4-2-1-3-7-6-9-82-3-5-4-6-7-9-1-83-2-1-4-5-9-8-6-73-2-1-8-7-6-9-5-417、每台物理计算机可以虚拟出20台虚拟机,假定一台虚拟机发生故障当且仅当它所宿主的物理机发生故障。

通过5台物理机虚拟出100台虚拟机,那么关于这100台虚拟机的故障的说法正确的是:______?单台虚拟机的故障率高于单台物理机的故障率。

这100台虚拟机发生故障是彼此独立的。

这100台虚拟机单位时间内出现故障的个数高于100台物理机单位时间内出现故障的个数。

无法判断这100台虚拟机和100台物理机哪个更可靠。

如果随机选出5台虚拟机组成集群,那么这个集群的可靠性和5台物理机的可靠性相同。

可能有一段时间只有1台虚拟机发生故障。

18、对立的两方争夺一个价值为1的物品,双方可以采取的策略可以分为鸽子策略和鹰策略。

如果双方都是鸽子策略,那么双方各有1/2的几率获得该物品;如果双方均为鹰策略,那么双方各有1/2的概率取胜,胜方获得价值为1的物品,付出价值为1的代价,负方付出价值为1的代价;如果一方为鸽子策略,一方为鹰策略,那么鹰策略获得价值为1的物品。

在争夺的结果出来之前,没人知道对方是鸽子策略还是鹰策略。

当选择鸽子策略的人的比例是某一个值时,选择鸽子策略和选择鹰策略的预期收益是相同的。

那么该值是:0.20.40.50.70.8以上都不对19、使用一辆卡车运输n块单块1TB装满数据的硬盘,以时速80km/h行驶1000km 将数据运送到目的地;卡车至少运送______块硬盘才能使传输速率超1000Gbps。

20003000400050006000700020、在一个双向循环链表中,指针p所指向的节点(非尾节点)之后插入指针s指向的节点,其修改指针的操作是______。

p->next=s; s->prev=p; p->next->prev=s; s->next=p->next;p->next->prev=s; p->next=s; s->prev=p; s->next=p->next;p->next->prev=s; s->prev=p; p->next=s; s->next=p->next;s->prev=p; s->next=p->next; p->next=s; p->next->prev=s ;s->prev=p; s->next=p->next; p->next->prev=s; p->next=s;s->next =p->next;s->prev=p; p->next=s;p->next->prev=s;21、给定一个query和一个text,均由小写字母组成。

要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度。

例如, query为“acbac”,text为“acaccbabb”,那么text中的“cba”为最长的连续出现在query中的字母序列,因此,返回结果应该为其长度3。

请注意程序效率仅供参考:#include <iostream>#include <string>using namespace std;int MaxCommStr(string A, string B){int lenA = A.length();int lenB = B.length();if (lenA <= 0 && lenB <= 0){return -1;}int max = 0;int index;for (int i = 0; i < lenA; i++){for (int k = 0; k < lenB; k++){int max_temp = 0;int j = i;int t = k;while ((A[j++] == B[t++])){max_temp++;}if (max_temp>max){max = max_temp;index = i;}}}return max;}int main(){string a, b;getline(cin, a); // "acaccbabb"getline(cin, b); // "acbac"cout<< MaxCommStr(a, b);system("Pause");return 0;}22、写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这棵二叉树中相差最大的两个节点间的差值绝对值仅供参考:struct Node {int value;Node *left;Node *right;int leftDis;int rightDis;};void CreateBiTree(BiTNode* &T){//按先序输入二叉树中结点的值(一个字符),空格字符代表空树,//构造二叉树表表示二叉树T。

char ch;if((ch=getchar())=='#')T=NULL;//其中getchar()为逐个读入标准库函数else{T=new BiTNode;//产生新的子树T->data=ch;//由getchar()逐个读入来CreateBiTree(T->lchild);//递归创建左子树CreateBiTree(T->rchild);//递归创建右子树}}//void MaxDistance(Node *root, int *MaxDis) {/*** 三个递归停止条件* */if(root==NULL)return;if(root->left==NULL)root->leftDis=0;if(root->right==NULL)root->rightDis=0;/*** 处理当前节点之前,首先处理子节点* */if(root->left!=NULL)MaxDistance(root->left, MaxDis);if(root->right!=NULL)MaxDistance(root->right, MaxDis);/*** 递归仅处理了root->left和root->right为根节点的* 最远距离,所以当前已经知道root->left和root->right* 各自的leftDis和rightDis* */if(root->left!=NULL) {int tempMax=0;if(root->left->leftDis > root->left->rightDis)tempMax=root->left->leftDis;elsetempMax=root->left->rightDis;root->leftDis=tempMax+1;}if(root->right!=NULL) {int tempMax=0;if(root->right->leftDis > root->right->rightDis)tempMax=root->right->leftDis;elsetempMax=root->right->rightDis;root->rightDis=tempMax+1;}/*** 更新全局的最远距离MaxDis,最初调用的时候需要赋值为-1* */if(*MaxDis < root->leftDis + root->rightDis)*MaxDis=root->leftDis + root->rightDis;}int main(){int max = 0;int *p = max;CreateBiTree(T);MaxDistance(T, p);cout << max<<endl;return 0;}。

相关主题