阿里巴巴笔试题1(转载)

来源:互联网 发布:剑网三捏脸数据怎么看 编辑:程序博客网 时间:2024/05/17 19:17

1、有一个虚拟存储系统,若进程在内存中占3页(开始时内存为空),若采用先进先出(FIFO)页面淘汰算法,当执行如下访问页号序列后1,2,3,4,5,1,2,5,1,2,3,4,5,会发生多少缺页?
A、7                     B、8                           C、9                          D、10

2、设有一个顺序栈S,元素s1、s2、s3、s4、s5、s6依次进栈,如果6个元素的出栈顺序为s2、s3、s4、s6、s5、s1,则顺序栈的容量至少应为多少?
A、2                     B、3                            C、4                          D、5

3、下列关于文件索引结构的叙述中,哪一个是错误的?
A、采用索引结构,逻辑上连续的文件存放在连续的物理块中
B、系统为每个文件建立一张索引表
C、索引结构的优点是访问速度快,文件长度可以动态变化
D、索引结构的缺点是存储开销大

4、【0、2、1、4、3、9、5、8、6、7】是以数组形式存储的最小堆,删除堆顶元素0后的结果是()
A、【2、1、4、3、9、5、8、6、7】
B、【1、2、5、4、3、9、8、6、7】
C、【2、3、1、4、7、9、5、8、6】
D、【1、2、5、4、3、9、7、8、6】

5、某页式存储管理系统中,地址寄存器长度为24位,其中页号占14位,则主存的分块大小是()字节。
A、10                    B、2^10                    C、2^14                   D、2^24

6、在一个长为33厘米的光滑凹轨上,在第3厘米、第6厘米、第19厘米、第22厘米、第26厘米处各有一个钢珠,凹轨很细,不能同时通过两个钢珠,开始时,钢珠运动方向是任意的。两个钢珠相撞后,以相同速度反向运动。假设所有钢珠初始速度为每秒运动1厘米,那么所有钢珠离开凹轨的最长可能时间是()
A、30                    B、26                      C、38                     D、33

7、std::vector::iterator重载了下面哪些运算符?
A、++                   B、>>                      C、*(前置)                   D、==

8、下列运算符,在C++语言中不能重载的是()
A、*                       B、?:                   C、::                          D、delete

9、在排序方法中,元素比较次数与元素的初始排列无关的是()
A、Shell排序        B、归并排序             C、直接插入排序                D、选择排序
A、C肯定不选的,归并排序的在merge中是跟序列有关,如果有序,比较次数最少n/2,最糟是元素错落n-1。而选择排序比较次数与关键字的初始状态无关,总的比较次数N=(n-1)+(n-2)+...+1=n*(n-1)/2。所以应该是选择排序!

10、给定如下代码: int x[4]={0}; inty[4]={1}; 数组x和y的值为()
A、{0,0,0,0},{1,1,1,1}
B、{0,0,0,0},{1,0,0,0}
C、{0,不确定},{1,不确定}
D、与编译器相关

10、给出以下定义,下列哪些操作是合法的?
const char *p1 = "hello";
char* const p2 = "world";
A、p1++                     B、p1[2]='w';                     C、p2[2]='l';                   D、p2++

11、假设在n进制下,下面的等式成立,n值是()567*456=150216
A、9              B、10                C、12                    D、18

假设是X进制,则567=7+6*X+5*X^2,456=6+5*X+4*X^2,所以564*456=(7+6*X+5*X^2)*(6+5*X+4*X^2)而150216=6+X+2*X^2+5*x^4+X^5,由于567*456=150216,则6+X+2*X^2+5*x^4+X^5=(7+6*X+5*X^2)*(6+5*X+4*X^2),最后解出来X=18

12、关于struct和class,下列说法正确的是()
A、struct的成员默认是public,class的成员默认是private
B、struct不能继承,class可以继承
C、struct可以有无参构造函数
D、struct的成员变量只能是public

若不明确指定,来自class的继承按照private继承处理,来自struct的继承按照public继承处理;都可使用public/private/protected修饰符,都可以有无参构造函数

13、定义一个函数指针,指向的函数有两个int形参并且返回一个函数指针,返回的指针指向一个有一个int形参且返回int的函数?
A、int (*(*F)(int,int))(int)
B、int (*F)(int, int)
C、int (*(*F)(int, int))
D、*(*F)(int, int)(int)

14、声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()
A、(int*p[10])(int*);
B、int[10]*p(int *);
C、int (*(*p)[10])(int *);
D、int ((int *)[10])*p;
E、以上选项都不正确

15、一个栈的输入序列为123.....n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是()
A、不确定
B、n-i+1
C、i
D、n-i

16、下列代码编译时会产生错误的是()

[cpp] viewplaincopy
  1. #include   
  2. using namespace std;  
  3. struct Foo  
  4.  
  5.     Foo()   
  6.     Foo(int  
  7.     void fun()     
  8. };  
  9. int main(void 
  10.  
  11.     Foo a(10);    //语句1  
  12.     a.fun();      //语句2  
  13.     Foo b();      //语句3  
  14.     b.fun();      //语句4  
  15.     return 0;  
  16.  

A、语句1            B、语句2          C、语句3            D、语句4        
17、在32位机器上,下列代码中

[cpp] viewplaincopy
  1. #pragma pack(2)  
  2. class  
  3.  
  4.     int i;  
  5.     union  
  6.      
  7.         char buff[13];  
  8.         int i;  
  9.     }u;  
  10.     void foo()     
  11.     typedef char(*f)(void*);  
  12.     enum{red, green, blue} color;  
  13. }a;  

sizeof(a)的值是()

A、20      B、21       C、22       D、24          E、非以上选项

18、下面描述中,错误的是()
A、基类定义的public成员在公有继承的派生类中可见,也能在类外被访问
B、基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问
C、基类定义的public和protected成员在保护继承的派生类中不可见
D、基类定义的protected成员在protected继承的派生类中可见,也能在类外被访问

19、当很频繁地对序列中部进行插入和删除操作时,应该选择使用的容器是()
A、vector     B、list     C、deque     D、stack

20、判断一个单向链表中是否存在环的最佳方法是()
A、两重遍历      B、快慢指针     C、路径记录      D、哈希表辅助
21、给你1、2、3 这三个数字 可以使用C的各种运算符 你能表示的最大的整数是()

A、2*3*sizeof(1)            B、3<<(2<<sizeof(1))                   C、sizeof(3)<<(sizeof(2)<<(sizeof(1)))                    D、(unsignedlong)(2-3)*1

-1的二进制形式就是全1表示

22、下面代码的输出是多少?

[cpp] viewplaincopy
  1. class  
  2.  
  3. public 
  4.     A()     cout<<"A"<<endl;     
  5.     ~A()    cout<<"~A"<<endl;    
  6. };  
  7.   
  8. class B:public  
  9.  
  10. public 
  11.     B(A &a):_a(a)  
  12.      
  13.         cout<<"B"<<endl;  
  14.      
  15.     ~B()  
  16.      
  17.         cout<<"~B"<<endl;  
  18.      
  19. private 
  20.     _a;  
  21. };  
  22.   
  23. int main(void 
  24.  
  25.     a;       //很简单,定义a的时候调用了一次构造函数  
  26.     b(a);    //这里b里面的_a是通过成员初始化列表构造起来的  
  27.     //而且是通过copy constructor构造的是b的成员对象_a的,这里是编译器默认的,因此在构造好_a前,先调用基类构造函数  
  28.     //然后才是构造自身,顺序就是A()->_a->B()(局部)  
  29.     //因此这里有两个A,一个B  
  30.   
  31.       
  32.     //在return之前进行析构  
  33.       
  34.       
  35.     return 0;  
  36.  


0 0
原创粉丝点击