C&C++部分html
选择题(每题5分)数据结构
{性能
int count=0; int m=779;spa
while(m)操作系统
{count++; m=m&(m-1);}指针
printf("%d\n",count); return 0;htm
}blog
请问最终输出的count值为( ) 资源
A: 3 B:4 C:5 D:8
注解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: 4 B:40 C:8 D:80
注解by Snowwolf_Yang:这是n实际是一个 int**类型的数据。因此n其实是一个指针,指针即地址,对于32位机器来讲一个地址为4字节。
3、int main(void)
{
int i=1; int j=i++;
if((i++>++j) && (++i == j)) i+=j;
printf("%d\n",i); return 0;
}
请问最终输出的i值为( ) A: 2 B:3 C:4 D:5
注解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:能够在一个函数中定义另外一个函数 B:main()函数必须放在其余函数以前
C:构成C++语言程序的基本单位是类 D:全部被调用的函数必定要在调用以前进行定义
注解by Snowwolf_Yang:很明显其余都是错的。A中,能够在一个函数中声明一个函数,但不能定义
综合题(每题15分)
有10亿个数,这些数的值都在0~1000万以内。请使用定义一个数据结构实现这些数字的存储,并实现函数 get_bigger_count( unsigned value ),输入一个值value,返回这10亿个数中比value值大的数的数目。
要求:不能使用STL,请尽可能考虑性能与资源的占用。