淘宝技术类2011年校招笔试题(二)

2014-11-24 11:02:55 · 作者: · 浏览: 6
当一个阶段的文档已经编制好并获得SQA小组的认可才可以进入下一个阶段。这样,瀑布模型通过强制性的要求提供规约文档来确保每个阶段都能很好的完成任务。但是实际上往往难以办到,因为整个的模型几乎都是以文档驱动的,这对于非专业的用户来说是难以阅读和理解的。想象一下,你去买衣服的时候,售货员给你出示的是一本厚厚的服装规格说明,你会有什么样的感触。虽然瀑布模型有很多很好的思想可以借鉴,但是在过程能力上有天生的缺陷。
快速原型(Rapid Prototype)模型:在功能上等价于产品的一个子集。注意,这里说的是功能上。瀑布模型的缺点就在于不够直观,快速原型法就解决了这个问题。一般来说,根据客户的需要在很短的时间内解决用户最迫切需要,完成一个可以演示的产品。这个产品只是实现部分的功能(最重要的)。它最重要的目的是为了确定用户的真正需求。在得到用户的需求之后,原型将被抛弃。因为原型开发的速度很快,设计方面是几乎没有考虑的,如果保留原型的话,在随后的开发中会为此付出极大的代价。
迭代式模型是是RUP(统一软件开发过程)推荐的周期模型。在RUP中,迭代包括产生产品发布(稳定、可执行的产品版本)的全部开发活动和要使用该发布必需的所有其他外围元素。所以,在某种程度上,开发迭代是一次完整地经过所有工作流程的过程:(至少包括)需求工作流程、分析设计工作流程、实施工作流程和测试工作流程。实质上,它类似小型的瀑布式项目。RUP认为,所有的阶段(需求及其它)都可以细分为迭代。每一次的迭代都会产生一个可以发布的产品,这个产品是最终产品的一个子集。迭代和瀑布的最大的差别就在于风险的暴露时间上。“任何项目都会涉及到一定的风险。如果能在生命周期中尽早确保避免了风险,那么计划自然会更趋精确。由于瀑布模型的特点(文档是主体),很多的问题在最后才会暴露出来,为了解决这些问题的风险是巨大的。"在迭代式生命周期中,根据主要风险列表选择要在迭代中开发的新的增量内容。每次迭代完成时都会生成一个经过测试的可执行文件,这样就可以核实是否已经降低了目标风险。"

5.已经代码段如下
[cpp]
#include
using namespace std;
class Class1
{
char contents[0];
};
class Class2
{
};
int main()
{
cout< cout< return 0;
}

请问这段代码的输出结果为1 1
答:类的sizeof

三、方向性问答题(C/C++
1.请编写一段代码,不使用系统提供的sizeof函数,测试当前主机上的一个int占用几个字节。(15分)
[cpp]
int *p = new int;
cout< p++;
cout<

2,网卡的MAC地址为六个字节,一般用十六进制表示,比如00-50-8D-49-57-DB,也可用冒号分割,例如00:50:8D:49:57:DB,当然也会有类似00:50:8D:49-57DB这种不规范的写法(如果有分隔符的话,分隔符之间的字符就必然为偶数)。要求写一个函数,把已知的一段这样的字符串(以上三种情况都有可能出现)转化为6个字节以‘-’分隔的标准MAC地址,并对这个函数设计单元测试用例。(25分)
答:
[cpp]
void Solve(string str)
{
int j = 0, cnt = 0;
char ch[0];
while(str[j] != '\0')
{
if((str[j] >='0' && str[j] <= '9') || (str[j] >= 'A' && str[j] <= 'F'))
{
ch[cnt] = str[j];
cnt++;
}
}
cout< cout< cout< cout< }

三、方向性问答题(java)

三、方向性问答题(系统)
1.请简述你对linux中proc虚拟文件系统的理解(20分)
答:
[cpp]
/proc 文件系统是一种内核和内核模块用来向进程 (process) 发送信息的机制 (所以叫做 /proc)。 与其他文件系统不同,/proc 存在于内存之中而不是硬盘上,因此是一个伪文件系统。这个伪文件系统让你可以和内核内部数据结构进行交互,获取 有关进程的有用信息,在运行中 (on the fly) 改变设置 (通过改变内核参数)。如果你察看文件 /proc/mounts (和 mount 命令一样列出所有已经加载的文件系统),你会看到其中 一行是这样的:
grep proc /proc/mounts
/proc /proc proc rw 0 0
/proc 由内核控制,没有承载 /proc 的设备。因为 /proc 主要存放由内核控制 的状态信息,所以大部分这些信息的逻辑位置位于内核控制的内存,通常是动态改变的。对 /proc 进行 一次 ‘ls -l‘ 可以看到大部分文件都是 0 字节大的;不过察看这些文件的时候,确 实可以看到一些信息。这怎么可能?这是因为 /proc 文件系统和其他常规的文件系 统一样把自己注册到虚拟文件系统层 (VFS) 了。然而,直到当 VFS 调用它,请求 文件、目录的 i-node 的时候,/proc 文件系统
才根据内核中的信息建立相应的文件 和目录。

2.一段PHP代码如下所示,指出存在的漏洞是什么,如何预防。(20分)
[cpp]
< php
$val=$_GET["reqno"];
echo $val;
>

答:不会

三、方向性问答题(测试)

三、方向性问答题(前端)

四、综合题(除前端开发外,所有应聘技术的同学必答题,20分)
有一枚筛子,每个面都有一个数字:1~6.很显然,你会倾向于认为这6个面出现的概率是相等的,也就是:P(x1)=P(x2)=P(x3)=……=P(x6)=1/6。其中P(xi)表示出现数字xi的概率。假如,这枚筛子与其它筛子不同,似乎,他很容易滚到4或者5这个面上,所以这个筛子滚了足够多次以后,它出现的平均值恒定在4.5。这个时候,你会怎样分配P(x1)~P(x6)的概率呢?
答:不会,题目没懂。每个面的概率是随自己分配的?


作者:mishifangxiangdefeng