阿里巴巴2011笔试题(强化)

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

A、30                     B、26                        C、38                      D、33

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

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

10、给定如下代码: int x[4]={0}; int y[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、与编译器相关

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

 

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


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

  1. #include <iostream> 
  2. using namespace std; 
  3. struct Foo 
  4.     Foo() {  } 
  5.     Foo(int) {  } 
  6.     void fun()   {  } 
  7. }; 
  8. int main(void) 
  9.     Foo a(10);    //语句1 
  10.     a.fun();      //语句2 
  11.     Foo b();      //语句3 
  12.     b.fun();      //语句4 
  13.     return 0; 

A、语句1             B、语句2           C、语句3             D、语句4     

16. D。语句3就已经不对了,应该没有后面的括号的,但编译器会认为这是函数的声明,所以3本身不报错,4基于3的认识上出错。

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

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

sizeof(a)的值是()

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

Union是取最大的字节数,取13字节因为pack(2),以2字节对齐,必须是2的倍数,所以对齐后是14;函数以及类型重定义不占字节,外层的struct的字节是4+14+(3+1),这里enum要是2的倍数,所以+1对齐,结果是22字节。


Type

Size

数值范围

无值型void

0 byte

无值域

布尔型bool    

1 byte

true   false

有符号短整型short [int] /signed short [int]

2 byte

-32768~32767

无符号短整型unsigned short [int]  

2 byte

0~65535

有符号整型int /signed [int]

4 byte

-2147483648~2147483647

无符号整型unsigned [int]

4 byte

0~4294967295

有符号长整型long [int]/signed long [int]

4 byte

-2147483648~2147483647

无符号长整型unsigned long [int]

4 byte

0~4294967295

long long

8 byte

0~18446744073709552000

有符号字符型char/signed char

1 byte

-128~127

无符号字符型unsigned char

1 byte

0~255

宽字符型wchar_t (unsigned short.)

2 byte

0~65535

单精度浮点型float 

4 byte

-3.4E-38~3.4E+38

双精度浮点型double

8 byte

1.7E-308~1.7E+308

long double

8 byte

 

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

A:用户代码可以访问类的public成员;B:protected成员可以被派生类访问但不能被普通用户访问。C:可见,但在派生类中为protected成员。D:protected成员不能在类外被访问。

23、一个骰子,6面,1个面是 1, 2个面是2, 3个面是3, 问平均掷多少次能使1、2、3都至少出现一次!

1发生 的概率是1/6,  2发生的概率是2/6,  3发生的概率是3/6,求1,2,3至少出现一次的投掷次数的期望。

假设投掷n次时,1、2、3至少发生一次的概率为p

(1)n=1和n=2时,p=0;

(2)n=3时,1、第三次出现1p(n=3)=p1+p2+p3

http://blog.csdn.net/libertea/article/details/6940062

24、问题描述:
12个高矮不同的人,排成两排,每排必须是从矮到高排列,而且第二排比对应的第一排的人高,问排列方式有多少种?

令h(0)=1,h(1)=1,catalan数满足递推式[1]

h(n)= h(0)*h(n-1)+h(1)*h(n-2) + ... + h(n-1)h(0) (n>=2)
例如:h(2)=h(0)*h(1)+h(1)*h(0)=1*1+1*1=2
h(3)=h(0)*h(2)+h(1)*h(1)+h(2)*h(0)=1*2+1*1+2*1=5

你可能感兴趣的:(阿里巴巴2011笔试题(强化))