0
点赞
收藏
分享

微信扫一扫

阿里巴巴2010搜索研发C++工程师笔试卷


1



5^4*5!*15!/20!



4^5*5!*15!/20!



5^4*4!*16!/20!



4^5*4!*16!/20!
//每排一个人总数为5*5*5*5,20人里选择4人的总数为C(4,20)

2



f,c,b



f,d,b



g,c,b



g,d,b





3



FILE可以用变量$file来代替



mode可以和file写在一起,例如:open(FILE, ‘>file’)



mode为+<的时候,只可以读文件,不能写文件(既可以读也可以写)



mode可以省略不写


//可读写




4



7



8



9



10


//FIFO,发生缺页时的调入顺序即为淘汰顺序


1、访问1,缺页,调入1,内存中为    1, ,;



2、访问2,缺页,调入2,内存中为   1,2,;



3、 访问3,缺页,调入3,内存中为 1,2,3;



4、 访问4,缺页,调入4,淘汰1,内存中为 4,2,3;



5、 访问5,缺页,调入5,淘汰2,内存中为 4,5,3;



6、 访问1,缺页,调入1,淘汰3,内存中为 4,5,1;



7、 访问2,缺页,调入2,淘汰4,内存中为 2,5,1;



8、 访问5,不缺页,内存中为 2,5,1;



9、 访问1,不缺页,内存中为 2,5,1;



10、 访问2,不缺页,内存中为 2,5,1;


11、访问3,缺页,调入3,淘汰5,内存中为 2,3,1;

12、访问4,缺页,调入4,淘汰1,内存中为 2,3,4;



13、访问5,缺页,调入5,淘汰2,内存中为 5,3,4;





5



2



3



4



5

6



采用索引结构,逻辑上连续的文件存放在连续的物理块中



系统为每个文件建立一张索引表



索引结构的优点是访问速度快,文件长度可以动态变化



索引结构的缺点是存储开销大





7



二叉搜索树,比较函数开销:1次运算/每字符



哈希表,hash算法开销:10次运算/每字符



链表,比较函数开销:1次运算/每字符



TRIE树,寻找子节点开销:1次运算/每字符


//注解:又称单词查找树,Trie树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计。它的优点是:利用字符串的公共前缀来减少查询时间,最大限度地减少无谓的字符串比较,查询效率比哈希表高。




8



【2、1、4、3、9、5、8、6、7】



【1、2、5、4、3、9、8、6、7】



【2、3、1、4、7、9、5、8、6】



【1、2、5、4、3、9、7、8、6】





9



10



2^10



2^14



2^24





10



30



26



38



33





11



Shell 排序



归并排序



直接插入排序



选择排序





12



{0,0,0,0},{1,1,1,1}



{0,0,0,0},{1,0,0,0}



{0,不确定},{1,不确定}



与编译器相关





13



9



10



12



18





14



int (*(*F)(int, int))(int)



int (*F)(int, int)



int (*(*F)(int, int))



*(*F)(int, int)(int)





15



(int *p[10])(int*)



int [10]*p(int *)



int (*(*p)[10])(int *)



int ((int *)[10])*p



以上选项都不正确





16



不确定



n-i+1



i



n-i





17

阿里巴巴2010搜索研发C++工程师笔试卷_缺页



语句1



语句2



语句3



语句4


//因为语句3没有定义b对象,所以语句4出错




18

在32位机器上,下列代码中

阿里巴巴2010搜索研发C++工程师笔试卷_存储空间_02

 

sizeof(a)的值是()

20


21


22


24


非以上选项

//int 4,union13+1 偶对齐 enum 4,总22

//

1:结构(struct)(或联合(union))的数据成员,第一个数据成员放在offset为0的地方,以后每个数据成员存储的起始位置要从该成员大小的整数倍开始(比如int在32位机为4字节,则要从4的整数倍地址开始存储。

2:结构体作为成员:如果一个结构里有某些结构体成员,则结构体成员要从其内部最大元素大小的整数倍地址开始存储.(structa里存有struct b,b里有char,int ,double等元素,那b应该从8的整数倍开始存储.)

3:收尾工作:结构体的总大小,也就是sizeof的结果,.必须是其内部最大成员的整数倍.不足的要补齐.

typedef struct bb
{
 intid;            //[0]....[3]
 doubleweight;     //[8].....[15]      原则1
 floatheight;     //[16]..[19],总长要为8的整数倍,补齐[20]...[23]     原则3
}BB;

typedef struct aa
{
 charname[2];    //[0],[1]
 int id;        //[4]...[7]          原则1

 doublescore;    //[8]....[15]    
 short grade;   //[16],[17]        
 BBb;            //[24]......[47]          原则2
}AA;


union

1.共用体类型实际占用存储空间为其最长的成员所占的存储空间; 


 2.若是该最长的存储空间对其他成员的元类型(如果是数组,取其类型的数据长度,例int  a[5]为4)不满足整除关系,该最大空间自动延伸; 
   
  我们来看看这段代码:  
  union   mm{ 
  char   a;//元长度1 
  int   b[5];//元长度4 
  double   c;//元长度8 
  int   d[3]; 
  };  
 本来mm的空间应该是sizeof(int)*5=20;但是如果只是20个单元的话,那可以存几个double型(8位)呢?两个半?当然不可以,所以mm的空间延伸为既要大于20,又要满足其他成员所需空间的整数倍,即24 
 所以union的存储空间先看它的成员中哪个占的空间最大,拿他与其他成员的元长度比较,如果可以整除,ok


19


vector


list


deque


stack

//链表适合插入和删除




20


两重遍历


快慢指针


路径记录


哈希表辅助



21


*


.*



::


delete



22


++


>>


*(前置)



==



23


struct的成员默认是public,class的成员默认是private


struct不能继承,class可以继承


struct可以有无参构造函数


struct的成员变量只能是public



24

给出以下定义,下列哪些操作是合法的?


char a[] = "hello";
char b[] = "world";
const char *p1 = a;
char* const p2 = b;


p1++


p1[2]='w';


p2[2]='l';


p2++



25


基类定义的public成员在公有继承的派生类中可见,也能在类外被访问


基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问



基类定义的public和protected成员在保护继承的派生类中不可见



基类定义的protected成员在protected继承的派生类中可见,也能在类外被访问








举报

相关推荐

0 条评论