2014巨人网络C++笔试D卷回忆版

1.        线程同步和互斥的办法都有哪些?

四种进程或线程同步互斥的控制方法

1、临界区:通过对多线程的串行化来访问公共资源或一段代码,速度快,适合控制数据访问。

2、互斥量:为协调共同对一个共享资源的单独访问而设计的。

3、信号量:为控制一个具有有限数量用户资源而设计。

4、事件:用来通知线程有一些事件已发生,从而启动后继任务的开始。

2.        如下结构体

typedefstruct {

 int year;

 int month;

 int day;

 int hour;

 int min;

 int sec;

} tm;

tmm_star;

boolis_ok;

判断m_star是否在2014年10月1日10时1分52秒之后,如果是is_ok为true,否则为false。

if(m_star.year<2014){is_ok=false;}

else if(m_star.month<10){is_ok=false;}

else if(...)...

is_ok=true;

3.        有两个函数定义如下:

voidfun1(int i);

constchar* fun2(int i);

定义p1、p2为函数指针类型,分别是指向fun1和fun2的变量pfun1、pfun2的函数指针类型。

再定义p1类型的函数指针数组,Array,共有5个元素。

最后定义一个指向p2类型的有10个元素的函数指针数组的指针pArray。

typedef void (*p1)(int i);

typedef const char* (*p2)(int i);

p1 pfun1=&fun1;

p2 pfun2=&fun2;

p1 Array[5];

p2 (*pArray)[10];

4.        检测一个单链表是否有环,如有给出入口地址。

使用STL map记录node,看能否遇到相同的node

5.        介绍一个自己的项目或模块,可以任选文字、UML图、时序图给出描述。

6.        猴子第一天摘了一些桃子,当即吃掉一半,再吃掉一个,每天都成吃掉上一天剩下的一半,再吃一个,到了第10天只剩下1个桃子。问第一天摘了多少桃子?编程实现第N天剩下多少桃子,比如N==10时,输出1,并分析时间复杂度。

       inta[11];a[10]=1; for(inti=9;i>=0;i--){a[i]=2*(a[i+1]+1);}

       //30701534 766 382 190 94 46 22 10 4 1  复杂度即为O(n)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值