就业数据资源平台
当前位置:首页 > 笔试题目
淘宝笔试真题及答案


  淘宝笔试真题(一)


  选择题:


  1、vim里怎么换行(命令模式和insert模式)


  2、两个有序列表连接成一个,最少比较次数


  3、给一个前缀表达式,求中缀表达式


  4、-73的补码


  5、函数f【1001】=0,f【1011】=1,问可以成为f的表达式的是?


  6、一数组和指向该数组的指针,指针自增后,求输出。


  问答题:


  1、100用户,每人好友约10个,如何准实时显示好友状态;当用户增至100万时候,会出现什么问题,你之前的方案是否仍然可行?


  2、JavaScript写一个排序函数。


  3、JavaScript写一个函数,每隔五秒调用某个函数。


  4、JavaScript写一个函数,判断输入的字符串是否有效的email地址,用正则表达式。


  5、html和css方面:给出代码,画出网页大体布局。


  6、评价令狐冲对岳不群的态度。


  7、随便涂鸦,表达你的梦想和未来打算。




  淘宝笔试真题(二)


  选择


  1、二维数组按行优先存储,A[2][3]的地址是1087,A[4][7]的地址是1153,请问A[6][7]的地址是多少?


  2、实施软件需求时,常用工具应包括那些?(每个选项都是两个,具体的就不记得了)


  3、单元测试通常采用方法?


  4、二分法检索表用什么存储?


  简答


  5、进程模型和线程模型有哪些优缺点


  程序


  6、二分查找的非递归算法


  C++部分


  1、下面程序运行的结果?


  int i = 0, s = 0;for(;;){if(i == 3 || i == 5)continue;if(i == 6)break;i ++;s += i;}cout << s << endl;


  2、虚析构函数的作用?举例。


  3、什么时候调用拷贝构造函数?


  4、语句int* ptr; *ptr = 10; 有问题吗?


  5、 int a[3][2] = {1, 2, 3, 4, 5, 6};int *p[3];p[0] = a[1];*(p[0] + 1)指向的内容是多少?


  6、请写出下面语句的输出


  char str1[] = "abc";


  char str2[] = "abc";


  const char str3[] = "abc";


  const char str4[] = "abc";


  const char* str5 = "abc";


  const char* str6 = "abc";


  cout << (str1 == str2) << endl; //true or false


  cout << (str3 == str4) << endl;


  cout << (str5 == str6) << endl;




  淘宝笔试真题(三)


  1. 现有千兆光纤连接机器 A 和 B , 机器 A 提供 web 网页服务 , 网页大小 1K 字节 , 机器 B 通过浏览器下载 , 求最有可能下载速度的最大上限 ; ( C )


  C> 100000 页 / 秒


  光纤的上行和下行是一样的 : 要知道网络传输速度一定要明白网络传输速度的单位。我们一般说的百兆、千兆网络的单位是 bps (比特率,即位 / 秒, bit /s ),比如我们说网卡或光纤的传输速度是百兆,也就是 100Mbps 的意思。而在实际应用中( Widnwos 、网际快车、迅雷等)使用的传输单位是字节 / 秒( Byte/s) 。电脑中 1 字节 =8 位,因此 100 兆的光纤速度等于 12.5MB/s( 即 100Mbps/s 除以 8 )


  2. 单链表中每个节点中包括一个指针 link, 它指向该节点的后继节点。现要将指针 q 指向的新节点插入到指针 p 指向的单链表节点之后,下面的操作序列中哪一个是正确的?( C )


  C> q->link=p->link;p->link=q;


  3. 假设地图上每个国家都用矩形表示,那么最少用 ( 4 ) 种颜色着色,使得有共同边界的国家都披上不同颜色?


  4. 快速排序算法的时间复杂度为 O( nlog2n), 但在( A )情况下,该算法效率近似 O(n2)


  A> 初始序列有序或基本有序


  5. 若有声明: int I,j ==2,*p=&I; 则能完成 i=j 赋值功能的语句是( B )


  A) i=*p; B) * p =*&j; C) i=&j; D) i=**p;


  解释:


  A) i=*p; (*p) 即为 i ,也就是 i=i ,错。。


  C) i=&j; 将变量 j 的地址赋给 i ,错。。


  D) i=**p; (*p) 是个整型变量 i , *(*p) 就不知道是什么东西了,语法不对,错。。


  B) *p 就是 i , *&j 就是 *(&j) ,也就是 j ,整个语句就是 i=j 。。对


  6. 有宏定义“ defineF(a,b) a*b ” , 那么“ F(3+6,8--5) ”的值为( B )


  A.27 B.46 C.67 D.21


  7. 一个栈的入栈顺序是 1,2,3 , ……n, 如果出栈序列的第一个元素是 n, 那么输出第 i() 个元素害是(B )


  A 不确定 B.n-i+1 C.1 D,n-i.


  8.已知一算术表达式的中缀形式为 A+B*C-D/E, 后缀表达式为 ABC*+DE/-, 其前缀形式为( D )


  A. -A+B*C/DE B. -A+B*CD/E C . -+*ABC/DE D. -+A*BC/DE


  9. 线性 表L= ( a1,a2,......an )用数组表示,假定删除表中任一元素的概率相同,则删除一个元素平均要移动的元素个数是 (n-1)/2


  10. 找到数组中第二大元素,Data中包含的都是正整数, count 表示 data 中元素的个数, count>1


  思路:最大值=data[0] ,次大值 =data[1] ,遍历一次,每次比较并更新次大和最大值。最后可以 得 第二大值,适用于前N 大问题, N 非常小的情况。


  Int find(int data[],int count){Int number = data[0];Int result = data[1];For(int i =1 ; i{If(data>number){Result = number;Number = data;}Else{If(data>result)Result=data;}}Return result;}


  11. 假定x=9999, 下面函数的返回值是 8,统计1 的个数int func(int x){int countx = 0;while(x){countx++;x = x&(x-1);}return countx;}假定x = 999910011100001111


  答案: 8。思路: 将 x 转化为 2 进制,看含有的 1 的个数。注: 每执行一次 x = x&(x-1) ,会将 x 用二进制表示时最右边的一个 1 变为 0 ,因为 x-1 将会将该位 (x 用二进制表示时最右边的一个 1) 变为 0 。


  12. 有以下定义和语句Int a[3][2]={1,2,3,4,5,6},*p[3]P[0]=a[1];则*(p[0]+1) 所代表的数组元素是 4*( p[0]+1) 代表的数组元素 a[1][1]=4;*p[3];这个相当于同时定义了三个指针变量,而第一个指针变量 p[0] 指向了第一行的起始地址,也就是a[1] ,所以 * ( p[0]+1) 相当于 * ( a[1]+1)也就是a[1][1]=4 了


  13.现有米 7 公斤,并有一个 50 克和 200 克的砝码,请问要称出 1350 克得米,最少需要几次?如何用程序找到最少的步骤?


  答案一:最少三次,写不出代码,望交流


  第一次 左 边200g+50g 砝码称 250g 的米


  第二次左边 200g砝码 + 250g的米 ,称 450g的米


  第三次 左边 200g砝码 +4 50g的米 ,称 650g的米


  答案二:六次 ,递归算法


  14. 把N 个鸡蛋放到 M 个篮子里,每个篮子不能为空,要满足:任意给出一个不超过 N 的数量,都能找到其中某几个篮子的鸡蛋和等于它。请写一个程序,输入 N,M ,然后输出所有鸡蛋的方法。


  15. 大家知道,在淘宝的每一笔交易,买家和卖家都可以向对方做一个评价。开始时用一张评价信息表来存储这些评价信息。随着业务的增长,这些数据量和访问量都增加了很多。想问一下,如何设计来支撑更高的数据量和访问量呢?


  提示:从功能上,每个淘宝用户都需要看到自己对别人的评价以及别人对自己的评价,需要能够对交易的对方做出评价。你可以考虑方库分表、考虑使用缓存。可以引用搜索,但是需要你能够描述清楚你设计的结构,以及这样带来的好处,并且你的架构是能真正运转起来的


 


  更多相关的笔试题目,大家敬请继续阅读:网易汽车编辑招聘笔试题     财务经理笔试题   设备监理师笔试试题  



就业数据资源平台