综合大问题

Q1:简单介绍下自己
Q2:有哪些分割方法
Q3:二值化分割的优缺点
Q4:快速排序算法
Q5:常用排序算法
Q6:数组和链表的区别,哪一个在堆上和栈上
链表与数组的区别
A 从逻辑结构来看
        A-1. 数组必须事先定义固定的长度(元素个数),不能适应数据动态地增减的情况。当     数据增加时,可能超出原先定义的元素个数;当数据减少时,造成内存浪费。
        A-2. 链表动态地进行存储分配,可以适应数据动态地增减的情况,且可以方便地插入、     删除数据项。(数组中插入、删除数据项时,需要移动其它数据项)
B 从内存存储来看
        B-1. (静态)数组从栈中分配空间, 对于程序员方便快速,但是自由度小
        B-2. 链表从堆中分配空间, 自由度大但是申请管理比较麻烦.
堆和栈的区别
        1、栈区(stack)—   由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作    方式类似于数据结构中的栈。局部变量在编译后程序运行时分配,在栈中分配。
        2、堆区(heap) —   一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。
        3、全局区(静态区) —,全局变量和静态变量的存储是放在一块的,在编译的时候分配在静态存储区。 程序结束后由系统释放 ,
        4、文字常量区  — 常量字符串。程序结束后由系统释放
        5、程序代码区— 存放函数体的二进制代码。
Q7:const int * 和  int const *(自右向左读)
        指向常量的指针(const int * 和 int const *)
        const int* pt =&age
不能使用pt修改age,但是可直接通过修改age修改age的值。
防止使用指针修改多指向的值。
仅当指针指向基本数据类型时,可以将非const赋给const
    常量指针(int * const )
            int* const pt=&age;
            必须初始化,一旦初始化完成,它的值(也就是它所放在指针中的地址就不能改变)。防止改变指针指向的位置。

Q8:const & 与引用
常引用:不能通过常引用去修改其引用的内容。
T & 类型的引用或T类型的变量可以用来初始化const T & 类型的引用。
const T 类型的常变量和const T & 类型的引用则不能用来初始化T &类型的引用,除非进行强制类型
转换。

Q9:面向对象的几大设计原则
        一:开闭原则
        二:单一职责原则
        三:依赖倒置原则
        四:接口分离原则
        五:迪米特法则
        六:里氏替换原则
        抽象,封装,继承,多态
Q10:mian函数之前有什么函数需要执行
        全局对象在main()之前初始化,会调用构造函数。
Q11:循环与递归的优劣
Q12:A基类,B派生类,继承,B是A
Q13:new delete 与malloc() free()

二面
Q1:简单介绍下自己
Q2:优先级队列,插入查找时间复杂度
Q3:有没有安装过Va
Q4:Vs常用快捷键
Q5:STL模板库有什么
Q6:二分、快排、冒泡时间复杂度
Q7:二战飞机,如何测试飞机的可靠性
 

8.29 成都某不知名无人机公司
Q1:介绍一下构造函数
Q2:类有哪些函数是有默认生成的
Q3:深拷贝、浅拷贝
Q4:临时对象
        类型转换构造函数时,函数对象返回
Q5:传入值参数与传入引用参数
    值传递并不是在所有的情况下都适合,不适宜值传递的情况包括:
    当需要在函数中修改实参的值时。
    当需要以大型对象作为实参传递时。对实际的应用而言,复制对象多付出的时间和存储空间代价。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值