面试3

1.c++11有哪些特性

还是看以前这篇博客https://blog.csdn.net/lishun1422840684/article/details/100013684

2.linux下的一些常用命令

3.有哪些智能指针,有什么区别

C++11 中提供了三种智能指针,分别是 shared_ptr , unique_ptr 和 weak_ptr 。shared_ptr 允许多个指针指向同一个对象,unique_ptr 则“独占”所指向的对象,weak_ptr 则是和share_ptr 相辅相成的伴随类。舍弃了auto_ptr,详细的自己去找资料。

4.linux查看test进程拥有的线程

我写的是top | grep test  这应该不对

方法一:PS

在ps命令中,“-T”选项可以开启线程查看。下面的命令列出了由进程号为<pid>的进程创建的所有线程。

ps -T -p <pid>

 

方法二:要让top输出某个特定进程<pid>并检查该进程内运行的线程状况:

top -H -p <pid>

方法三: Htop

一个对用户更加友好的方式是,通过htop查看单个进程的线程,它是一个基于ncurses的交互进程查看器。该程序允许你在树状视图中监控单个独立线程。

要在htop中启用线程查看,请开启htop,然后按<F2>来进入htop的设置菜单。选择“设置”栏下面的“显示选项”,然后开启“树状视图”和“显示自定义线程名”选项。按<F10>退出设置。

 

5.指针和引用的区别

这个自己上网查一下,挺容易的

 

6.完善以下程序,打印出“hello”

#include<stdio.h>

Void test()

{

}

int main()//main函数不能动

{

    return 0;

}

这个真不知道,main函数里不调用test怎么打印“hello”

看到全局对象的构造函数会在main函数之前执行这句话,突然迷惑许久的问题

终于解决了

 

7.100!后面有几个0?

我当时傻逼,居然写了3个,以为10后面有2个,100那就3个……

10!有2个那是10一个,2*5一个,我真菜

100!

末尾想要产生0,那么必然两个数相乘为0,比如2*5,4*5,6*5。。。总之一定要有5,那只需要看1~100中间可以分解出多少个5就可以了。看他相乘的数,中间有多少个5,比如5,10,15,20,25,30,35,40,45 。。。100 ,那么每一个都有5,那么一共是100/5=20个,当然了有的数能分解更多的5出来,比如25=5*5,50=5*5*2,75=5*5*3,100=5*5*4 ,一共4个可以在分解出5*5的数。因为这些数我们已经算了它一个5了,那只需要多算一个他的5即可。20+4=24

8.重载overlode、重写overwrite、隐藏override的区别

还有3个是英文题,我没太理解意思,不过也写了答案,看面试官就问了第一个英文题和上面那个打印“hello”和100!的,其他没问,这3个肯定错了。

1.第一个英文大概是一些小数的乘积为10000

    不确定,英文太渣

2.第二个是一个n+1的数组,有1-n的数在里面,求出重复的那个值

这个英文还是看懂了的。

       用数组或者hash_map计数,或者利用题目中元素处于1~n的范围,把元素分为两组,判断两组元素个数,如果大于范围,则重复的数字就在这个范围内。例如:1~3范围中有4个数,说明其中至少有一个重复的数字。按此二分下去,将会剩下一个数字有两个,最后输出。

3.第三个有点记不清了,好像是有一个链表,链表里面有一个数超个一半,什么什么的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值