美文网首页
2016.9.12 CVTE面试

2016.9.12 CVTE面试

作者: 阿立94s | 来源:发表于2016-09-15 20:36 被阅读0次

    C/C++软件开发

    面试官首先让我写一段代码,在这段期间面试官对我的简历进行了浏览,题目是见一个单链表进行逆置

    1.代码实现单链表的逆置(考察代码能力,考察链表的知识)

    *第一次面试 真的有点懵逼,代码大有问题,然后我就给面试官讲了我的思路,大概是对指针的修改,使得指向进行改变(心情一下了就紧张起来,心里想着完了,这回要挂),但是面试官还是很耐心的

    2.如果上述的代码正确,那么在什么情况下链表的逆置会出现异常

    *我大概想了一分钟,我给出的是如果操作的是一个环形链表,那么这个代码就会一直对链表进行指向的改变,永远也达不到目的,然后面试官补充说:循环是不是不会跳出!!!我说:是的!,注意了,我给自己又挖下了坑(带环的单链表)

    3.怎么判断一个链表是环形链表,局部环呢?怎么将这个环解开?(判断链表是否存在环,环的入口...)

    *我给的通过快慢指针来判断环形链表,其实存在局部环也是可以通过快慢指针来判断,因为快指针首先会进入环,慢指针后进入,两个指针相遇就是存在环,如果快指针走到NULL则没有环。环的入口位置要通过数学推理来得到答案。解开一个环的话,只要找到了入口位置,那么将其指向改变就可以解开这个环。

    4.你了解继承和多态吗?(给了我一道题让我写出输出结果)

    *题目大概是类B继承自A,A声明了虚析构函数,通过一个类B的指针来调用成员函数,后面又通过dynamic_cast将子类的指针赋给一个基类的指针来调用函数,需要注意的只要细心应该就不会出错(不过我写的估计大有问题),同时注意继承的对象构造顺序和析构顺序,然后面试官就说如果我将基类析构函数的virtual关键字去掉会怎么样?(我没答好),回来查了一下,大概是这样的,如果基类的析构函数不是virtual的,则在new一个子类对象赋值给基类指针,在调用析构函数的时候编译器只会调用基类的,应为他找不到子类的析构函数,所以会有内存泄漏,当基类的析构是virtual的时候就会进行动态绑定来调用子类的析构函数。

    5.Linux用的多不多?会编写makefile吗?然后问了我几个命令(但是命令我都没用过)

    *ld、ar命令是干什么用的?

    ld命令是GNU的连接器,将目标文件连接为可执行程序

    ar命令维护链接编辑器使用的索引库

    makefile里面如果有一行  gcc ... -lm...,这个-lm是干嘛的?我说的是-l是来连接库的,回来查一下m是一个数学库

    6.了解单例吗?写一个单例模式。(我写的是最简单的)

    *我写了一个及其简单的懒汉模式,估计是写的不好,面试官直接就跳过了。。。

    7.我觉得有一个岗位你可以试试,C++技术支持你知道吗?

    *这回我心想完蛋了!!但是我还有机会,我就说我愿意试试,所以我又去面了这个技术支持岗位,这回问我的都是核技术没有多大关联的,最后问我怎么使用git,简单将了一下,第一次面试就这么结束了!结束了!!!!没有然后

    相关文章

      网友评论

          本文标题:2016.9.12 CVTE面试

          本文链接:https://www.haomeiwen.com/subject/fgovettx.html