C/C++ 笔试、面试题目大汇总 - xujianxin

C/C++ 笔试、面试题目大汇总

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

  int func(x)

  {

  int countx = 0;

  while(x)

  {

  countx ++;

  x = x&(x-1);

  }

  return countx;

  }

  假定x = 9999。 答案:8

  思路:将x转化为2进制,看含有的1的个数。

   2. 什么是“引用”?申明和使用“引用”要注意哪些问题?

  。引用声明完毕后,相当于目标变量名有两个名称,即该目标原名称和引用名, 统也不给引用分配存储单元。不能建立数组的引用。

   3. 将“引用”作为函数参数有哪些特点?

  (1) 传递引用给函数与传递指针的效果是一样的

  (2) 使用引用传递函数的参数,在内存中并没有产生实参的副本,它是直接对实参操作 用引用比用一般变量传递参数的效率和所占空间都好。

  (3)使用指针作为函数的参数虽然也能达到与使用引用的效果,但是,在被调函数中,且需要重复使用"*指针变量名"的形式进行运算,这很容易产生错误且程序的阅读性较差;另一方面, 在主调函数的调用点处,必须用变量的地址作为实参。而引用更容易使用,更清晰。

   4. 在什么时候需要使用“常引用”? 

  如果既要利用引用提高程序的效率,又要保护传递给函数的数据不在函数中被改变,就应使用常引用。常引用声明方式: const 类型标识符 &引用名=目标变量名;

  例1

  int a ;

  const int &ra=a;

  ra=1; //错误

  a=1; //正确

  例2

  string foo( );

  void bar(string &s);

  那么下面的表达式将是非法的:

  bar(foo( ));

  bar("hello world");

  引用型参数应该在能被定义为const的情况下,尽量定义为const 。

   5. 将“引用”作为函数返回值类型的格式、好处和需要遵守的规则?

  格式:类型标识符 &函数名(形参列表及类型说明){ //函数体 }

  注意事项:

  (1) 不能返回局部变量的引用

  (2) 不能返回函数内部new分配的内存的引用 造成memory leak

  (3) 可以返回类成员的引用,但最好是const

  (4) 流操作符重载返回值申明为“引用”的作用:

   流操作符<<和>>, 对于返回一个流对象,程序必须重新(拷贝)构造一个新的流对象 对于返回一个流指针则不能连续使用<<操作符



本文转自

http://blog.csdn.net/sendy888/archive/2007/07/31/1719435.aspx
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值