面试题总结1
2015-06-22 19:19
344 查看
1、C\C++中的内存分配问题。
C\C++程序中涉及到的内存大致分为3种情况:
堆栈区(stack),由编译器自动分配,存放函数的参数列表,局部变量等,其操作方法类似于数据结构的栈。
堆区(heap),一般由程序员动态申请的内存, 由程序员释放空间,或者在程序结束的时候由操作系统回收资源,其操作方法类似于数据结构的链表。
全局区(静态存储区),一般存放全局变量和静态变量,程序结束后由系统自己释放。
文字常量去,存放常量字符串等,由系统释放。
程序代码区,存放程序的二进制代码。
2、C\C++中动态申请内存的函数。
c语言中与内存申请相关的函数有:alloca,calloc, malloc, realloc, free.
其中alloca是向栈中申请内存,无需释放,malloc是向堆中申请内存,并没有对申请的内存块进行初始化,所以一般用memset函数进行初始化,memset()函数原型:
void *memset(void *s, int ch, size_t n);
realloc是对malloc申请的内存大小进行调整,用free进行释放内存。calloc申请的内存初始化为0。
C++中用new、delete操作符。用new申请的内存必须用delete,两者配合使用。
3、delete和delete []的区别
delete 释放一次,调用一次析构函数,而delete []针对对象数组形式,有多少个对象就调用多少次析构函数。
4、二叉平衡树和满二叉树的区别。
平衡二叉树(Balanced
Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对
值不超过1,并且左右两个子树都是一棵平衡二叉树。
除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树。
5、无向图与有向图的区别。
无向图的边看成是两个方向,有向图的边只有一种方向,如果用邻接矩阵来表示,无向图是对称矩阵,有向图不一定是。
C\C++程序中涉及到的内存大致分为3种情况:
堆栈区(stack),由编译器自动分配,存放函数的参数列表,局部变量等,其操作方法类似于数据结构的栈。
堆区(heap),一般由程序员动态申请的内存, 由程序员释放空间,或者在程序结束的时候由操作系统回收资源,其操作方法类似于数据结构的链表。
全局区(静态存储区),一般存放全局变量和静态变量,程序结束后由系统自己释放。
文字常量去,存放常量字符串等,由系统释放。
程序代码区,存放程序的二进制代码。
2、C\C++中动态申请内存的函数。
c语言中与内存申请相关的函数有:alloca,calloc, malloc, realloc, free.
其中alloca是向栈中申请内存,无需释放,malloc是向堆中申请内存,并没有对申请的内存块进行初始化,所以一般用memset函数进行初始化,memset()函数原型:
void *memset(void *s, int ch, size_t n);
realloc是对malloc申请的内存大小进行调整,用free进行释放内存。calloc申请的内存初始化为0。
C++中用new、delete操作符。用new申请的内存必须用delete,两者配合使用。
3、delete和delete []的区别
delete 释放一次,调用一次析构函数,而delete []针对对象数组形式,有多少个对象就调用多少次析构函数。
4、二叉平衡树和满二叉树的区别。
平衡二叉树(Balanced
Binary Tree)又被称为AVL树(有别于AVL算法),且具有以下性质:它是一 棵空树或它的左右两个子树的高度差的绝对
值不超过1,并且左右两个子树都是一棵平衡二叉树。
除最后一层无任何子节点外,每一层上的所有结点都有两个子结点的二叉树。
5、无向图与有向图的区别。
无向图的边看成是两个方向,有向图的边只有一种方向,如果用邻接矩阵来表示,无向图是对称矩阵,有向图不一定是。
相关文章推荐
- 黑马程序员---MAC OS X系统终端常用命令
- 剑指offer-第四章解决面试题的思路(顺序打印矩阵)
- 优秀的程序员”应该是这样的
- 黑马程序员--Java学习日记之面向对象(多态和匿名内部类)
- 关于如何成为一名优秀的程序员
- 黑马程序员--Java学习日记之面向对象(封装,this和static,继承)
- 重构是每个程序员的洗髓经
- 黑马程序员----Java语法基础(2){语句,函数,数组}
- 黑马程序员----Java语法基础(1){标示符,变量,常量,运算符}
- 剑指offer 面试题5
- 【剑指offer 面试题17】合并两个排序的链表
- 伟大程序员的十大特质
- 黑马程序员----传说中的Java
- 黑马程序员JAVA笔记4--继承
- 黑马程序员----开始写Blog
- 剑指offer 面试题4
- [转]乐死我了,怎么样成为一个全栈程序员(Full Stack Developer),附我想专注的语言
- 毕业面试笔记1
- 操作系统常见面试题汇总
- 黑马程序员---反射