
面试
文章平均质量分 51
纳兰小僧属马
希望牛人多指导
展开
-
为什么析构函数常常声明为虚函数
我们删除一个指向派生类对象的基类指针,而基类析构函数又是虚函数的话, 那么就会先调用派生类的析构函数,再调用基类的析构函数。我们删除一个指向派生类对象的基类指针,而基类析构函数是非虚的话, 那么就会先调用基类的析构函数,派生类的析构函数得不到调用。当你动态申请一个对象时,并且把这个对象的指针赋值给当前类,析构函数非虚的话,都不会影响子类到父类的析构。原创 2015-03-22 17:14:49 · 530 阅读 · 0 评论 -
排序算法之快速排序算法
快速排序算法快速排序算法和冒泡排序算法都属于交换排序算法,其中快速排序算法可以看做是冒泡排序算法的升级版。快速排序算法的思想:在一列需要排序的数中,首先随机选一个基准数,一般选开始元素。这里我们定义两个变量i和j,我们给i,j取个好听名字,称为赶路人。i,j赶路人分别从最左边和最右边相向赶路。j从最右边的位置开始,若找到一个数比基准数小,就停止。然后i从最左边的位置开始,若原创 2015-07-08 21:12:43 · 563 阅读 · 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 · 407 阅读 · 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 · 657 阅读 · 0 评论 -
快速找到未知长度单链表的中间结点
快速找到未知长度单链表的中间结点采取的方法为快满指针的方法,具体思想就是,定义两个指针A,B分别指向头结点,让它们从头结点开始跑,A指针依次指向下面的结点,而B指针是隔着一个结点指向下一个结点,那么当B指针指向末尾结点的时候,A指针刚好指向中间结点了。code如下:typedef float ElemType;typedef struct Node{ El原创 2015-08-19 22:07:46 · 1593 阅读 · 0 评论 -
2015腾讯笔试题-基于递归的格雷码生成
基于递归的格雷码生成生成1位的格雷码为:01生成2位的格雷码为:00011110生成三位的格雷码为:000001010011111110101100从中我们可以看出规律,生成n位的格雷码是在n-1位格雷码的基础上添加0和1。n-1位的格雷码前一半是按照0101依次添加,后一半是按照1010依次添加,因为我们观察可知,格雷码原创 2015-09-08 16:20:53 · 949 阅读 · 0 评论 -
面试之简答题
带参数的宏与内联函数之间的区别答:宏定义是C语言提供的三种预编译处理功能的一种。三种分别是文件包含、宏定义、条件编译。格式: #define 标识符 字符串 其中的标识符就是所谓的符号常量,也成为宏名。宏是在预编译期间简单替换(是在预处理完成的),将宏名替换为字符串,也叫作宏展开。说白了,宏就是简单的字符串替换。重要的一点是,对于带参数的宏,不作任何类型和语法的检查。内联函数:原创 2015-09-07 21:46:59 · 426 阅读 · 0 评论