鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[技术交流] 一道有意思的C语言试题

  [复制链接]
头像被屏蔽
发表于 2013-12-21 13:41:51 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-21 16:39:31 | 显示全部楼层
激动人心,无法言表!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-22 09:51:17 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-25 20:51:25 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-26 19:10:30 | 显示全部楼层
淡定,淡定,淡定……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-26 20:55:37 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-27 12:29:09 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2013-12-31 17:38:08 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-8 16:34:21 | 显示全部楼层
感恩无私的分享与奉献 :)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-9 09:43:06 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-9 12:18:09 | 显示全部楼层
有点儿意思,嘻嘻
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-9 17:19:56 | 显示全部楼层
楼主加油,鱼C加油!我们都看好你哦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-12 09:46:00 | 显示全部楼层
看看这个神贴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-12 16:49:26 | 显示全部楼层
强烈支持楼主ing……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-1-16 10:03:40 | 显示全部楼层
解:
    1.异或操作时将相同的位置零,相异的位置1,举例:A=00001010B,B=00000101B,A = A ^ B,此时,A=00001111B,B=00000101B,第二句B = A ^ B,A = 00001111B,而此时B=00001010B,第三句,A = A ^ B,A被赋值新值,00000101B,B的值没变,实现了不用中间变量进行对调,可以用数学归纳法证明,对于所有的二进制数,上述操作均可实现该功能。另外,小提示:要对数进行操作,要用地址传递,如果直接对数进行运算,不改变原先的数据不要传递指针数据。
    2.牵扯到异或操作。原理如1开头的那句话,对于奇数个数据,中间一个必然是将自己跟自己进行异或,并赋值给自己,比如:C = 00100101B,相异的取1,相同取0,C^C,每一位一定相同,那么结果必然是0,而传递时传递给异或双方中的一个变量,现在两个变量都是它自己,自然置自己为0,而继续异或操作,还是对自己00000000B,进行操作,所以结果必然是0。
    3.我比较笨,只能想到最基本方法解决,修改reverse_array如下:
void reverse_array(int a[], int count)
{
        int first, last;
        
        for( first=0, last=count-1; first <= last; first++, last-- )
        {
               if(first != last)
               {
                        inplace_swap(&a[first], &a[last]);
                }
        }
}
请小甲鱼老师和各位鱼友指正。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-2 11:39:57 | 显示全部楼层
1.二进制的相关运算
2.for循环中的等号
3.去除for循环中的等号
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-4 11:53:11 | 显示全部楼层
学习中,貌似挺深奥啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-6 02:09:04 | 显示全部楼层
激动人心,无法言表!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-9 16:11:36 | 显示全部楼层
......                 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-2-12 16:32:42 | 显示全部楼层
激动人心,无法言表!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-29 00:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表