2012合肥世纪讯微笔试题

来源:互联网 发布:中国帮非洲知乎 编辑:程序博客网 时间:2024/05/17 03:31
合肥世纪讯微,也就是腾讯在合肥的独立子公司,刚建立没多久,很有发展潜力,待遇在合肥也相当不错。
笔试是个基本的环节,都是比较基本的计算机知识,刷人不多。
下面的笔试题目仅供大家参阅。
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的最小矩形的面积。如何判断两个矩形是否有重叠部分。

原创粉丝点击