几道笔试试题

一、有 1000 个相同的苹果,现要装入 10 个相同的箱子里,要求每个箱子都不能为空,问有几种装法?

二、九个人和一只猴上山探险,但是干粮吃完了,他们就采了一堆野果,然后把这堆野果平均分成九份,余下来一个,就给猴吃了。其中一个人趁其他人不在的时候,将自己的那份拿走,然后将剩下的八份混合又平均分成九份,又余下来一个,又给猴吃了。第二个人也是如此做法,他把第一个人分好的九份之中自己的那份拿走,将剩下的又分成九份,又余出一个,也给猴吃了。九个人,这样做了九次,每次都余出一个给猴吃了。问这堆野果一共有多少个?

三、按要求编写以下函数。
功能: 将给定缓冲区中的#字符移到字符串尾部
函数名称:ChangeToTail
入口参数:pSZ指向缓冲区的指针, nSize缓冲区长度
出口: pSZ所指缓冲区中的#字符被移到缓冲区尾部
返回值: 在出口缓冲区中第一个#的位置,若缓冲区中无#字符则返回-1
说明: 如传入(#W#W#W#WW#,10) 则传出时应转换为WWWWW#####并且返回值为5

四、有九个环,每个环有“上”、“下”两种状态,记为:“∧”和“∨”。开始时九个环均为“上”态,即:∧9∧8∧7∧6∧5∧4∧3∧2∧1。假设我们要改变第i个环的状态(∧i -> ∨i或者∨i ->∧i),则必须满足 ∧i-1∨i-2...∨1 。即只有第i-1环为上态,其他在它前面的环(1->i-2)均为下态,才能够改变i环的状态。现需要将九个均为“上”态的环,改为九个均为“下”态,问至少需要多少步操作(在条件许可下改变任何一个环的状态称为一步)?

五、甲乙两人进行乒乓球比赛,谁先赢21个球,并且赢球数至少超过对方2个球,那么就算谁赢。假设现在甲已经赢3球,乙赢4球,试问甲胜算有多少?不考虑两人的球技差异,也不考虑发球方与接球方的差异。

六、在操作系统的网络实现中, 有这样一种情况, 当用户使用Tcp协议send一个数据包的时候, 操作系统最先拿到的是数据部分, 其次是tcp头, ip头, 数据链路头。 所有这些数据组成以太网上的一个桢通过网卡发送出去, 而由于无法预计tcp头, ip头和eth头的大小, 也就不能在send的时候预留空间。 问题是, 在计算机中, 数据拷贝是一个比较慢的过程, 如果每加一个协议头, 就需要copy一次的话, send的效率就十分低下, 请设计一种数据结构, 即能方便的在数据前边加一些数据, 又能方便的自头开始取出所有数据。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值