阿里部分有价值的笔试题分析与汇总

1. 在小端机器中,如果

union X{
    int x;
    char y[4];
};

如果:

X a;

a.x=0x11223344; //16进制

则:

A. a.y[0]=11

B. a.y[1]=11

C. a.y[2]=11

D. a.y[3]=11

E. a.y[0]=22

F. a.y[3]=22

这道题主要看看脑子清不清楚再加上一点关于联合的知识。联合分配空间得时候为联合内部占内存最大的部分的空间大小,所以这块就是4*sizeof(char),也就是4字节,题中给出的X a,a.x=0x11223344,为十六进制,十六进制后边的的这一串数填到a的空间里的时候为先从低位填,也就是说44占据第四个字节中最低位也是物理字节里的第一位,11是最高位也是字节里边的最后一位。这块就有意思了,字符数组在分配内存的时候y[0]是最低位字节,y[3]是最高位字节,储存的时候也是这样子储存的,先储存y[0],最后y[3].所以这块的y[3]对应的时候上面储存时候最后储存进来的11。

2.已知一个二叉树的前序遍历结果是(ACDEFHGB), 中序遍历结果是(DECAHFBG), 请问后序遍历结果是()

A. HGFEDCBA

B. EDCHBGFA

C. BGFHEDCA

D. EDCBGHFA

E. BEGHDFCA

F. BGHFEDCA

A的左子树前序遍历为CDE,中序遍历为DEC,则E为D的右子树D为C的子树,A的右子树前序为FHGB中序为HFBG,则H为F的左子树,G为右子树,B为G的左子树,然后总体的后序遍历就是EDCHBGFA

3.一个好基本的题,

程序出错在什么阶段______?

int main ( void )

{

http://www.taobao.com

cout << "welcome to taobao" << endl ;

}

A. 预处理阶段出错

B.编译阶段出错

C.汇编阶段出错

D.链接阶段出错

E.运行阶段出错

F.程序运行正常

这题真是个好题,很基本,但很巧妙。为啥可以通过编译通过运行呢?。。。http://www.taobao.com,这句话是这样子的,前面的http:是个无用的标签,其效果就想goto语句里面的跳转标签一个,也像switch  case :语句里面的case:一样都是标签,然后后边部分都是注释。所以可以通过编译运行的。

4.用6块1×2的完整瓷砖,铺满2×6的地面,一共有______种不同的铺法(不允许将瓷砖划分成小块)

A.13

B.15

C.22

D.24

E.25

F.26

很简单,想一想就可以得到答案

5.下列方法中,______不可以用来程序调优 ?

A. 改善数据访问方式以提升缓存命中率

B. 使用多线程的方式提高I/O密集型操作的效率

C. 利用数据库连接池替代直接的数据库访问

D. 使用迭代替代递归

E. 合并多个远程调用批量发送

F. 共享冗余数据提高访问效率

递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.

一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代码量.递归的能力在于用有限的语句来定义对象的无限集合.

使用递归要注意的有两点:1.递归就是在过程或函数里面调用自身;   2.在使用递归时,必须有一个明确的递归结束条件,称为递归出口.

迭代:利用变量的原值推算出变量的一个新值.如果递归是自己调用自己的话,迭代就是A不停的调用B.

递归中一定有迭代,但是迭代中不一定有递归,大部分可以相互转换.能用迭代的不用递归,递归调用函数,浪费空间,并且递归太深容易造成堆栈的溢出.

  1. //这是递归
  2. int funcA(int n)
  3. {
  4. if(n > 1)
  5. return n+funcA(n-1);
  6. else
  7. return 1;
  8. }
  9. //这是迭代
  10. int funcB(int n)
  11. {
  12. int i,s=0;
  13. for(i=1;i<n;i++)
  14. s+=i;
  15. return s;
  16. }

6.int main() { fork() || fork();} 共创建几个进程?

A. 1

B. 2

C. 3

D. 4

E. 5

第一个fork()产生两个进程,一个父进程一个子进程,然后第二个fork为第一个产生的父进程产生一个新的子进程,所以一共三个进程。

时间: 2024-10-06 03:58:20

阿里部分有价值的笔试题分析与汇总的相关文章

关于阿里的一道笔试题分析

其题目如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #pragma pack(2) class A { public:     int i;     union U     {         char buff[13];         int i;     }u;     void foo() {    }     typedef char* (*f)(void*);     enum{red, green, blue} color; }a; class A

2014.3.29阿里巴巴暑期实习笔试题分析

参考:http://blog.csdn.net/iloveyoujelly/article/details/22941531 下面中的[分析]是我给出的. 2014.3.29阿里巴巴暑期实习笔试题分析 一.单选 1.假设一个主机ip为192.168.5.121,子网掩码为255.255.255.248,则该主机的网络号部分(包括子网号部分)为-- A.192.168.5.12  B 192.168.5.121   C 192.168.5.120   D 192.168.5.32 参考答案 C [

前端试题-2016年阿里前端开发工程师笔试题6,7,8题的解法

2016年阿里前端开发工程师笔试题(只有题,没有答案): http://www.cnblogs.com/sdgf/archive/2015/08/18/4740698.html 第6题:请在____处填写答案,从而达到题目的要求 var arr = [1, 2, 3, 4, 5]; var result = arr.sort(_______________________________).join("+"); console.log(result); 解答:在排序当中,如果需要按照某

阿里2道前端笔试题+堆糖2道前端笔试题

阿里前端笔试题 1.一个表格HTML代码如下 <table id="table1"> <tbody> <tr><td>1</td><td><button>Delete</button></td></tr> <tr><td>2</td><td><button>Delete</button></

2015年9月阿里校招前端工程师笔试题

前一段时间参加了阿里的9月校招,为了贯彻及时总结的精神,今天就来总结一下我做的这套题目吧. 1.下面哪段css代码通常用于页面水平居中: 1 A:site-align:center; 2 B:margin:center; 3 C:margin:auto 0; 4 D:margin:0 auto; 这题很简单,水平居中答案选D.每个选项来剖析一下, A选项在我做开发两年来,完全没有见到过,初略百度一下也没看到相关的东西:B选项,明显错误:D,其实D可以做到页面垂直居中,要怎么做呢,如下图,默认是h

2015阿里实习线上笔试题-附加题1

随机数生成器 计算机使用的随机数生成器往往是伪随机的,为了达到统计意义上的真随机数,可以需要引入系统 外的变量等作为随机种子(如UNIX系统中熵池).假设有一天出现了上帝的投硬币函数: int G(); 由于这里用到的上帝硬币可能不均匀.但可以保证是G()可以x概率返回1,1-x的概率返回0,其中x为未知常数(且x不等于0或1). 请实现目标函数: int F(double p); 要求 F函数以概率p返回1,以1-p返回0. 除了G之外,不使用的任何库函数. PS:定义宏UINT_MAX=0x

关于makefile笔试题分析(一)

题目:如下makefile文件执行make命令后,打印的调试信息为? Makefile文件内容如下: all:cd ef @echo 123 cd: @echo 456 ef: @echo 789 输出结果? 答案: 456 789 123 拓展:all后面没有cd ef将打印什么? 答案: 123 考点1: make命令参数all可以缺省 考点2:all后面可以跟随其他目标,比按顺序执行 考点3:echo输出有换行的,笔试的时候没注意这一点很容易写成456789123之类的. 这个试题让我想起

2015阿里校招研发工程师笔试题

1.C++内存分配中说法错误的是() A 对于栈来说,生长方向是向上的,也就是向着内存地址增加的方向 //错,对于堆来讲,生长方向是向上的,也就是向着内存地址增加的方向:对于栈来讲,它的生长方向是向下的,是向着内存地址减小的方向增长. B 对于堆 ,大量的new/delete操作会造成内存空间不连续 //对,对于堆来讲,频繁的new/delete势必会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低.对于栈来讲,则不会存在这个问题,因为 //栈是先进后出的队列,他们是如此的一一对应,以至

阿里前端内推笔试题

利用面向对象思想完成买家信息删除功能,每一条信息包含: 姓名(name) 性别(sex) 电话号码(number) 省份(province) 实现以下要求: 不能借用任何第三方库,需要使用原生代码实现. 结合给出的基本代码结构,在下方2处code here补充代码,完成买家信息的删除功能,注意此页面要在手机上清晰显示. js代码可以任意调整,例如和使用es6代码完成. <!DOCTYPE html> <html> <head> <meta charset=&quo