2021年阿里巴巴系统工程师研发面试题

小编:管理员 170阅读 2021.06.11

第1题:


一监狱人脸识别准入系统用来识别待进入人员的身份,此系统一共包括识别4种不同的人员:狱警,小偷,送餐员,其他。下面哪种学习方法最适合此种应用需求:()。

A.二分类问题
B.多分类问题
C.层次聚类问题
D.k-中心点聚类问题
E.回归问题
F.结构分析问题

答案:B



第2题:


下面描述中,唯一错误的是()。

A.本题有五个选项是正确的
B.正确
C.不正确
D.EF都正确
E.ABC中有一个错误
F.如果ABCDE都正确,那么F也正确

答案:B



第3题:


某团队负责人接到一个紧急项目,他要考虑在代号为ABCDEF这6个团队成员中的部分人员参加项目的开发工作。人员必须满足下列各点:
1.AB两人中至少一人参加;
2.AD不能都去参加;
3.AEF三人中要派两人参加;
4.BC两人都去或都不参加;
5.CD两人中有一人参加;
6.若D不参加则E也不参加;
那么,最后()参加紧急项目的开发。

A.BCEF
B.AF
C.BCF
D.F
E.ABCF
F.BCDEF

答案:E



第4题:


在小端序的机器中,如果

1 union X

2 {

3     int x;

4     char y[4];

5 };

如果
X a;
a.x=0x11223344;//16进制
则:()

A. y[0]=11
B.y[1]=11
C.y[2]=11
D.y[3]=11
E.y[0]=22
F.y[3]=22

答案:D



第5题:


H同学每天乘公交上学,早上睡过头或遇到堵车都会迟到;H早上睡过头的概率为0.2,路上遇到堵车的概率为0.5;若某天早上H迟到了,那么以下推测正确的有()。

A.今天H早上睡过头了
B.今天H早上睡过头的概率为0.2
C.今天H早上睡过头了的概率大于0.2
D.今天H早上遇到堵车了
E.今天H早上遇到堵车的概率为0.5
F.今天H早上遇到堵车的概率小于0.5

答案:C



第6题:


test.c文件中包括如下语句:

1 #define INT_PTR int*

2 typedef int*int_ptr;

3 INT_PTR a,b;

4 int_ptr c,d;

文件中定义的四个变量,哪个变量不是指针类型?

 a
 b
 c
 d
 都是指针
 都不是指针

答案:B



第7题:


使用一辆卡车运输n块单块1TB装满数据的硬盘,以时速80km/h行驶1000km将数据运送到目的地;卡车至少运送()块硬盘才能使运输速率超1000Gbps。

A.2000
B.3000
C.4000
D.5000
E.6000
F.7000



答案:E



第8题:


Linux系统中某个可执行文件属于root并且有setid,当一个普通用户mike运行这个程序时,产生的进程的有效用户和实际用户分别是____?

A.root mike
B.root rooy
C.mike root
D.mike mike
E.deamon mike
F.mike deamon

答案:A



第9题:


针对以下代码,

1 const char str1[] = "abc";

2 const char str2[] = "abc";

3 const char *p1 = "abc";

4 const char *p2 = "abc";

判断下列说法哪个是正确的()

A.str1和str2地址不同,P1和P2地址相同
B.str1和str2地址相同,P1和P2地址相同
C.str1和str2地址不同,P1和P2地址不同
D.str1和str2地址相同,P1和P2地址不同
E.4个地址都相同
F.4个地址都不同

答案:A



第10题:


硬币游戏:连续扔硬币,直到某一人获胜。A获胜条件是先正后反,B获胜是出现连续两次反面,问AB游戏时A获胜概率是()?

A.1/6
B.1/4
C.1/3
D.1/2
E.2/3
F.3/4

答案:F



第11题:


已知某二叉树的前序为(1-2-3-4-5-6-7-8-9),中序为(2-3-1-6-7-8-5-9-4),则它的后续为?

A.3-2-8-7-6-9-5-4-1
B.1-2-6-5-4-3-8-7-9
C.5-4-2-1-3-7-6-9-8
D.2-3-5-4-6-7-9-1-8
E.3-2-1-4-5-9-8-6-7
F.3-2-1-8-7-6-9-5-4

答案:A



第12题:


有一个用数组C[1..m]表示的环形队列,m为数组的长度。假设f为队头元素在数组中的位置,r为队尾元素的后一位置(按顺时针方向)。若队列非空,则计算队列中元素个数的公式应为?

A.(m+r-f)mod m
B.r-f
C.(m-r+f) mod m
D.(m-r-f) mod m
E.(r-f) mod m
F.需要判断边界

答案:A



第13题:


下列关键字序列为堆的是()?

A.100,60,70,50,32,65
B.60,70,65,50,32,100
C.65,100,70,32,50,60
D.70,65,100,32,50,60
E.32,50,100,70,65,60
F.50,100,70,65,60,32

答案:A



第14题:


有4个进程A,B,C,D,设它们依次进入就绪队列,因相差时间很短可视为同时到达。4个进程按轮转法分别运行11,7,2,和4个时间单位,设时间片为1。四个进程的平均周转时间为 ()?

A.15.25
B.16.25
C.16.75
D.17.25
E.17.75
F.18.25

答案:B



第15题:


下列关于网络编程错误的是?

A.UDP是不可靠服务
B.主动关闭的一端会出现TIME_WAIT状态
C.服务端编程会调用listen(),客户端会调用bind()
D.TCP建立和关闭连接都只需要三次握手
E.linux通过提供socket接口来进行网络编程
F.长连接相对短连接可以节省建立连接的时间

答案:CD



第16题:


问答题

A公司打算搭建一个Andriod App下载的Web站点,计划将目前常见的手机APP都放到这个网站上提供下载。因为业务开展初期下载量很小,技术部门就用了1台服务器,给服务器配置了一个公网IP对外进行服务。随着销售部门的推广到位,用户量和下载量呈指数级上载,要求技术部门马上进行改造。如果你是技术部门经理,你会怎么改造这个站点,以满足高负载的需求。
提示:短时间修改网站的代码不现实,其他方面的各种改造建议都可以,建议越多越好。

硬件方面:

1、增加带宽,多机房部署,购买CDN。

2、增加服务器,增加服务器的硬件资源。

软件方面:

1、首先为了防止因为大量用户下载APP,带宽占用过高导致网站原有的功能瘫痪或者体验严重下降,需要将APP下载的地址和网站服务分开部署。

2、动静态分离,使用CACHE。

2、NGINX反响代理,多点集群。



第17题:


问答题

写一个函数,输入一个二叉树,树中每个节点存放了一个整数值,函数返回这颗二叉树中相差最大的两个节点间的差值绝对值。请注意程序效率。

本题暂不支持系统判断,可在交题后查看参考答案。




int FindMaxSubMin(BinTree *root)

{

    stack<BinTree*> s;

    BinTree *p=root;

    int MaxNode = p->data;

    int MinNode = p->data;

    while(p!=NULL||!s.empty())

    {

        while(p!=NULL)

        {

            s.push(p);

            p=p->lchild;

        }

        if(!s.empty())

        {

            p=s.top();

            if(p->data > MaxNode)

            {

                MaxNode = p->data;

            }

            if(p->data < MinNode)

            {

                MinNode = p->data;

            }

            s.pop();

            p=p->rchild;

        }

 }

 return abs(MaxNode - MinNode);

 }



第18题:


问答题

给定一个query和一个text,均由小写字母组成。要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度。例如,query为 "acbac",text为"acaccbabb",那么text中的"cba"为最长的连续出现在query中的字母序列,因此,返回结果应该为其长度3。请注意程序效率。



public int getLong(String query,String text){

     

        if(text.length()==0||query.length()==0){return 0;}

        int start=0;

        int end=1;

        int longest=0;

        int tempSum=0;

        String temp="";

        while(end<=text.length()){

            temp=text.substring(start,end);

            if(!query.contains(temp)){

                tempSum=0;

                start=(end-1==start)?end:end-1;

                end=start+1;

            }

            else{

                tempSum++;

                if(tempSum>longest){longest=tempSum;

                System.out.println("------"+temp+longest);

                //可以用这句话来跟踪最大长度的子字符串

                }

                end++;

            }

        }

        return longest;

         

    }"

关联标签: