摘要:
C/C++程序员应聘试题剖析 1.引言 本文的写作目的并不在于提供C/C++程序员求职面试指导,而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛,部分试题解答也参考了网友的意见。 许多面试题看似简单,却需要深厚的基本功才能给出完美的解答。企业要求面试者写一个最简单的strcpy函数都可 阅读全文
摘要:
1. 浅拷贝 所谓浅拷贝,指的是在对象复制时,只对对象的数据成员进行复制,但是遇到有动态成员如指针时就会出问题。 [c-sharp] view plain copy class Rect { public: Rect() // 构造函数,p指向堆中分配的一空间 { p = new int(100); 阅读全文
摘要:
一. 什么是拷贝构造函数 首先对于普通类型的对象来说,它们之间的复制是很简单的,例如: 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子 运行程序,屏幕输出100。从以上代码的运行结果可以看出,系统为对象 B 分配了内存并完成了与对象 A 的复制过 阅读全文
摘要:
Debug和Release,主要是针对其面向的目标不同的而进行区分的。Debug通常称为调试版本,通过一系列编译选项的配合,编译的结果通常包含调试信息,而且不做任何优化,以为开发人员提供强大的应用程序调试能力。而Release通常称为发布版本,是为用户使用的,一般客户... 阅读全文
摘要:
#include #include void shuzhu1(int a[],int n)//找出数组中第一次出现只1次的数 { int i,c=0; for(i=0;ic) { c=count; count=0; //break; max=a[i]; } else { count=0; } } printf("%d",max); } i... 阅读全文
摘要:
时间复杂度是一个算法执行所耗费的时间,从理论上是不能算出来的,必须上机运行测试才能知道。但我们不可能也没有必要对每个算法都上机测试,只需知道哪个算法花费的时间多,哪个算法花费的时间少就可以了。并且一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数... 阅读全文
摘要:
快速排序核心思想:从数列中取出一个数作为基准数。将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 再进行递归,最后只有三个数,即基准数左右都只剩下一个数。 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分 阅读全文
摘要:
#include #include int main() { int a[10][10]; for(int i=0;i<10;i++) { a[i][0]=a[i][i]=1; } for(int i=2;i<10;i++) { for(int j=1;j<i;j++) { a[i][j]=a[i-1][j-1]+a[i-1][j]; } } ... 阅读全文
摘要:
插入排序原理:对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。 插入排序核心:假设第一个元素排好,之后的元素对排好的部分从后向前比较并逐一移动。 冒泡排序:在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒。 阅读全文
摘要:
补充: 上述代码中,用到了一句话计算中间值: 其实这里面有个漏洞,就是容易产生溢出,如果low和high是很大的值并且很接近的话,他们俩个相加,则会发生超出数据类型的溢出。 修改为以下代码可以避免: 从计算公式上来看,两个结果是一样的,但是看第二个公式,因为hign肯定不会溢出,所以high-low 阅读全文