2019.9.18深信服笔试

12道选择题,3到填空,3道编程
一、给出二叉树的层次遍历,输出前序遍历,在层次遍历中,如果一个点有左节点没有右节点,那么该空的子节点用’#'表示,前序遍历输出时,要把所有的空节点用‘#’输出。感觉题有问题,样例里面的前序输出和我模拟出来的不一样。
二、给7个点和他们相互之间的路径,不是每两个点都有连接,输入两个点,输出这两个点之间的最短路径用点来表示。
三、五个食堂吃饭,每个食堂在n天里的美味度都不一样,输入这n天五个食堂的美味度,不能连续两天吃一个食堂,但是可以连续吃第5个食堂。这是我的理解,原题描述是“不能吃最近两天一样的食堂”,感觉又像是三天之内不能吃同一个食堂。输出吃到美味度最大值。样例中确实是不能连续两天,这道题因为第一题出错调试太多时间,最后没调出来。方法是类似于维比特算法,使用动态规划,dp是n * 5的矩阵,从dp[0][0],dp[0][1],dp[0][2],dp[0][3],dp[0][4]一直更新到dp[n-1],每次dp[i][j]=max(dp[i-1][k]|k=0到4,k!=j),
dp[i][4]=max(dp[i-1][k]|k=0到4),一直迭代到n-1,输出dp[n-1][0]到dp[n-1][4]中最大的数。

选择题:
fork创建子进程

通过例子说明,mallco之后进行fork,父子进程之间与malloc内存区域的关系。
通过例子可以看出,在fork之后,父子进程中得到的内存区域是各自独立的,父子进程各自的操作相互不会影响。可以看到,fork之后,父进程向内存之写入了 “I am parent”,接着等待一下,子进程写入“I am child”,但打印的结果显示,两个进程的内存区域是独立的,不会受到影响。 有一点值得注意,那就是父子进程打印内存的地址都是一样的但为什么得到的数据确不一样呢?其实,父子进程的地址空间是相互独立的,两个进程都会copy原始的数据,因此dada的值是一样的,这个是个虚拟地址!须要经过映射变换得到实际的物理地址!!但由于父子进程此时拥有了各自独立的进程空间,即使是同样的虚拟地址,当映射到实际的物理内存时,也不会是同一个物理地址,所以不是同一个内存块(物理上)!!!每个进程对同样的虚拟地址映射结果是不同的。不能使用虚拟地址来做为判断的依据。
1、父进程和子进程可以共享打开的文件描述符。
2、父子进程共享文件描述符的条件:在fork之前打开文件。
3、对于两个完全不相关的进程,文件描述符不能共享。
4、父子进程文件描述符是共享的,但是关闭的时候可以分别关闭,也可以同时在公有代码中关闭。

三个门中只有一个正确,当你选中一个后,主持人帮你打开另外两扇门中错误的那一个,现在是否要重新选择,重选正确的概率是多少。 2/3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值