摘要: 背景:假定你有一雄一雌一对刚出生的兔子,它们在长到一个月大小时开始交配,在第二月结束时,雌兔子产下另一对兔子,过了一个月后它们也开始繁殖,如此这般持续下去。每只雌兔在开始繁殖时每月都产下一对兔子,假定没有兔子死亡,在一年后总共会有多少对兔子?在一月底,最初的一对兔子交配,但是还只有1对兔子;在二月底,雌兔产下一对兔子,共有2对兔子;在三月底,最老的雌兔产下第二对兔子,共有3对兔子;在四月底,最老的雌兔产下第三对兔子,两个月前生的雌兔产下一对兔子,共有5对兔子;……如此这般计算下去,兔子对数分别是:1, 1, 2, 3, 5, 8, 13, 21, 34, 55,89, 144, ...看出规. 阅读全文
posted @ 2013-04-12 10:53 ~风~ 阅读(443) 评论(0) 推荐(0) 编辑
摘要: 定义:1.卡特兰数是一种数列,以比利时的数学家欧仁·查理·卡塔兰命名。2.卡特兰数列:1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012……令第n项为h(n),则: c(0) = 1; c(1) = 1; c(n) = c(0)*c(n-1) + c(1)*c(n-2) + …… + c(n-1)*c(0),其中n>=2性质:卡塔兰数的一般项公式为 Cn的另一个表达形式为 它也满足证明:Cn表示长度2n的dyck word的个数。Dyck word是一个有n个X和n个Y组成的字串,且所有的部分字 阅读全文
posted @ 2013-04-12 10:19 ~风~ 阅读(369) 评论(0) 推荐(0) 编辑
摘要: SQL分类:DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) 重点掌握DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) 重点掌握DCL—数据控制语言(GRANT,DENY,REVOKE) 了解(一阅而过)注:GRANT命令授予用户或角色的权限集合。DENY命令显式地限制一个权限集合。REVOKE命令用于撤消一个对象上的权限集合。1、说明:创建数据库CREATE DATABASE dbname2、说明:删除数据库Drop Database dbname3、说明:创建新表create table tabname(col1 type1 [not 阅读全文
posted @ 2013-04-11 23:10 ~风~ 阅读(357) 评论(0) 推荐(0) 编辑
摘要: 1、计算表达式x6+4x4+2x3+x+1最少需要做()次乘法A、3 B、4 C、5 D、6 2、给定3个int类型的正整数x,y,z,对如下4组表达式判断正确的选项()int a1=x+y-z; int b1=x*y/z;int a2=x-z+y; int b2=x/z*y;int c1=x<<y>>z; int d1=x&y|z;int c2=x>>z<<y; int d2=x|z&y;A、a1一定等于a2B、b1一定定于b2C、c1一定等于c2D、d1一定等于d2 3、程序的完整编译过程分为是:预处理,编译,汇编等,如下关于 阅读全文
posted @ 2013-04-11 22:53 ~风~ 阅读(339) 评论(0) 推荐(0) 编辑
摘要: 库函数是语言本身的一部分,而系统函数是内核提供给应用程序的接口,属于系统的一部分。函数库调用是语言或应用程序的一部分,而系统调用是操作系统的一部分。函数库调用系统调用在所有的ANSI C编译器版本中,C库函数是相同的各个操作系统的系统调用是不同的它调用函数库中的一段程序(或函数)它调用系统内核的服务与用户程序相联系是操作系统的一个入口点在用户地址空间执行在内核地址空间执行它的运行时间属于“用户时间”它的运行时间属于“系统”时间属于过程调用,调用开销较小需要在用户空间和内核上下文环境间切换,开销较大在C函数库libc中有大约300个函数在UNIX中大约有90个系统调用典型的C函数库调用:sys. 阅读全文
posted @ 2013-04-11 21:23 ~风~ 阅读(360) 评论(0) 推荐(0) 编辑
摘要: UNIX环境下的C 对二进制流文件的读写有两套班子:1) fopen,fread,fwrite ; 2) open, read, write这里简单的介绍一下他们的区别。open和fopen区别1.系列是标准的C库函数;open系列是 POSIX 定义的,是UNIX系统里的system call。也就是说,fopen系列更具有可移植性;而open系列只能用在 POSIX 的操作系统上。2.使用fopen 系列函数时要定义一个指代文件的对象,被称为“文件句柄”(file handler),是一个结构体;而open系列使用的是一个被称为“文件描述符” (file descriptor)的int型. 阅读全文
posted @ 2013-04-11 20:49 ~风~ 阅读(280) 评论(0) 推荐(0) 编辑
摘要: memcpy和memmove()都是C语言中的库函数,在头文件string.h中,作用是拷贝一定长度的内存的内容,原型分别如下:void *memcpy(void *dst, const void *src, size_t count);void *memmove(void *dst, const void *src, size_t count); 他们的作用是一样的,唯一的区别是,当内存发生局部重叠的时候,memmove保证拷贝的结果是正确的,memcpy不保证拷贝的结果的正确。第一种情况下,拷贝重叠的区域不会出现问题,内容均可以正确的被拷贝。第二种情况下,问题出现在右边的两个字节,这两个字 阅读全文
posted @ 2013-04-11 19:43 ~风~ 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 题目:给出一个单链表,不知道节点N的值,怎样只遍历一次就可以求出中间节点,写出算法。解析:设立两个指针,比如*p和*q。p每次移动两个位置,即p=p->next->next,q每次移动一个位置,即q=q->next。当p到达最后一个节点时候,q就是中间节点了。类似的可以用一次遍历方法得到三分之一、四分之一、前几个节点。代码贴出:#include <iostream> using namespace std; typedef struct Student{ int data; struct Student *next; }Node; /* * 遍历一遍就得到单链表的 阅读全文
posted @ 2013-04-11 19:32 ~风~ 阅读(975) 评论(0) 推荐(0) 编辑
摘要: Linux下对文件操作有两种方式:系统调用(system call)和库函数调用(Library functions)。可以参考《Linux程序设计》(英文原版为《Beginning Linux Programming》,作者是Neil Matthew和Richard Stones)第三章: Working with files。系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思。面向的是硬件。而库函数调用则面向的是应用开发的,相当于应用程序的api,采用这样的方式有很多种原因,第一:双缓冲技术的实现。第二,可移植性。第三,底层调用本身的一些性能方面的缺陷。第四. 阅读全文
posted @ 2013-04-11 17:46 ~风~ 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 文件是linux中的一个重要概念。在Linux中,一切(几乎一切)都是文件。简单的说,C中基本的的printf()函数,scanf()函数,其实都属于文件操作。对于文件操作,虽然都是通过函数调用的方式实现,却还是能分为两类:系统调用和库函数。这篇文章将先介绍linux中文件的概念,系统调用和库函数的概念 ,然后具体的讨论两种方式下的文件操作。博文的主要内容如下:Linux 中的文件文件访问-库函数文件访问-系统调用库函数标准 I/O 库/proc文件系统1 Linux中的文件1.1概念按照普通的定义,文件不过是一堆数据,在往下说,就是存储器中的0101。。。而我们这里讨论的文件有了更广的定义. 阅读全文
posted @ 2013-04-11 17:40 ~风~ 阅读(152) 评论(0) 推荐(0) 编辑