1.char a=255; sizeof(++a)=?(1) a=?(-1)
2.删除掉cpp文件中的所有注释
3.用脚本(bash)统计两个文本文件的相同的行,??
第一文件有而第二文件无的行??,
两个文件的补集。 cat file1 file2 | sort | uniq > 1.txt
4.设计一个简化的bbs系统:多用户,可发表主题,回复,同主题阅读,分不同的版面,为每一用户判断某一文章是否已读,等。
5. 面试:
1.判断一个链表是否存在回路? 给指针加一个标志域,如访问过则置1.当遍历到标志为1的项说明有了回路。 定义2个指针,一快(fast)一慢(slow),即:从头向后遍历过程中,每循环一次,快指针一次向后移动2个元素,慢指针移动一个元素,每次判断( fast==slow || slow==fast->nest ),如果成立,说明慢指针赶上了快指针,则为循环链表,否则,如果有一个指针到达NULL,则为单链表。 重新做一个链表,用于存放所有原链表中的节点,插入节点时按按地址顺序插入, 如果出现相同的地址就说明是死链,结束查询....
2.两个单向链表,有可能交叉,请设计算法判断是否交叉,如果交叉,返回交叉点!算法复杂度o(n) 两个链表最后是合并成一个 而不是交叉 所以:(1)先找到p1,p2的最后一个节点,同时记录节点数量a,b;(2)判断最后一个节点是否相同, 如果不相同则没相交。如果相同 则从第一个节点和|a-b|+1个节点开始比较 看是否相等 不相等都寻找下一个节点直到找到交叉点
3.硬盘文件系统设计,及磁盘整理算法
4.Hash表
5.php+MySQL
6.问参加过ACM/数学建模没有
7.多边形标记问题:判断点是否在多边形内的问题?我知道有两种方法:
1。累计角度法 过此点连接多边形的每一顶点,各相邻边角度之和为360度,则此点在多边形内。 否则为0度,在多边形外部。
2。射线法 过此点向任意角度发一条射线,若与多边形的各条边交点个数之和为偶数,则此点在 多边形之外,否则在多边形之内。 若有交点为多边形顶点则要另选一条射线重算。 请问哪种方法好一点(时间复杂度)? 方法一对凹多边形可能会出现问题吧。
8.多线程 同步互斥的概念 同步:只有a做完才能做b。
互斥:a和b只是在一个时间做一个。
可用p,v操作来实现。
相交进程之间的关系主要有两种,同步与互斥。
所谓互斥,是指散步在不同进程之间的若干程序片断,当某个进程运行其中一个程序片段时,其它进程就不能运行它们之中的任一程序片段,只能等到该进程运行完这个程序片段后才可以运行。
所谓同步,是指散步在不同进程之间的若干程序片断,它们的运行必须严格按照规定的某种先后次序来运行,这种先后次序依赖于要完成的特定的任务。 显然,同步是一种更为复杂的互斥,而互斥是一种特殊的同步。