2013年10月22日

摘要: 写一个函数,完成内存之间的拷贝。[考虑问题是否全面,是否考虑内存重叠问题]返回void *支持链式操作,参数类型是void *以支持任意类型的指针,输入参数加上const修饰,最好加上assert对输入输出指针进行非NULL判断void* memcpy( void *dest, const void *src, size_t count ){char* pdest = static_cast( dest );const char* psrc = static_cast( src );// 依次从前拷贝,目的地址覆盖了源地址的数,此时从后往前拷贝if( (pdest>psrc) & 阅读全文
posted @ 2013-10-22 13:20 daniel+ 阅读(231) 评论(0) 推荐(0) 编辑

2013年10月20日

摘要: C/C++面试经验总结如下,望兄弟姐妹们能得到点什么经验。1、要把c语言的基础打实2、理解c++语言中一些概念以及它们之间的区别(需要深刻理解):(1)局部变量 全局变量 静态变量 const常量 寄存器变量 宏定义的常量 static变量注:包括它们的内存分配区域,作用域,初始化等等(2)理解malloc与new之间的区别,以及free与之间区别(3)内联函数与宏定义的区别,它们各有什么优点(4)内存分配有哪几种形式?分别为何?区别是什么?对编译速度影响是何?(4)理解什么是重载、覆盖、隐藏,区别是何?可否举例?(5)什么是多态?举个例子试试(6)struct 和class有什么区别?c语言 阅读全文
posted @ 2013-10-20 17:33 daniel+ 阅读(1113) 评论(0) 推荐(1) 编辑

2013年10月19日

摘要: 纯虚函数是一种特殊的虚函数,它的一般格式如下:class {virtual ()=0;…};在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。 阅读全文
posted @ 2013-10-19 20:51 daniel+ 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 1.#include using namespace std;struct A { int a; //4 long b; //4 char c; //1 // align to 12};void main(){ cout using namespace std;#define SQUARE(a) (a * a)void main(){ int a=3; int b=4; cout using namespace std;struct Node{int data;Node* next;};void main(){ ... 阅读全文
posted @ 2013-10-19 16:53 daniel+ 阅读(394) 评论(0) 推荐(0) 编辑

2013年10月18日

摘要: 开始之前务必记住: 黄金法则:80/20---你要承担起80%的谈话而面试官只会说20%。 白金法则:你必须试着控制面试的节奏和话题。 钻石法则:对于没有把握的问题,抛回给面试官。 1.在一分钟内介绍一下你自己 这似乎是必答题。不要以为这很容易。如果你用一分钟来重复你的简历,恭喜你,你的印象加分没有了!建议你最多用二十秒钟介绍自己的姓名、学校、专业。然后话锋一转,引出自己的优势或强项。一定要在最短时间内激发起面试官对你的好感,或者至少是兴趣。 成功的模式可以是:我叫XXX,英文名字XXX,XX省XX市人,今年6月将从XX学校XX专业本科(专科)毕业。除了简历上您看到的介绍,我愿意特... 阅读全文
posted @ 2013-10-18 15:34 daniel+ 阅读(177) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;class calculator{ public: char token; int exp( void ); int term( void ); int factor( void ); void match( char expectedToken ); void error( void );};int calculator::exp(void){ int temp = term(); /*计算比加减运算优先级别高的部分*/ while ... 阅读全文
posted @ 2013-10-18 15:29 daniel+ 阅读(208) 评论(0) 推荐(0) 编辑
摘要: #include #include #include /*****************************************///这个算法开辟了额外的空间。//分析这个问题可以知道,字符串长度len是奇数(0不考虑)//数字的个数是len/2+1,符号的个数为len/2,然后将符号和数字存储起来//第一步处理所有的乘除法,此时有一个特点就是如果几个数//连续进行乘除法的时候就需要向前存储结果(为了方便后面的加减法运算)//算法复杂度O(n)/*****************************************/int calculate(int len,char * 阅读全文
posted @ 2013-10-18 15:21 daniel+ 阅读(217) 评论(0) 推荐(0) 编辑

2013年10月16日

摘要: 1、进程与线程的区别:1.1、通俗的解释一个系统运行着很多进程,可以比喻为一条马路上有很多马车,不同的进程可以理解为不同的马车,而同一辆马车可以有很多匹马来拉----这些马就是线程。假设道路的宽度恰好可以通过一辆马车,道路可以认为是临界资源,那么马车成为分配资源的最小单位(进程),而同一个马车被很多匹马驱动(线程)----即最小的运行单位。每辆马车马匹数>=1,所以马匹数=1的时候进程和线程没有严格界限,只存在一个概念上的区分度;马匹数>1的时候才可以严格区分进程和线程。1.2、专业的解释简而言之,一个程序至少有一个进程,一个进程至少有一个线程。线程的划分尺度小于进程,使得多线程程 阅读全文
posted @ 2013-10-16 22:10 daniel+ 阅读(275) 评论(0) 推荐(0) 编辑

2013年10月15日

摘要: 以二叉链表为存储结构,分别写出求二叉树高度及宽度的算法。所谓宽度是指在二叉树的各层上,具有结点数最多的那一层上的结点总数。标准答案:①求树的高度Int Depth(BinTree *T){int dep1,dep2;if(T==Null) return(0);else{dep1=Depth(T->lchild);dep2=Depth(T->rchild);if(dep1>dep2) return(dep1+1);else return(dep2+1);}②求树的宽度思想:按层遍历二叉树,采用一个队列q,让根结点入队列,最后出队列,若有左右子树,则左右子树根结点入队列,如此反复 阅读全文
posted @ 2013-10-15 13:30 daniel+ 阅读(784) 评论(0) 推荐(0) 编辑

2013年10月14日

摘要: Gray Code,是几十年前贝尔实验室的科学家Frank Gray提出的一种编码方案,当时主要用于传输信号以防止出错。Gray Code 除了在通信,硬件设计领域中应用以外,在计算机相关科学的其他方面也有广泛的应用,例如按序产生集合的所有子集。Gray Code实现按序产生集合的所有子集子集的按序产生,这个概念很简单,举个例子,假设我们的集合为{a,b,c},那么按序产生的子集应该是:空集 (000) —— 0(编号 从0开始按顺序排序)a (100) —— 1ab (110) —— 2abc (111) —— 3acbbcc那么Gray Code是如何产生这样的序列的... 阅读全文
posted @ 2013-10-14 23:21 daniel+ 阅读(554) 评论(0) 推荐(0) 编辑

导航