您的位置:首页 > 其它

金山笔试题(武汉)

2011-06-12 17:51 253 查看
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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: