不知不觉之中时间过了几年,忽然发觉C/C++在程序员中的地位已经大不如前了。搜索一下SourceForge,发现现在java和C#的项目当真不少,而C++的项目叫得出名的似乎还是原来那些老帮菜,没有多少新意。
这几天公司面试程序员,我出了几道c/c++的试题。说实话,我是非常不喜欢在面试时给人出太详细的笔试题的,但是因为招的人有c++的要求,就挑了几个我个人认为非常基础的问题考了一下,结果让人很吃惊,很多自称“精通C++”的孩子,居然连最简单的问题也会答错,不少还是清华出来的有工作经验的本科生,硕士生。贴出来让大家看看,是不是我的要求太高了。
1. 声明一个函数指针
2. int (*A)[];和
int *A [] 有何不同?
3. C++中,struct是否可以有构造/析构函数?struct和class有何不同?
4. 声明一个模板类
5. #include <stdio.h>
class A
{
public:
void Func() { printf("A\n"); }
};
class B : public A
{
public:
void Func() { printf("B\n"); }
};
int main()
{
A* a = new B();
a->Func();
delete a;
return 0;
}
6. 什么是虚函数表?
7. 写一个简单的递归函数计算N!
int Factorial(int n)
{
}
int main()
{
int n;
cin >> n;
printf("N!=%d\n", Factorial(n));
return 0;
}
8. 解释关键字:volatile; const