求下面函数的返回值(微软)int func(x){int countx = 0;while(x){countx ++;x = x&(x-1);}return countx;}

题目

求下面函数的返回值(微软)

int func(x)

{

int countx = 0;

while(x)

{

countx ++;

x = x&(x-1);

}

return countx;

}


相似考题
参考答案和解析
正确答案:

 

假定x = 9999。答案:8
思路:将x转化为2进制,看含有的1的个数。

更多“求下面函数的返回值(微软)int func(x){int countx = 0;while(x){countx ++;x = x&(x-1);}r ”相关问题
  • 第1题:

    以下程序执行后的输出结果是include.using namespace std;void try(int,int,int,int)

    以下程序执行后的输出结果是 #include<iostream>. using namespace std; void try(int,int,int,int); int main() { int x,y,z,r; x=1; y=2; try(x,y,z,r); cout<<r<<end1; return 0; } void try(int x,int y, int z,int r) { z = x+y; x = x*x; y = y*y; r = z+x+y; }

    A.18

    B.9

    C.10

    D.不确定


    正确答案:D
    解析:本题考核函数调用(参数的传递)。本题常见的错误解答是:把x=1,y=2代入到函数try中,逐步计算出r=8。最后得到r的输出值是8。以下是正确解答,根据程序逐步分析:程序中定义了一个名为try的void型函数,即函数try没有任何返回值。而try函数在main函数中是以一条独立语句的方式被调用的,且main函数最后输出变量r的值。但在main函数中,并没有对变量r赋值。在C++语言中,数据只能从实参单向传递给形参,称为按值传递。也就是说,当简单变量作为实参时,用户不能在函数中改变对应实参的值。所以虽然在函数try中,r的值为8,但它并不能传递给实参,当然最终的输出肯定是不确定的随机数了。

  • 第2题:

    求y=cos(x)从0到π的积分,正确的命令为_________。

    A.int(y,x,0,pi)

    B.int(x,0,pi)

    C.int(x,y,0,pi)

    D.int(0,pi,x,y)


    df

  • 第3题:

    5、对于多个输入参数的函数也可以使用递归。下面哪个递归定义是正确的自然数加法?也就是说,对于自然数x,y,plus x y给出x+y。

    A.plus :: Int -> Int -> Int plus 0 y = y plus x y = 1 + plus (x-1) y

    B.plus :: Int -> Int -> Int plus x 0 = x plus x y = 1 + plus x (y-1)

    C.plus :: Int -> Int -> Int plus x y = 1 + plus (x-1) y plus 0 y = y

    D.plus :: Int -> Int -> Int plus 0 y = y plus x y = 1 + plus (x-1) (y-1)


    正确

  • 第4题:

    若x为int型变量,则以下函数fun的类型为 fun(x) { printf("%d",x);}

    A.返回值为void类型

    B.无法确定返回值

    C.返回值为int类型

    D.无返回值


    C

  • 第5题:

    10、求y=cos(x)从0到π的积分,正确的命令为_________。

    A.int(y,x,0,pi)

    B.int(x,0,pi)

    C.int(x,y,0,pi)

    D.int(0,pi,x,y)


    int(f(x),x,a,b)