• c++程序猿经典面试题



    1.请问i的值会输出什么?

    #include"iostream.h" 

    int i=1; 

    void main() 

    int i=i; 

    cout<<i<<endl; 

    }


    答案:
    i是一个没有定义的值。
    由于你在main函数里面你又一次定义了一个局部变量i,并且没有初始化。它的值就是一个随机值。(所分配内存位置转换为int后的值)。
    同一时候,在main函数里面使用i会覆盖之前定义的全局变量i(即int i = 1那句)。

    输出i的值是局部变量i的值。

    2.请问x会输出什么?
    #include<iostream>
    using namespace std;
    int main()
    {
    int x=2,y,z;
    x*=(y=z=5);cout<<x<<endl;
    z=3;
    x==(y=z);cout<<x<<endl;
    x=(y==z);cout<<x<<endl;
    x=(y&z);cout<<x<<endl;
    x=(y&&z);cout<<x<<endl;
    y=4;
    x=(y|z);cout<<x<<endl;
    x=(y||z);cout<<x<<endl;
    return 0;
    }
    答案:
    10。10,1,3,1,7。1
    3.下面代码的结果是多少?
    #include<iostream>
    using namespace std;
    int func(int x)
    {
    int count=0;
    while(x)
    {
    count++;
    x=x&(x-1);
    }
    return count;
    }
    int main()
    {
    cout<<func(9999)<<endl;
    return 0;
    }
    答案:
    8
    细致想想应该是9999的二进制表示中1的个数。想不通了纸上画一下。




  • 相关阅读:
    my.cnf
    js日期和毫秒互转
    传送门
    js 十进制转十六进制
    关键字
    常见异常
    Map迭代
    Hibernate

    MySql Host is blocked because of many connection errors; unblock with 'mysqladmin flushhosts' 解决方法
  • 原文地址:https://www.cnblogs.com/bhlsheji/p/5144242.html
Copyright © 2020-2023  润新知