金山笔试题(武汉)

    4个题

  第一题交换两个变量的值(不能使用临时变量);

  第二题,逆序一个单链表;

  第三题,c++的构造和析构。

  第四题,三选一:1,字符集的问题;2,com组件的问题;3,跨平台编程的问题。



解答:

第一题

一下还是没想到,跟一个同学讨论了一下,后面都没想到。就网上搜了一下。有两种方法i,不过有一种不是很保险的,可能会溢出的。

<1>正常情况下实现两个整数交换而不引入第三变量只需要将两个整数的和保留下来,即
int A, B ;
A = A + B ;
B = A - B ;
A = A - B ;
就OK了,但是这样的话如果定义函数时传入的参数是指针而恰好指向的是同一个地址,之后……,我想你也能猜到这个数就变成0了。
<2>还有一种方法利用数的抑或运算,即:
A = A ^ B ;
B = B ^ A ;
A = A ^ B ;



详细的可看下这篇博客http://hi.baidu.com/techdigger/blog/item/6ba82cecc19df5232cf534e8.html



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值