面试
文章平均质量分 51
纳兰小僧属马
希望牛人多指导
展开
-
为什么析构函数常常声明为虚函数
我们删除一个指向派生类对象的基类指针,而基类析构函数又是虚函数的话, 那么就会先调用派生类的析构函数,再调用基类的析构函数。 我们删除一个指向派生类对象的基类指针,而基类析构函数是非虚的话, 那么就会先调用基类的析构函数,派生类的析构函数得不到调用。 当你动态申请一个对象时,并且把这个对象的指针赋值给当前类,析构函数非虚的话,都不会影响子类到父类的析构。原创 2015-03-22 17:14:49 · 499 阅读 · 0 评论 -
排序算法之快速排序算法
快速排序算法 快速排序算法和冒泡排序算法都属于交换排序算法,其中快速排序算法可以看做是冒泡排序算法的升级版。 快速排序算法的思想:在一列需要排序的数中,首先随机选一个基准数,一般选开始元素。这里我们定义两个变量i和j,我们给i,j取个好听名字,称为赶路人。i,j赶路人分别从最左边和最右边相向赶路。j从最右边的位置开始,若找到一个数比基准数小,就停止。然后i从最左边的位置开始,若原创 2015-07-08 21:12:43 · 547 阅读 · 0 评论 -
常见面试题
求两个正整数N和M的最大公约数 int calcGcd(int N,int M) { int mid; (M >= N)?(mid = N):( mid = M) ; for (int i = mid; i >= 1;i--) { if(N%i==0 && M%i==0 )return i; } }原创 2015-07-06 22:22:54 · 388 阅读 · 0 评论 -
面试题初级-求字符串最后一个单词的长度和判断ip地址的合法性
求字符串最后一个单词的长度 int clacuate(const char* str)//求字符串最后一个单词的长度 { int num = 0; while(*str!='\0') { str++; } while(*str!=' ') { str--; num++; } num = num -1; return num; } 判断ip地址是否合法原创 2015-09-09 11:21:26 · 620 阅读 · 0 评论 -
快速找到未知长度单链表的中间结点
快速找到未知长度单链表的中间结点 采取的方法为快满指针的方法,具体思想就是,定义两个指针A,B分别指向头结点,让它们从头结点开始跑,A指针依次指向下面的结点,而B指针是隔着一个结点指向下一个结点,那么当B指针指向末尾结点的时候,A指针刚好指向中间结点了。 code如下: typedef float ElemType; typedef struct Node { El原创 2015-08-19 22:07:46 · 1560 阅读 · 0 评论 -
2015腾讯笔试题-基于递归的格雷码生成
基于递归的格雷码生成 生成1位的格雷码为: 0 1 生成2位的格雷码为: 00 01 11 10 生成三位的格雷码为: 000 001 010 011 111 110 101 100 从中我们可以看出规律,生成n位的格雷码是在n-1位格雷码的基础上添加0和1。n-1位的格雷码前一半是按照0101依次添加,后一半是按照1010依次添加,因为我们观察可知,格雷码原创 2015-09-08 16:20:53 · 917 阅读 · 0 评论 -
面试之简答题
带参数的宏与内联函数之间的区别 答:宏定义是C语言提供的三种预编译处理功能的一种。三种分别是文件包含、宏定义、条件编译。 格式: #define 标识符 字符串 其中的标识符就是所谓的符号常量,也成为宏名。宏是在预编译期间简单替换(是在预处理完成的),将宏名替换为字符串,也叫作宏展开。说白了,宏就是简单的字符串替换。 重要的一点是,对于带参数的宏,不作任何类型和语法的检查。 内联函数:原创 2015-09-07 21:46:59 · 401 阅读 · 0 评论