以下是几个在C语言面试中经常被问到的问题:

什么是预编译?有哪些预编译指令?
如何进行C语言的内存管理?
什么是动态内存分配?如何使用malloc()和free()函数?
字符串是字符数组的一种形式,它们以“\0”结尾。C语言提供了一系列的函数来对字符数组和字符串进行处理,比如strcpy()、strcmp()、strlen()等。请解释这些函数的用途。
递归函数是指在函数内部调用自身的函数。请编写一个递归函数,计算一个整数的阶乘。
首先,问问面向过程与面向对象的区别
一般面试C++的面试者都能回答大概,面试的技巧由浅入深,根据面试者的回答再引导着考察面向对象的下面的内容。
然后,可以考察C相关知识
C语言基础还是很重要的,考考概念类的const、static、指针、栈、链表、排序算法等很体现基本功的问题。
继续,考察C++相关知识
构造与析构函数,虚函数,函数重载,类的继承多态,内存模型等。
最后,项目相关的问题
若面试者做过大型项目或者招聘需求相关的项目,可以做适当加分。然后根据项目侧重点,问问项目会用到的知识,比如进程间通讯,通讯协议,通讯报文与文件处理之类的。
编程能力很重要,编程习惯更不容忽视
一场面试,时间有限,肯定不能把所有知识点都考到,要详细的考察面试者的各项能力可以增加一场笔试。笔试的编程题必不可少,除了考察编程能力之外,还可以看出一个人的代码习惯与代码风格。代码习惯不好的面试者,需要慎重考虑。
另外,招聘还是要看多方面的看这个人是否合适。技术能力与项目经验是一方面,性格、价值观与企业文化的融合度,个人问题等也是决定因素。