6.11

1.~10表示的结果是-11
先看10是:0000 1010
再看~10:取反为1111 0101
最高位为1或者说最高的几位都是1 这说明此数为负数
在计算机中所有的数都是以补码的形式给出  那1111 0101
的原码为 最高位不变  其他位取反然后加1
10001010 +1 =10001011, 最高位1
代表负数  也就是-00001011  就是-11

2.
如果要想当一个好的程序员,为广大的xx负责,不制造垃圾代码的话。
努力的学数据结构和算法。一个真正的程序员不是一个苦力式coder,
他应该拥有自己的灵魂和思想。这两者没有良好的算法基础是无法体现出来的。
推荐书目:
计算理论导论。
数据结构与算法分析——C语言描述  Mark Allen Weiss
        http://www.china-pub.com/computers/common/info.asp?id=15267
      (帮你找的,不要买错了。呵呵,我常常记错名字。)
看完这两本,基本你也有能力自己找书了,能够鉴别好坏了。
挑战终极难度的话,可以看看 计算机程序艺术。
前导书目:  离散数学 需要知道一点。

如果基于使用的角度,就找一个关于具体操作系统的书看看,这样才能在具体的平台,
个人推荐linux, c本来就脱胎于unix,大多数的函数库都能看到unix的影子。
当然,你也要结合你钱途考虑,一般而言windows程序员属于r战略者,大量的消耗社会资源快速繁殖,易受环境影响,个体容易死亡,以量取胜。
unix程序员属于k战略者刚好想反。
推荐书目: window系统原理    linux内核分析。建议前导书目:操作系统原理。

赶时髦的话,没有什么好推荐的,c派程序员只有经典和精妙。也许你可以看看oo思想。
再看看它在c上的实现--cpp, 然后可以看看这些思想在实践中不断重复而形成的模式
--设计模式。  要实现这些模式,需要工具和方法论的支撑
推荐书目 面向对象分析和设计,  {cpp语言特别版 ,cpp primer..... 找一本看看就行了,贵精不贵多},  深入探索cpp对象模型, cpp设计与演化。
uml参考手.册,阎宏的java与模式 ,  gof的设计模式 , {rose从入门到精通 ,together 使用指南之类的工具书}  {rup统一过程引论之类的}


3.
有1,2,....一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),使用交换,而且一次只能交换两个数.
#include "stdio.h"

main()
{
int *a,n,i,j,temp;
printf("input the numbers/n ");
scanf("%d",&n);

a=(int *)malloc(n*sizeof(int));        /* 用malloc动态分配数组*/
for(i=0;i<n;i++)
    a[i]=i;


for(i=0;i<n;i++)
{   temp=a[i];
    j=rand()%n;                        /*rand()打乱顺序*/
    a[i]=a[j];
    a[j]=temp;
}

for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("/n");

for(i=0;i<n;i++)
{
                                     /*就是这里遇到麻烦鸟*/
temp=a[a[i]-1];                      /*感觉思路就是这样的,可是不行哇*/
a[a[i]-1]=a[i];                      /*有时是排0的时候出问题*/
a[i]= temp;                          /*有时结果根本就是乱排的*/
}

for(i=0;i<n;i++)
printf("%d ",a[i]);
printf("/n");


getch();
}


 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值