阿里巴巴集团 2011届实习生招聘 技术笔试卷——C++部分

C&C++部分html

选择题(每题5分)数据结构

1int main(void)
函数

{性能

  int count=0; int m=779;spa

  while(m)操作系统

  {count++;  m=m&(m-1);}指针

  printf("%d\n",count); return 0;htm

}blog

请问最终输出的count值为(     )         资源

A3      B4      C5      D8

注解by Snowwolf_Yang:这个题目其实是求解m转换为二进行制形式中1的个数,m=m&(m-1)每执行一次就消除一个1

更多求解二进制形式中1的个数的方法 http://www.cnblogs.com/graphics/archive/2010/06/21/1752421.html

 

 

2在32位操做系统中,咱们定义以下变量

int (*n)[10];

请问调用函数sizeof(n),返回值为(     )  A     B40     C8      D80

 注解by Snowwolf_Yang:这是n实际是一个 int**类型的数据。因此n其实是一个指针,指针即地址,对于32位机器来讲一个地址为4字节。

 

 

3int main(void)

{

  int i=1;  int j=i++;

  if((i++>++j) && (++i == j)) i+=j;

  printf("%d\n",i);  return 0;

}

请问最终输出的i值为(     )              A2     B3       C4      D5

  注解by Snowwolf_Yang:++i是使用i以前先使i加一,i++是使用i以后再加一.若是不能理解,那么能够理解为++i是先计算,再操做,i++是后计算,先操做。

是在执行完在if语句以前i = 2;j=1;if(i++>++j&&)是if(2>2)判断失败,后执行一次i+1,因此i=3

 

 

4如下叙述中正确的是(     )

A能够在一个函数中定义另外一个函数     Bmain()函数必须放在其余函数以前

C构成C++语言程序的基本单位是类      D全部被调用的函数必定要在调用以前进行定义

   注解by Snowwolf_Yang:很明显其余都是错的。A中,能够在一个函数中声明一个函数,但不能定义

综合题(每题15分)

有10亿个数,这些数的值都在0~1000万以内。请使用定义一个数据结构实现这些数字的存储,并实现函数 get_bigger_count( unsigned value ),输入一个值value,返回这10亿个数中比value值大的数的数目。

要求:不能使用STL,请尽可能考虑性能与资源的占用。 

相关文章
相关标签/搜索