当前位置:才华君>好好学习>考研>

C,C++的几个面试题小集

考研 阅读(2.51W)

1、头文件中的 ifndef/define/endif 干什么用?(5 分)

C,C++的几个面试题小集

答:防止该头文件被重复引用。

2、#include 和 #include “filename.h” 有什么区别?(5 分)

答:对于#include ,编译器从标准库路径开始搜索 filename.h

对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h

3、const 有什么用途?(请至少说明两种)(5 分)

答:(1)可以定义 const 常量,(2)const 可以修饰函数的参数、返回值,甚至函数的定义体。被const 修饰的东西都受到强制保护,可以预防意外的变动,能提高程序的健壮性。

4、在C++ 程序中调用被 C 编译器编译后的函数,为什么要加 extern “C”? (5 分)

答:C++语言支持函数重载,C 语言不支持函数重载。函数被C++编译后在库中的'名字

与C 语言的不同。假设某个函数的原型为: void foo(int x, int y);该函数被C 编译器编译后在库中的名字为_foo , 而C++编译器则会产生像_foo_int_int 之类的名字。C++提供了C 连接交换指定符号extern“C”来解决名字匹配问题。

5、请简述以下两个for 循环的优缺点(5 分)

for (i=0; i {

if (condition)

DoSomething();

else

DoOtherthing();

}

if (condition)

{

for (i=0; i DoSomething();

}

else

{

for (i=0; i DoOtherthing();

}

优点:程序简洁

缺点:多执行了N-1 次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。

优点:循环的效率高

缺点:程序不简洁