笔者注:以下的题目均是笔者从各种书籍,网站搜罗而来,未能一一标明出处,请见谅。如有版权问题,请联系笔者,笔者会在最短时间内处理。
1.有两个变量a,b,不使用if,switch,?:或其他判断语句,找出两个数中的较大者。【美国某公司面试题】
int max = ((a+b) + abs(a-b))/2;
2.不用循环,用一个表达式判断整数X是否是2的幂数。!(X&(X-1))
/*若(X&(X-1)) == 0,则X是2的幂数,否则,不是。*/
3.不借助中间变量,实现a,b两个数的值的互换。
(1)/*a+b超界可能性*/
a = a+b;
b = a-b;
a = a-b;
(2)/*异或操作*/
a = a^b;
b = a^b;
a = a^b;