【8.29】阿里巴巴2014年校招(软件测试攻城师)笔试题目

以下均为本人当时的答案,不是正确答案。。欢迎参加过的讨论我的错题,来一起进步。

面试应该不会去,没预约上,再者对当前工作也比较满意,就不去霸面麻烦人家了。

第一部分:选择题

1、a把校园中同一区域的两张不同比例尺的地图叠放在一起,并且使其中较小尺寸的地图完全在较大尺寸的地图的覆盖之下。每张地图上都有经纬度坐标,显然,这两个坐标系并不相同。我们把恰好重叠在一起的两个相同的坐标称之为重合点。下面关于重合点的说法中正确的是:______

· 可能不存在重合点。

· 必然有且仅有一个重合点。

· 可能有无穷多个重合点。

· 重合点构成了一条直线。

· 重合点可能在小地图之外。

· 重合点是一小片连续的区域。


2、某足球队有四名外援,分别来自巴西、荷兰、意大利和美国。他们分别擅长前锋、后卫或守门,其中:

① 美国外援单独擅长守门;

② 意大利外援不擅长前锋;

③ 巴西外援和另外某个外援擅长相同的位置;

④ 荷兰外援擅长的位置和巴西外援不同。

以上条件可以推出巴西外援擅长的位置是______

· 前锋

· 守门

· 后卫

· 前锋或守门

· 后卫或守门

· 前锋或后卫


3、毕业典礼后,某宿舍三位同学把自己的毕业帽扔了,随后每个人随机地拾起帽子,三个人中没有人选到自己原来带的帽子的概率是______

· 1/2

· 1/3

· 1/4

· 1/6

· 1/8

· 1/9


4、计算三个稠密矩阵ABC的乘积ABC,假定三个矩阵的尺寸分别为m*n, n*p, p*q,且m<n<p<q,以下计算顺序效率最高的是:______

· (AB)C

· A(BC)

· (AC)B

· (BC)A

· (CA)B

· 以上效率相同


5、有字符序列{QHCYPAMSRDFX},新序列{FHCDP, AMQRSYX}是下列______排序算法一趟扫描的结果。

·  二路归并排序

· 快速排序

· 步长为4的希尔排序

· 步长为2的希尔排序

· 冒泡排序

· 堆排序


6、关于IP地址下列说法错误的是______

· IP地址采用分层结构,它由网络号与主机号两部分组成

· 根据不同的取值范围IP地址可以分为五类

· 202.112.139.140属于B类地址

· 每个C类网络最多包含254台主机

· IPv6采用128位地址长度

· A类,B类和C类地址为内部私有地址


7、有一只火鸡出生在某年春天。从出生第一天起,主人就会每天给它喂食。这只火鸡用一个模型来计算主人对它的爱的程度=吃到米的天数/(出生之后的总天数+1)。这只火鸡发现这个爱的指数每天都在上升。有一天感恩节到了,火鸡被主人杀掉了。关于火鸡的爱的指数模型的说法正确的是:______

· 火鸡的模型之所以无效,是因为这个公式不是最大似然估计。

· 火鸡的模型之所以无效,是因为这个爱的指数增长速度先快后慢。

· 火鸡的模型之所以无效,是因为没有计算这个爱的指数的方差。

· 火鸡的模型之所以无效,是因为分母+1了。

· 火鸡的模型之所以无效,是因为主人太坏了。

· 火鸡的模型之所以无效,是因为统计的概率空间不完整。

个人认为这不是个概率问题,因为这个模型本身就是无中生有的,而且火鸡在那个世界的智商如果这么高了,它一定会讨好主人的,萌萌哒~再让我选肯定还选这个~就是主人太坏了!


8、

int func(unsigned int i)

{

    unsigned int temp = i;

    temp = (temp & 0x55555555) + ((temp & 0xaaaaaaaa)>>1);

    temp = (temp & 0x33333333) + ((temp & 0xcccccccc)>>2);

    temp = (temp & 0x0f0f0f0f) + ((temp & 0xf0f0f0f0)>>4);

    temp = (temp & 0xff00ff) + ((temp & 0xff00ff00)>>8);

    temp = (temp & 0xffff) + ((temp & 0xffff0000)>>16);

    return temp;

}

请问func0x1f530828)的返回值是:______

· 15

· 14

· 16

· 13

· 1

· 12

9、关于UNIX系统代码段和数据段分开的目的,错误的说法有______

· 可共享正文

· 可共享数据

· 可重入

· 可保护代码为只读

· 方便编程

· 更好支持内存回收策略


10、下列关于线程调度的叙述中,错误的是______

· 调用线程的sleep()方法,可以使比当前线程优先级低的线程获得运行机会

· 调用线程的yeild()方法,只会使与当前线程相同优先级的线程获得运行机会

· 当有比当前线程的优先级高的线程出现时,高优先级线程将抢占CPU并运行

· 一个线程由于某些原因进入阻塞状态,会放弃CPU

· 具有相同优先级的多个线程的调度一定是分时的

· 分时调度模型是让所有线程轮流获得CPU使用权

11、下列关键字序列为堆的是______

· 100,60,70,50,32,65

· 60,70,65,50,32,100

· 65,100,70,32,50,60

· 70,65,100,32,50,60

· 32,50,100,70,65,60

· 50,100,70,65,60,32


12、棋盘上共有2020个格子,从1开始顺序编号。棋子初始放在第1格,通过扔骰子决定前进格子数,扔出x点就前进x格。骰子有6面,分别对应16;质量均匀。当棋子到达2014或超过2014,游戏结束。那么,棋子刚好到达2014的概率与______最接近。

· 2/3

· 1/2

· 1/3

· 2/7

· 1/6

· 1/7

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

· root mike

· root root

· mike root

· mike mike

· deamon mike

· mike deamon

14、一个函数定义的返回值是float,它不能在

return语句中返回的值的类型是:______

· char

· int

· float

· long

· double

· 以上皆可以

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

· 

· 队列

· 数组

· 单链表

· 二叉树

· 

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

· 3

· 4

· 5

· 8

· 15

· 20

17、对立的两方争夺一个价值为1的物品,双方可以采取的策略可以分为鸽子策略和鹰策略。如果双方都是鸽子策略,那么双方各有1/2的几率获得该物品;如果双方均为鹰策略,那么双方各有1/2的概率取胜,胜方获得价值为1的物品,付出价值为1的代价,负方付出价值为1的代价;如果一方为鸽子策略,一方为鹰策略,那么鹰策略获得价值为1的物品。在争夺的结果出来之前,没人知道对方是鸽子策略还是鹰策略。当选择鸽子策略的人的比例是某一个值时,选择鸽子策略和选择鹰策略的预期收益是相同的。那么该值是:

· 0.2

· 0.4

· 0.5

· 0.7

· 0.8

· 以上都不对

 

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

· (m+r-f) mod m

· r-f

· (m-r+f) mod m

· (m-r-f) mod m

· (r-f) mod m

· 需要判断边界


还有两个选择题没贴,忘了。


第二部分:附加题(就是非客观题)

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

 

//改HDU1231 dp,c++ string 实现
#include <iostream>
#include <string>
using namespace std;
 
string str1="acbac";
string str2="acaccbabb";
 
int len[500];
 
int findmaxlength(string str1,string str2)
{
    int max=0;
   
    for(int i=1;i<=str1.length();i++)
    {
        for(int j=str2.length();j>0;j--)
        {
            if(str1[i-1]==str2[j-1])
            {
                len[j]=(len[j-1]+1);
                max=max>len[j]?max:len[j];
            }
            else len[j]=0;
        }
    }
    return max;
}


二、如果让你来测试淘宝站内的搜索系统,请问你能想到哪些方法来进行测试?

我当时的回答非常萌=A=

我们假设淘宝网的搜索入口页面如下图所示: 
1、功能测试
对搜索框(宝贝、店铺)内:
    (1)输入一个存在的产品,ex:“衣服”,检查link
    (2)输入一个不存在的产品,ex:“ufhaiudsbngbdsjinvoxzcnoivhasuihfiawjeigobasiu"
    (3)其他边界条件测试:输入空符号,输入过长字符串,各种空格的随机插入等
对语音输入功能的测试:
    同样语音输入包含以上方面。
    比如兼容性:加入各种方言,外语,不明声音等。
2、性能测试
    (1)负载测试:模拟用户并发操作,验证搜索框的负载能力。
    (2)压力测试:在一定负载下,用自动化测试脚本7*24,验证功能测试的准确程度和服务器的效率。
    (3)连接速度测试:模拟用户操作,查看连接速度。
3、安全性测试
    (1)cookie测试:是否加密,是否起作用
    (2)表单测试:构造form和链接,检查可用性及安全问题。
    (3)链接测试:检查链接是否可用
    (4)正则表达式测试:构造非法正则表达式等。
4、可用性测试
    站在用户角度,检查信息是否有效可用
5、兼容性测试
    用户浏览器的版本/输入字符集的差异……
……
…………其他本人没有想到的问题可以在项目组中通过提交bug的方式解决。
最后联系开发人员,检查解决完手头上的问题,最后做回归测试。

现在来看最后两句算是庄博一,变相告诉看我卷子的我经历过QA的流程。。

 

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

class node
{
    public:
        int data;
        node *left;
        node *right;
};
 
node r;
 
long long maxx=0x7fffffff;
long long minn=-0x7fffffff;
 
int dist(r *root)
{   if (root==NULL) 
        return 0;
    if (maxx<root.data) 
        maxx=root.val;
    if (minn>root->data) 
        minn=root.val;
        
    dist(root->right);
    dist(root->left);
}
 
int main()
{
    dist(root);
    long long ans=maxx-minn;
    cout<<ans<<endl;
    return 0;
}



  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值