c/c++面试经验
一、自我介绍
xxxxx
二、什么是命名空间?
命名空间是类的逻辑分组,它组织成一个层次结构——逻辑树。使用命名空间的目的是对标识符的名称进行本地化,以避免命名冲突。
三、C++和JAVA有什么区别?
Java中对内存的分配是动态的
Java不在所有类之外定义全局变量
Java不支持头文件
Java对每种数据类型都分配固定长度
类型转换不同
Java没有结构和联合的处理,所有内容都在类中
Java不再使用指针
四、指针和引用有什么区别?
指针是一个实体,而引用仅是个别名
引用使用时无需解引用(*),指针需要解引用
引用只能在定义时被初始化一次,之后不可变;指针可变
引用没有const,指针有 const,const的指针不可变
引用不能为空,指针可以为空
五、静态变量和静态函数的作用?
一旦声明为静态变量,在编译时刻开始永远存在,不受作用域范围约束,但是如果是局部静态变量,则此静态变量只能在局部作用域内使用,
超出范围不能使用,但是它确实还占用内存,还存在
静态函数可以在没有类的实例(就是未用类定义任何对象)的情况下被调用,而非静态函数不行
六、类和结构体的区别?
c++类中属性默认访问类型为private,而c++中的struct默认的访问类型为public
c++类可以有继承,虚函数,多态,而c++中struct不可以。
c语言struct里面不可以有函数,只能有变量
c++给c中的struct功能扩展了
struct定义函数通过函数指针方法
七、写代码:字符串逆序函数。
char* Reverse(char* s)
{
char* p =s;
char* q =s;
while( *q )
++q;
q--;
while(q>p)
{
char t=*p;
*p++=*q;
*q--=t;
}
return s;
}
八、其他就是问些非技术性问题了。
TCL面试之前还有笔试,笔试题不是很记得了,大概都是基础的东西,填空选择,简答题,
例如:结构和联合的区别,指针和引用的区别,使用引用注意的地方等。有一道名词解释的
例如:RAM,LCD,ARM,AVR,OSD,Keil,mpeg这类。另外就是编程题,实现strcpy功能,程序纠错等。