我是靠谱客的博主 甜美鲜花,最近开发中收集的这篇文章主要介绍中兴校园招聘 他人面经整理,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

专业面:
两个面试官。

4、数据结构怎么样(还可以),B+树了解吗
6、敏捷开发的一些流程


总的来说还是以项目为主,面试官态度比较温和。

 

一面:

 

3、先介绍一下自己的项目是做什么的,代码量,用了哪些语言

 

4、STL用吗?为什么喜欢用vector?

Vector、map、deque、list、forward_list

 

5、介绍一下面向对象

向对象有4大基本特征:封装、继承、多态、抽象

 

6、设计模式了解吗

单例模式、适配器模式、观察者模式

 

7、进程、线程知道吗

  1. 同一进程的线程共享本进程的地址空间,而进程之间则是独立的地址空间;
  2. 同一进程内的线程共享本进程的资源,但是进程之间的资源是独立的;
  3. 一个进程崩溃后,在保护模式下不会对其他进程产生影响,但是一个线程崩溃整个进程崩溃,所以多进程比多线程健壮
  4. 进程切换,消耗的资源大。所以涉及到频繁的切换,使用线程要好于进程;
  5. 两者均可并发执行;
  6. 每个独立的进程有一个程序的入口、程序出口。但是线程不能独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

 

8、数据结构学过吗?

 

9、手写链表的插入

尾插法、头插法

10、是只打算做C/C++吗

 

11、排序算法用过吗?项目里有用到排序算法吗?

选择、直接插入排序、冒泡、快排、归并、堆排

12、有什么问题吗

 

二面:

 

先是英语自我介绍

 

看中中兴哪一点

 

工作地点只考虑成都吗

 

  1. C语言和C++的区别

 

  1. 继承,重载,多态。

 

3. 说一下快速排序原理和复杂度。常用排序算法。

时间复杂度O(nlog2n),空间O(log2n)

4. TCP和UDP的区别

 

5. 网络七层模型

物理层、数据链路层、网络层、传输层、会话层、表示层、应用层

 

6.数据库分组语句

Group by

 

7. 操作系统进程有几种状态

运行态,就绪态,阻塞态

 

8. 功能测试

9. 设计模式

10. 数据结构 二叉树 最短路径

 

11. 迪杰斯特拉算法。

图的最短路径:dijkstra

#include<iostream>

#include<vector>

#include<algorithm>

using namespace std;



const int N = 501;

const int inf = 0x7fffffff;



int edge[501][501], disp[501];

bool vst[501];





int main() {

    fill(edge[0], edge[0] + N*N, inf);

    fill(disp, disp + N, inf);

    fill(vst, vst + N, false);



    int n, m, s, d;

    cin >> n >> m >> s >> d;

    for (int i = 0; i<m; i++) {

       int a, b, c;

       cin >> a >> b >> c;

       edge[a][b] = edge[b][a] = c;

    }



    disp[s] = 0;

    for (int i = 0; i<n; i++) {

       int u = -1, min = inf;

       for (int j = 0; j<n; j++) {

           if (disp[j] < min && vst[j] == false)

           {

              min = disp[j];

              u = j;

           }

       }

       if (u == -1)

           break;

       vst[u] = true;



       for (int v = 0; v<n; v++) {

           if(edge[u][v] != inf){//这句一定要保证

              if (disp[v] > disp[u] + edge[u][v] && vst[v] == false) {

                  disp[v] = disp[u] + edge[u][v];

              }

           }  

       }



    }

   

    printf("%d", disp[d]);



    return 0;

}

2、讲一下多态;(面向对象最基本的概念了,面试经常会遇到,必备知识点。)

https://www.cnblogs.com/cxq0017/p/6074247.html

C++的多态性用一句话概括就是:在基类的函数前加上virtual关键字,在派生类中重写该函数,运行时将会根据对象的实际类型来调用相应的函数。如果对象类型是派生类,就调用派生类的函数;如果对象类型是基类,就调用基类的函数

  1:用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。  

  2:存在虚函数的类都有一个一维的虚函数表叫做虚表,类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。  

  3:多态性是一个接口多种实现,是面向对象的核心,分为类的多态性和函数的多态性。  

  4:多态用虚函数来实现,结合动态绑定.  

  5: 纯虚函数是虚函数再加上 = 0  

  6:抽象类是指包括至少一个纯虚函数的类。

纯虚函数:virtual void fun()=0;即抽象类!必须在子类实现这个函数,即先有名称,没有内容,在派生类实现内容。

 

3、析构函数能否是虚函数?(我说,可以,并且对于多继承的情况建议析构函数用虚函数,并解释了下,blablabla)

https://blog.csdn.net/gaojing303504/article/details/81411036

构造函数不能为虚函数,而析构函数可以且常常是虚函数。

可以

4、能否解释下如果析构函数不用虚函数时,可能会出现什么情况?

 

5、对设计模式了解吗?(楼主结合一个项目中的简单的单例模式说了一下。)

 

6、看你项目中有用到MFC,了解MFC的消息机制吗?(这个自己答的不是很理想,就把话题引开了,强调了自己项目中更多地涉及到算法部分,对于其消息机制未过多涉及。如果有MFC经验,建议把其消息机制好好复习下。)

 

 

7、一道程序代码,说一下它的运行结果。代码如下:(这题就不细说了,牛客上一大把。)

1

2

3

4

char * Getmemory(void)

{  char p[] = "hello world!";  return p; }

void test()

{  char *str = NULL;  str = Getmemory();  printf("%s",&str); }

https://www.nowcoder.com/questionTerminal/fc376a0b5a4e4a43856b13f8c55cf86f?pos=5&mutiTagIds=157&orderByHotValue=2

8、接着7题,问到了堆、栈;又问了下全局变量和静态变量存储在哪个区?它们何时初始化。(大家复习到这些知识点即可。)

存储在全局(静态)存储区,初始化的在DATA段,未初始化的在BSS段。程序在运行时未初始化的会变成0,程序结束后由系统释放。

9.  造成内存泄漏的原因

https://blog.csdn.net/qq_18824491/article/details/78902636

最后

以上就是甜美鲜花为你收集整理的中兴校园招聘 他人面经整理的全部内容,希望文章能够帮你解决中兴校园招聘 他人面经整理所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(39)

评论列表共有 0 条评论

立即
投稿
返回
顶部