2012合肥世纪讯微笔试题

合肥世纪讯微,也就是腾讯在合肥的独立子公司,刚建立没多久,很有发展潜力,待遇在合肥也相当不错。
笔试是个基本的环节,都是比较基本的计算机知识,刷人不多。
下面的笔试题目仅供大家参阅。
1.	函数内的局部变量char型数组不能当作返回值
char *getmemory(void)
{
char p[] = "hello";
return p;
}
void test(void)
{
char *str = NULL;
str = getmemory();
printf(str);
}
结果:无效的指针,输出不确定。
2.	大型数组和大规模矩阵先行后列遍历效率高
// 情况一
int a[1000][2000];
for(int i=0;i<1000;i++)
for(int j=0;j<2000;j++)
a[i][j]=i+j;
 
 
// 情况二
int *a = new int[1000][2000];
for(int j=0;j<2000;j++)
for(int i=0;i<1000;i++)
a[i][j]=i+j;
3.	操作系统中信号量PV操作
4.	快速排序的填空问题
5.	类继承的虚函数问题
class Father
{
public:
void name()
{
cout<<"Father name"<<endl;
}
virtual void call()
{
cout<<"Father call"<<endl;
}
};

class Son:public Father
{
public:
void name()
{
cout<<"Son name"<<endl;
}
virtual void call()
{
cout<<"Son call"<<endl;
}
};
Son *son1 = new Son();
Father *father1 = (Father*)son1;
father1->call();
father1->name();
((Son*)(father1))->call();
((Son*)(father1))->name();
 
 
Father* father2 = new Father();
Son* son2 = (Son*)father2;
son2->call();
son2->name();
((Father*)(son2))->call();
((Father*)(son2))->name(); 
 
算法题
1.	双循环链表的插入和删除操作。(简单)
2.	检查一个数组中数是否是连续的,如123456、136425、1122234是连续的,而124567不是连续的。(先排序,然后检查第二个数如果等于第一个数或比第一个数大1就连续,否则不连续。)
3.	模块加载问题,每个模块依赖于其它模块,每个模块必须在它所依赖的模块都载入才能加载,并且模块之间不能形成环路。只要给出思想,和初步解决方案。
提示:数据结构中AOV网
4.	在以左上点为原点,向右和向下为两个坐标轴正方向的平面坐标系中,(类似于图像坐标系),二维矩形以左上坐标和右下坐标来定义。定义一个宏,求包含两个矩形A、B的最小矩形的面积。如何判断两个矩形是否有重叠部分。

你可能感兴趣的:(数据结构,算法,腾讯,Class)