首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

昨天的3道微软面试选择题,求告诉小弟我里面的考点是什么啊除了说说结果

2013-10-29 
昨天的3道微软面试选择题,求告诉我里面的考点是什么啊?除了说说结果whatis the output of the following p

昨天的3道微软面试选择题,求告诉我里面的考点是什么啊?除了说说结果
what  is the output of the following program?
int func(int x)
{
   int count =0;
   while(x)
   {
     count++;
     x=x&(x-1);
   }
   return count;
}

main()
{
 printf("%d",func(9999));
}

A 8
B 9
C 10
D 11


2what  is the output of the following program?

void fn(int *b)
{
 (*b)++;
 }
 
 int main
 {
    int a=7;
    int b=4;
    fn(&a);
    printf("%d",a&&b);
    return 0;
 }
 A 0
 B 1
 C 4
 D 7
 
 3what  is the output of the following program?
 
 main()
 {
   int a[3][3],*p,i;
   p=a[0];
   for(i=0;i<9;i++)
   {
     *(p+i) = i+1;
   }
   printf ("%d",a[1][2]);
 }
 
 A 2
 B 3
 C 5
 D 6
[解决办法]
第一题是8,目的是求一个二进制数里有多少个1。
第二题是1,目的是看你知不知道当表达式为TRUE时,TRUE的具体数值是什么。
第一题是6,目的好像是看你是不是明白C数组下标从0开始,如果答2的话VB组会招你去。
[解决办法]
1.数一的个数
2.非零的为true
3.二维数组等价一维数组(在内存中)
[解决办法]
1.难一点:
9999先转换为二进制
x-1算术运算的结果是:若x是奇数(最末位为1)则去掉这个1,否则将***100..0形式变换为***011..1(即将最后一个1及后续的0变换为0后续连续的1)
x&(x-1)则综合上面的运算效果为去掉x编码中最后一个1

while(x)循环的效果就是x不为0则计数并去掉最后(最右)一个1===》统计x的二进制码中1的个数
[解决办法]
1, 有多少个bit位是1
2,知不知道a&&b这个返回什么结果
3,知不知道二维数组在内存里就是一维排的
[解决办法]

引用:
第一题是8,目的是求一个二进制数里有多少个1。
第二题是1,目的是看你知不知道当表达式为TRUE时,TRUE的具体数值是什么。
第三题是6,目的好像是看你是不是明白C数组下标从0开始,如果答2的话VB组会招你去。

第一题好像是7吧。
[解决办法]
引用:
引用:

第一题是8,目的是求一个二进制数里有多少个1。
第二题是1,目的是看你知不知道当表达式为TRUE时,TRUE的具体数值是什么。
第三题是6,目的好像是看你是不是明白C数组下标从0开始,如果答2的话VB组会招你去。

第一题好像是7吧。


又被计算器骗了吧,前面还有一个很隐蔽的1............
[解决办法]
第一题计算器就是8啊  上面的在说什么 难道数数都不会了么

热点排行