1 校内网实习生C++笔试总结 时间为1小时,小题都为填空题共8道,大题有四道。 总体来说小题没有跑出面试宝典+effective c++ 两本书。 大题整体也不是太复杂,但是仍然感到犀利。 2 填空题 (1) 一个 #define SUM(a+b) a + b 然后输出 SUM(a , b) * SUM(c , d) 这个题应该大家都注意过,宏经常会出现的问题。 (2)还有一个考察 sizeof() 和 strlen()的问题。 考察 char s1[] , 与 char *s2 之间的区别,注意一点s1是个字符数组,sizeof(s1) = 字符串长度 + 1 (最后一个0) , sizeof(s2) = 4 strlen 是一个函数,求取的是字符串的长度,对s1和s2结果都一样,但是注意strlen不需要计数最后一个0 字符。 (3)定义一个结构体 ,结构体中有一个函数,函数中有一个输出语句。 然后声明一个结构体指针,但是该指针为NULL。使用该指针调用函数,即使该指针为空,但是不会出现异常。 所谓异常是指访问了非法内存,但是此种情况不是。 (4)考察了 父类子类的 构造函数和析构函数的执行顺序 。 (5)1000个硬币 ,只有一个与其余999个不同,求找出该硬币的最小次数。我猜的是用2分 (6) 100 * 1000 平米中种树,树苗之间相隔至少为1米,求最多种多少树。 (7)有一个字符串 复制操作符构造函数,就是考察了 copying 函数,c++ 变焦模糊的地方。 (8)忘了。。。。。 3 大题 (1)求最大公约数,gcd ,思路两个数a , b ,首先注意当两者之中有其一为0,需要直接返回0。 然后递归是gcd(b , a%b) (2)进程间通信方式 (a)管道方式: 半双工通信,单向流动只能在具有亲缘关系的进程之间通信,即父子进程。 (b)有名管道:半双工通信,允许无亲缘关系的进程之间通信。 (c)信号量: 实际上是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制, 来控制多个进程对共享资源的访问。缺点是传递的数据量比较少。 (d) 消息队列:是消息的队列,存放在内核中,并由消息队列标识符标示。 消息队列客服了消息传递的数据量过少,管道只承载无格式字节流以及缓冲区大小受限。 (e) 信号: 一种复杂的机制,用来通知某进程某项任务已经完成。 (f)共享内存: 实质上开辟了一块内存,这块内存由一个进程创建,多个进程共享。 这是最快的IPC方式 。它是针对其它进程运行效率低而实现的。 (g)套接字socket: 同样是一种进程之间通信方式,但是可以作用于不同机器上的不同进程。 (3)用c++实现一段单例模式的代码,要求是实现线程安全机制,使用mutex,这题不太明白。 难道自己实现mutex? c++语言本身没有同步的信号量。 要么就是调用系统调用。。 (4)合并两个有序的单链表。纠结许久,还是打算实现了。
posted on 2011-06-15 10:54 kahn 阅读(274) 评论(0) 编辑 收藏 引用
Powered by: C++博客 Copyright © kahn